globus_ftp_client  8.33
Modules | Data Structures | Typedefs | Enumerations | Functions

Plugin API. More...

Collaboration diagram for Plugins:

Modules

 Debugging Plugin
 
 Performance Marker Plugin
 
 Restart Marker Plugin
 
 Restart Plugin
 
 Netlogger Throughput Plugin
 
 Throughput Performance Plugin
 

Data Structures

struct  globus_i_ftp_client_plugin_t
 FTP Client Plugin.Each plugin implementation should define a method for initializing one of these structures. Plugins may be implemented as either a static function table, or a specialized plugin with plugin-specific attributes. More...
 

Typedefs

typedef struct globus_i_ftp_client_plugin_tglobus_ftp_client_plugin_t
 FTP Client pluginAn FTP Client plugin is used to add restart, monitoring, and performance tuning operations to the FTP Client library, without modifying the base API. Multiple plugins may be associated with a globus_ftp_client_handle_t. More...
 
typedef globus_ftp_client_plugin_t *(* globus_ftp_client_plugin_copy_t) (globus_ftp_client_plugin_t *plugin_template, void *plugin_specific)
 
typedef void(* globus_ftp_client_plugin_destroy_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific)
 
typedef void(* globus_ftp_client_plugin_connect_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url)
 
typedef void(* globus_ftp_client_plugin_authenticate_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_control_auth_info_t *auth_info)
 
typedef void(* globus_ftp_client_plugin_chmod_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, int mode, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_chgrp_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const char *group, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_utime_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const struct tm *utime_time, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_symlink_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const char *utime_time, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_cksm_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, globus_off_t offset, globus_off_t length, const char *algorithm, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_delete_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_feat_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_mkdir_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_rmdir_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_list_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_verbose_list_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_machine_list_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_recursive_list_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_mlst_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_stat_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_move_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *source_url, const char *dest_url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_get_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_put_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_third_party_transfer_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *source_url, const globus_ftp_client_operationattr_t *source_attr, const char *dest_url, const globus_ftp_client_operationattr_t *dest_attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_modification_time_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_size_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)
 
typedef void(* globus_ftp_client_plugin_abort_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle)
 
typedef void(* globus_ftp_client_plugin_read_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const globus_byte_t *buffer, globus_size_t buffer_length)
 
typedef void(* globus_ftp_client_plugin_write_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const globus_byte_t *buffer, globus_size_t buffer_length, globus_off_t offset, globus_bool_t eof)
 
typedef void(* globus_ftp_client_plugin_data_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, globus_object_t *error, const globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof)
 
typedef void(* globus_ftp_client_plugin_command_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const char *command)
 
typedef void(* globus_ftp_client_plugin_response_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, globus_object_t *error, const globus_ftp_control_response_t *ftp_response)
 
typedef void(* globus_ftp_client_plugin_fault_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, globus_object_t *error)
 
typedef void(* globus_ftp_client_plugin_complete_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle)
 
typedef struct globus_i_ftp_client_plugin_t globus_i_ftp_client_plugin_t
 FTP Client Plugin.Each plugin implementation should define a method for initializing one of these structures. Plugins may be implemented as either a static function table, or a specialized plugin with plugin-specific attributes. More...
 

Enumerations

enum  globus_ftp_client_plugin_command_mask_t { ,
  GLOBUS_FTP_CLIENT_CMD_MASK_CONTROL_ESTABLISHMENT = 1<<0, GLOBUS_FTP_CLIENT_CMD_MASK_DATA_ESTABLISHMENT = 1<<1, GLOBUS_FTP_CLIENT_CMD_MASK_TRANSFER_PARAMETERS = 1<<2, GLOBUS_FTP_CLIENT_CMD_MASK_TRANSFER_MODIFIERS = 1<<3,
  GLOBUS_FTP_CLIENT_CMD_MASK_FILE_ACTIONS = 1<<4, GLOBUS_FTP_CLIENT_CMD_MASK_INFORMATION = 1<<5, GLOBUS_FTP_CLIENT_CMD_MASK_MISC = 1<<6, GLOBUS_FTP_CLIENT_CMD_MASK_BUFFER = 1<<7,
  GLOBUS_FTP_CLIENT_CMD_MASK_ALL = 0x7fffffff
}
 

Functions

globus_result_t globus_ftp_client_plugin_restart_list (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_verbose_list (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_machine_list (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_recursive_list (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_mlst (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_stat (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_chmod (globus_ftp_client_handle_t *handle, const char *url, int mode, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_chgrp (globus_ftp_client_handle_t *handle, const char *url, const char *group, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_utime (globus_ftp_client_handle_t *handle, const char *url, const struct tm *utime_time, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_symlink (globus_ftp_client_handle_t *handle, const char *url, const char *link_url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_cksm (globus_ftp_client_handle_t *handle, const char *url, globus_off_t offset, globus_off_t length, const char *algorithm, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_delete (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_feat (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_mkdir (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_rmdir (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_move (globus_ftp_client_handle_t *handle, const char *source_url, const char *dest_url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_get (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_ftp_client_restart_marker_t *restart_marker, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_put (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_ftp_client_restart_marker_t *restart_marker, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_third_party_transfer (globus_ftp_client_handle_t *handle, const char *source_url, const globus_ftp_client_operationattr_t *source_attr, const char *dest_url, const globus_ftp_client_operationattr_t *dest_attr, globus_ftp_client_restart_marker_t *restart_marker, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_size (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_modification_time (globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, const globus_abstime_t *when)
 
globus_result_t globus_ftp_client_plugin_restart_get_marker (globus_ftp_client_handle_t *handle, globus_ftp_client_restart_marker_t *marker)
 
globus_result_t globus_ftp_client_plugin_abort (globus_ftp_client_handle_t *handle)
 
globus_result_t globus_ftp_client_plugin_add_data_channels (globus_ftp_client_handle_t *handle, unsigned int num_channels, unsigned int stripe)
 
globus_result_t globus_ftp_client_plugin_remove_data_channels (globus_ftp_client_handle_t *handle, unsigned int num_channels, unsigned int stripe)
 

Detailed Description

Plugin API.

A plugin is a way to implement application-independent reliability and performance tuning behavior. Plugins are written using the API described in this document.

A plugin is created by defining a globus_ftp_client_plugin_t which contains the function pointers and plugin-specific data needed for the plugin's operation. It is recommended that a plugin define a a globus_module_descriptor_t and plugin initialization functions, to ensure that the plugin is properly initialized.

The functions pointed to in a plugin are called when significant events in the life of an FTP Client operation occur. Note that plugins will only be called when the plugin has the function pointer for both the operation (get, put, list, etc), and the event (connect, authenticate, command, etc), are defined. The command and response functions are filtered based on the command_mask defined in the plugin structure.

Every plugin must define copy and destroy functions. The copy function is called when the plugin is added to an attribute set or a handle is initialized with an attribute set containing the plugin. The destroy function is called when the handle or attribute set is destroyed.

Typedef Documentation

§ globus_ftp_client_plugin_abort_t

typedef void(* globus_ftp_client_plugin_abort_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle)

Plugin abort notification callback.

This callback is used to notify a plugin that an abort is being requested on a client handle. This notification happens both when the user aborts a request and when a plugin aborts the currently active request.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the request.

§ globus_ftp_client_plugin_authenticate_t

typedef void(* globus_ftp_client_plugin_authenticate_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_control_auth_info_t *auth_info)

Plugin authentication notification callback.

This callback is used to notify a plugin that an authentication handshake is being done for this client handle. This notification can occur when a new request is made or when a hard restart is done by a plugin.

If a response_callback is defined by a plugin, then that will be once the authentication has completed (successfully or unsuccessfully).

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the connection.
urlThe URL of the server to connect to.
auth_infoAuthentication and authorization info being used to authenticate with the FTP or GridFTP server.

§ globus_ftp_client_plugin_chgrp_t

typedef void(* globus_ftp_client_plugin_chgrp_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const char *group, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin chgrp notification callback.

This callback is used to notify a plugin that a chgrp is being requested on a client handle. This notification happens both when the user requests a chgrp, and when a plugin restarts the currently active chgrp request.

If this function is not defined by the plugin, then no plugin callbacks associated with the chgrp will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the delete operation.
urlThe url to chgrp.
groupThe group name or ID to change to.
attrThe attributes to be used during this operation.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current delete operation; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_chmod_t

typedef void(* globus_ftp_client_plugin_chmod_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, int mode, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin chmod notification callback.

This callback is used to notify a plugin that a chmod is being requested on a client handle. This notification happens both when the user requests a chmod, and when a plugin restarts the currently active chmod request.

If this function is not defined by the plugin, then no plugin callbacks associated with the chmod will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the delete operation.
urlThe url to chmod.
modeThe file mode to be applied.
attrThe attributes to be used during this operation.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current delete operation; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_cksm_t

typedef void(* globus_ftp_client_plugin_cksm_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, globus_off_t offset, globus_off_t length, const char *algorithm, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin cksm notification callback.

This callback is used to notify a plugin that a cksm is being requested on a client handle. This notification happens both when the user requests a cksm, and when a plugin restarts the currently active cksm request.

If this function is not defined by the plugin, then no plugin callbacks associated with the cksm will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the delete operation.
urlThe url to cksm.
offsetFile offset to start calculating checksum.
lengthLength of data to read from the starting offset. Use -1 to read the entire file.
algorithmA pointer to a string to be filled with the checksum of the file. On error the value pointed to by it is undefined.
attrThe attributes to be used during this operation.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current delete operation; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_command_t

typedef void(* globus_ftp_client_plugin_command_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const char *command)

Command callback.

This callback is used to notify a plugin that a FTP control command is being sent. The client library will only call this function for response callbacks associated with a command which is in the plugin's command mask, and associated with one of the other ftp operations with a defined callback in the plugin.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the request.
urlThe URL which this command is being sent to.
commandA string containing the command which is being sent to the server (TYPE I, for example).

§ globus_ftp_client_plugin_complete_t

typedef void(* globus_ftp_client_plugin_complete_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle)

Completion notification callback.

This callback is used to notify a plugin that an operation previously begun has completed. The plugin may not call any other plugin operation on this handle after this has occurred. This is the final callback for the plugin while processing the operation. The plugin may free any internal state associated with the operation at this point.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the operation.

§ globus_ftp_client_plugin_connect_t

typedef void(* globus_ftp_client_plugin_connect_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url)

Plugin connection begin function.

This callback is used to notify a plugin that connection establishment is being done for this client handle. This notification can occur when a new request is made or when a restart is done by a plugin.

If a response_callback is defined by a plugin, then that will be once the connection establishment has completed (successfully or unsuccessfully).

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the connection.
Note
This function will not be called for a get, put, or third-party transfer operation when a cached connection is used.

§ globus_ftp_client_plugin_copy_t

typedef globus_ftp_client_plugin_t*(* globus_ftp_client_plugin_copy_t) (globus_ftp_client_plugin_t *plugin_template, void *plugin_specific)

Plugin copy function.

This function is used to create a new copy or reference count a plugin. This function is called by the FTP Client library when a plugin is added to a handle attribute set, or when a handle is initialized with an attribute which contains the plugin.

A plugin may not call any of the plugin API functions from it's instantiate method.

Parameters
plugin_templateA plugin previously initialized by a call to the plugin-specific initialization function. by the user.
plugin_specificPlugin-specific data.
Returns
A pointer to a plugin. This plugin copy must remain valid until the copy's destroy function is called on the copy.
See also
globus_ftp_client_plugin_destroy_t

§ globus_ftp_client_plugin_data_t

typedef void(* globus_ftp_client_plugin_data_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, globus_object_t *error, const globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof)

Plugin data callback handler.

This callback is used to notify a plugin that a read or write operation previously registered has completed. The buffer pointer will match that of a previous plugin read or write registration callback.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the request.
bufferThe buffer which was successfully transferred over the network.
lengthThe amount of data to read or written.
offsetThe offset into the file where this data buffer belongs.
eofThis value is set to GLOBUS_TRUE if end-of-file is being processed for this transfer.

§ globus_ftp_client_plugin_delete_t

typedef void(* globus_ftp_client_plugin_delete_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin delete notification callback.

This callback is used to notify a plugin that a delete is being requested on a client handle. This notification happens both when the user requests a delete, and when a plugin restarts the currently active delete request.

If this function is not defined by the plugin, then no plugin callbacks associated with the delete will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the delete operation.
urlThe url to be deleted.
attrThe attributes to be used during this operation.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current delete operation; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_destroy_t

typedef void(* globus_ftp_client_plugin_destroy_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific)

Plugin destroy function.

This function is used to free or unreference a copy of a plugin which was allocated by calling the instantiate function from the plugin.

Parameters
pluginThe plugin, created by the create function, which is to be destroyed.
plugin_specificPlugin-specific data.

§ globus_ftp_client_plugin_fault_t

typedef void(* globus_ftp_client_plugin_fault_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, globus_object_t *error)

Fault notification callback.

This callback is used to notify a plugin that a fault occurred while processing the request. The fault may be internally generated, or come from a call to another library.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the request.
urlThe url being processed when the fault ocurred.
errorAn error object describing the fault.

§ globus_ftp_client_plugin_feat_t

typedef void(* globus_ftp_client_plugin_feat_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin feat notification callback.

This callback is used to notify a plugin that a feat is being requested on a client handle. This notification happens both when the user requests a feat, and when a plugin restarts the currently active feat request.

If this function is not defined by the plugin, then no plugin callbacks associated with the feat will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the feat operation.
urlThe url to be feat'd.
attrThe attributes to be used during this operation.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current feat operation; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_get_t

typedef void(* globus_ftp_client_plugin_get_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin get notification callback.

This callback is used to notify a plugin that a get is being requested on a client handle. This notification happens both when the user requests a get, and when a plugin restarts the currently active get request.

If this function is not defined by the plugin, then no plugin callbacks associated with the get will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the get operation.
urlThe url of the get operation.
attrThe attributes to be used during this transfer.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current get transfer; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_list_t

typedef void(* globus_ftp_client_plugin_list_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin list notification callback.

This callback is used to notify a plugin that a list is being requested on a client handle. This notification happens both when the user requests a list, and when a plugin restarts the currently active list request.

If this function is not defined by the plugin, then no plugin callbacks associated with the list will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the list operation.
urlThe url of the list operation.
attrThe attributes to be used during this transfer.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current list transfer; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_machine_list_t

typedef void(* globus_ftp_client_plugin_machine_list_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin machine list notification callback.

This callback is used to notify a plugin that a list is being requested on a client handle. This notification happens both when the user requests a list, and when a plugin restarts the currently active list request.

If this function is not defined by the plugin, then no plugin callbacks associated with the list will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the list operation.
urlThe url of the list operation.
attrThe attributes to be used during this transfer.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current list transfer; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_mkdir_t

typedef void(* globus_ftp_client_plugin_mkdir_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin mkdir notification callback.

This callback is used to notify a plugin that a mkdir is being requested on a client handle. This notification happens both when the user requests a mkdir, and when a plugin restarts the currently active mkdir request.

If this function is not defined by the plugin, then no plugin callbacks associated with the mkdir will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the mkdir operation.
urlThe url of the directory to create.
attrThe attributes to be used during this operation.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current mkdir operation; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_mlst_t

typedef void(* globus_ftp_client_plugin_mlst_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin mlst notification callback.

This callback is used to notify a plugin that a mlst is being requested on a client handle. This notification happens both when the user requests a list, and when a plugin restarts the currently active list request.

If this function is not defined by the plugin, then no plugin callbacks associated with the list will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the list operation.
urlThe url of the list operation.
attrThe attributes to be used during this transfer.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current list transfer; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_modification_time_t

typedef void(* globus_ftp_client_plugin_modification_time_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin modification time notification callback.

This callback is used to notify a plugin that a modification time check is being requested on a client handle. This notification happens both when the user requests the modification time of a file, and when a plugin restarts the currently active request.

If this function is not defined by the plugin, then no plugin callbacks associated with the modification time request will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the list operation.
urlThe url of the list operation.
attrThe attributes to be used during this transfer.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current list transfer; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_move_t

typedef void(* globus_ftp_client_plugin_move_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *source_url, const char *dest_url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin move notification callback.

This callback is used to notify a plugin that a move is being requested on a client handle. This notification happens both when the user requests a move, and when a plugin restarts the currently active move request.

If this function is not defined by the plugin, then no plugin callbacks associated with the move will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the move operation.
source_urlThe source url of the move operation.
dest_urlThe destination url of the move operation.
attrThe attributes to be used during this move.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current move transfer; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_put_t

typedef void(* globus_ftp_client_plugin_put_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin put notification callback.

This callback is used to notify a plugin that a put is being requested on a client handle. This notification happens both when the user requests a put, and when a plugin restarts the currently active put request.

If this function is not defined by the plugin, then no plugin callbacks associated with the put will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the put operation.
urlThe url of the put operation.
attrThe attributes to be used during this transfer.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current put transfer; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_read_t

typedef void(* globus_ftp_client_plugin_read_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const globus_byte_t *buffer, globus_size_t buffer_length)

Plugin read registration callback.

This callback is used to notify a plugin that the client API has registered a buffer with the FTP control API for reading when processing a get.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the request.
bufferThe data buffer to read into.
buffer_lengthThe maximum amount of data to read into the buffer.

§ globus_ftp_client_plugin_recursive_list_t

typedef void(* globus_ftp_client_plugin_recursive_list_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin recursive list notification callback.

This callback is used to notify a plugin that a list is being requested on a client handle. This notification happens both when the user requests a list, and when a plugin restarts the currently active list request.

If this function is not defined by the plugin, then no plugin callbacks associated with the list will be called.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the list operation.
urlThe url of the list operation.
attrThe attributes to be used during this transfer.
restartThis value is set to GLOBUS_TRUE when this callback is caused by a plugin restarting the current list transfer; otherwise, this is set to GLOBUS_FALSE.

§ globus_ftp_client_plugin_response_t

typedef void(* globus_ftp_client_plugin_response_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, globus_object_t *error, const globus_ftp_control_response_t *ftp_response)

Response callback.

This callback is used to notify a plugin that a FTP control response has occurred on a control connection. FTP response callbacks will come back to the user in the order which the commands were executed. The client library will only call this function for response callbacks associated with a command which is in the plugin's command mask, or associated with one of the other ftp operations with a defined callback in the plugin.

Parameters
pluginThe plugin which is being notified.
plugin_specificPlugin-specific data.
handleThe handle associated with the request.
urlThe URL which this response came from.
errorAn error which occurred while processing this command/response pair.
ftp_responseThe response structure from the ftp control library.

§ globus_ftp_client_plugin_rmdir_t

typedef void(* globus_ftp_client_plugin_rmdir_t) (globus_ftp_client_plugin_t *plugin, void *plugin_specific, globus_ftp_client_handle_t *handle, const char *url, const globus_ftp_client_operationattr_t *attr, globus_bool_t restart)

Plugin rmdir notification callback.

This callback is used to notify a plugin that a rmdir is being requested on a client handle. This notification happens both when the user requests a rmdir, and when a plugin restarts the currently active rmdir request.

If this function is not defined by the plugin, then no plugin callbacks associated with the rmdir will be called.

Parameters