Man Linux: Main Page and Category List

NAME

       Plugins -

       Plugin API.

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

   Typedefs
       typedef struct globus_i_ftp_client_plugin_t *
           globus_ftp_client_plugin_t
       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_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_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)

   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_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_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

   typedef struct globus_i_ftp_client_plugin_t* globus_ftp_client_plugin_t
       FTP Client plugin

       An 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.

       See also:
           globus_ftp_client_handle_init(),
           globus_ftp_client_handle_destroy(), globus_ftp_client_handleattr_t,
           Debugging Plugin

   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_template A plugin previously initialized by a call to the
           plugin-specific initialization function. by the user.
           plugin_specific Plugin-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

   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:
           plugin The plugin, created by the create function, which is to be
           destroyed.
           plugin_specific Plugin-specific data.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the connection.
           url The URL of the server to connect to.
           auth_info Authentication and authorization info being used to
           authenticate with the FTP or GridFTP server.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the delete operation.
           url The url to chmod.
           mode The file mode to be applied.
           attr The attributes to be used during this operation.
           restart This 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.

   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 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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the delete operation.
           url The url to chmod.
           offset File offset to start calculating checksum.
           length Length of data to read from the starting offset. Use -1 to
           read the entire file.
           algorithm A pointer to a string to be filled with the checksum of
           the file. On error the value pointed to by it is undefined.
           attr The attributes to be used during this operation.
           restart This 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the delete operation.
           url The url to be deleted.
           attr The attributes to be used during this operation.
           restart This 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the feat operation.
           url The url to be feat’d.
           attr The attributes to be used during this operation.
           restart This 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the mkdir operation.
           url The url of the directory to create.
           attr The attributes to be used during this operation.
           restart This 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the rmdir operation.
           url The url of the rmdir operation.
           attr The attributes to be used during this operation.
           restart This value is set to GLOBUS_TRUE when this callback is
           caused by a plugin restarting the current rmdir operation;
           otherwise, this is set to GLOBUS_FALSE.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the list operation.
           url The url of the list operation.
           attr The attributes to be used during this transfer.
           restart This 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.

   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)
       Plugin verbose 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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the list operation.
           url The url of the list operation.
           attr The attributes to be used during this transfer.
           restart This 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the list operation.
           url The url of the list operation.
           attr The attributes to be used during this transfer.
           restart This 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the list operation.
           url The url of the list operation.
           attr The attributes to be used during this transfer.
           restart This 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.

   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)
       Plugin stat notification callback. This callback is used to notify a
       plugin that a stat 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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the list operation.
           url The url of the list operation.
           attr The attributes to be used during this transfer.
           restart This 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the move operation.
           source_url The source url of the move operation.
           dest_url The destination url of the move operation.
           attr The attributes to be used during this move.
           restart This 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the get operation.
           url The url of the get operation.
           attr The attributes to be used during this transfer.
           restart This 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the put operation.
           url The url of the put operation.
           attr The attributes to be used during this transfer.
           restart This 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.

   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)
       Plugin third-party transfer notification callback. This callback is
       used to notify a plugin that a transfer is being requested on a client
       handle. This notification happens both when the user requests a
       transfer, and when a plugin restarts the currently active transfer
       request.

       If this function is not defined by the plugin, then no plugin callbacks
       associated with the third-party transfer will be called.

       Parameters:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the transfer operation.
           source_url The source url of the transfer operation.
           source_attr The attributes to be used during this transfer on the
           source.
           dest_url The destination url of the third-party transfer operation.
           dest_attr The attributes to be used during this transfer on the
           destination.
           restart This value is set to GLOBUS_TRUE when this callback is
           caused by a plugin restarting the current transfer transfer;
           otherwise, this is set to GLOBUS_FALSE.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the list operation.
           url The url of the list operation.
           attr The attributes to be used during this transfer.
           restart This 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.

   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)
       Plugin size notification callback. This callback is used to notify a
       plugin that a size check is being requested on a client handle. This
       notification happens both when the user requests the size 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 size request will be called.

       Parameters:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the list operation.
           url The url of the list operation.
           attr The attributes to be used during this transfer.
           restart This 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.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the request.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the request.
           buffer The data buffer to read into.
           buffer_length The maximum amount of data to read into the buffer.

   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)
       Plugin write registration callback. This callback is used to notify a
       plugin that the client API has registered a buffer with the FTP control
       API for writing when processing a put.

       Parameters:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the request.
           buffer The buffer which is being written.
           buffer_length The amount of data in the buffer.
           offset The offset within the file where the buffer is to be
           written.
           eof This value is set to GLOBUS_TRUE if this is the last data
           buffer to be sent for this put request.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the request.
           buffer The buffer which was successfully transferred over the
           network.
           length The amount of data to read or written.
           offset The offset into the file where this data buffer belongs.
           eof This value is set to GLOBUS_TRUE if end-of-file is being
           processed for this transfer.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the request.
           url The URL which this command is being sent to.
           command A string containing the command which is being sent to the
           server (TYPE I, for example).

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the request.
           url The URL which this response came from.
           error An error which occurred while processing this
           command/response pair.
           ftp_response The response structure from the ftp control library.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the request.
           url The url being processed when the fault ocurred.
           error An error object describing the fault.

   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:
           plugin The plugin which is being notified.
           plugin_specific Plugin-specific data.
           handle The handle associated with the operation.

Enumeration Type Documentation

   enum globus_ftp_client_plugin_command_mask_t
       Command Mask. This enumeration includes the types of commands which the
       plugin is interested in.

       Enumerator:

       GLOBUS_FTP_CLIENT_CMD_MASK_CONTROL_ESTABLISHMENT
              connect, authenticate

       GLOBUS_FTP_CLIENT_CMD_MASK_DATA_ESTABLISHMENT
              PASV, PORT, SPOR, SPAS.

       GLOBUS_FTP_CLIENT_CMD_MASK_TRANSFER_PARAMETERS
              MODE, TYPE, STRU, OPTS RETR, DCAU.

       GLOBUS_FTP_CLIENT_CMD_MASK_TRANSFER_MODIFIERS
              ALLO, REST.

       GLOBUS_FTP_CLIENT_CMD_MASK_FILE_ACTIONS
              STOR, RETR, ESTO, ERET, APPE, LIST, NLST, MLSD, GET, PUT.

       GLOBUS_FTP_CLIENT_CMD_MASK_INFORMATION
              HELP, SITE HELP, FEAT, STAT, SYST, SIZE.

       GLOBUS_FTP_CLIENT_CMD_MASK_MISC
              SITE, NOOP.

       GLOBUS_FTP_CLIENT_CMD_MASK_BUFFER
              SBUF, ABUF.

       GLOBUS_FTP_CLIENT_CMD_MASK_ALL
              All possible commands.

Function Documentation

   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)
       Restart an existing list. This function will cause the currently
       executing transfer operation to be restarted. When a restart happens,
       the operation will be silently aborted, and then restarted with
       potentially a new URL and attributes. Any data buffers which are
       currently queued will be cleared and reused once the connection is re-
       established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in list events will receive a list
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the list.
           url The destination URL of the transfer. This may be different than
           the original list’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original list’s attribute set.
           when Absolute time for when to restart the list. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing verbose list. This function will cause the
       currently executing transfer operation to be restarted. When a restart
       happens, the operation will be silently aborted, and then restarted
       with potentially a new URL and attributes. Any data buffers which are
       currently queued will be cleared and reused once the connection is re-
       established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in list events will receive a list
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the list.
           url The destination URL of the transfer. This may be different than
           the original list’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original list’s attribute set.
           when Absolute time for when to restart the list. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing machine list. This function will cause the
       currently executing transfer operation to be restarted. When a restart
       happens, the operation will be silently aborted, and then restarted
       with potentially a new URL and attributes. Any data buffers which are
       currently queued will be cleared and reused once the connection is re-
       established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in list events will receive a list
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the list.
           url The destination URL of the transfer. This may be different than
           the original list’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original list’s attribute set.
           when Absolute time for when to restart the list. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing MLST. This function will cause the currently
       executing transfer operation to be restarted. When a restart happens,
       the operation will be silently aborted, and then restarted with
       potentially a new URL and attributes. Any data buffers which are
       currently queued will be cleared and reused once the connection is re-
       established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in list events will receive a list
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the list.
           url The destination URL of the transfer. This may be different than
           the original list’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original list’s attribute set.
           when Absolute time for when to restart the list. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing STAT. This function will cause the currently
       executing transfer operation to be restarted. When a restart happens,
       the operation will be silently aborted, and then restarted with
       potentially a new URL and attributes. Any data buffers which are
       currently queued will be cleared and reused once the connection is re-
       established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in list events will receive a list
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the list.
           url The destination URL of the transfer. This may be different than
           the original list’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original list’s attribute set.
           when Absolute time for when to restart the list. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing chmod. This function will cause the currently
       executing chmod operation to be restarted. When a restart happens, the
       operation will be silently aborted, and then restarted with potentially
       a new URL and attributes. Any data buffers which are currently queued
       will be cleared and reused once the connection is re-established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in chmod events will receive a chmod
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the chmod.
           url The destination URL of the transfer. This may be different than
           the original chmod’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           mode The file mode that will be applied. Must be an octal number
           repre- senting the bit pattern for the new permissions.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original chmod’s attribute set.
           when Absolute time for when to restart the chmod. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing cksm. This function will cause the currently
       executing cksm operation to be restarted. When a restart happens, the
       operation will be silently aborted, and then restarted with potentially
       a new URL and attributes. Any data buffers which are currently queued
       will be cleared and reused once the connection is re-established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in cksm events will receive a cksm
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the cksm.
           url The destination URL of the transfer. This may be different than
           the original cksm’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           offset File offset to start calculating checksum.
           length Length of data to read from the starting offset. Use -1 to
           read the entire file.
           algorithm A pointer to a string to be filled with the checksum of
           the file. On error the value pointed to by it is undefined.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original cksm’s attribute set.
           when Absolute time for when to restart the cksm. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing delete. This function will cause the currently
       executing delete operation to be restarted. When a restart happens, the
       operation will be silently aborted, and then restarted with potentially
       a new URL and attributes. Any data buffers which are currently queued
       will be cleared and reused once the connection is re-established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in delete events will receive a delete
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the delete.
           url The destination URL of the transfer. This may be different than
           the original delete’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original delete’s attribute set.
           when Absolute time for when to restart the delete. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing feat. This function will cause the currently
       executing feat operation to be restarted. When a restart happens, the
       operation will be silently aborted, and then restarted with potentially
       a new URL and attributes. Any data buffers which are currently queued
       will be cleared and reused once the connection is re-established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in feat events will receive a feat
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the feat.
           url The destination URL of the transfer. This may be different than
           the original feat’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original feat’s attribute set.
           when Absolute time for when to restart the feat. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing mkdir. This function will cause the currently
       executing operation to be restarted. When a restart happens, the
       operation will be silently aborted, and then restarted with potentially
       a new URL and attributes. Any data buffers which are currently queued
       will be cleared and reused once the connection is re-established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in mkdir events will receive a mkdir
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the mkdir.
           url The destination URL of the transfer. This may be different than
           the original mkdir’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original mkdir’s attribute set.
           when Absolute time for when to restart the mkdir. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing rmdir. This function will cause the currently
       executing operation to be restarted. When a restart happens, the
       operation will be silently aborted, and then restarted with potentially
       a new URL and attributes. Any data buffers which are currently queued
       will be cleared and reused once the connection is re-established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in rmdir events will receive a rmdir
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the rmdir.
           url The destination URL of the transfer. This may be different than
           the original rmdir’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original rmdir’s attribute set.
           when Absolute time for when to restart the rmdir. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing move. This function will cause the currently
       executing move operation to be restarted. When a restart happens, the
       operation will be silently aborted, and then restarted with potentially
       new URLs and attributes.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in get events will receive a move
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the move.
           source_url The source URL of the move. This may be different than
           the original get’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           dest_url The destination URL of the move. This may be different
           than the original get’s URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL. Note that only the path component of this URL is
           used.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original move’s attribute set. This may be
           useful when the plugin wishes to send restart markers to the FTP
           server to prevent re-sending the data which has already been sent.
           when Absolute time for when to restart the move. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart an existing get. This function will cause the currently
       executing transfer operation to be restarted. When a restart happens,
       the operation will be silently aborted, and then restarted with
       potentially a new URL and attributes. Any data buffers which are
       currently queued will be cleared and reused once the connection is re-
       established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in get events will receive a get
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the get.
           url The source URL of the transfer. This may be different than the
           original get’s URL, if the plugin decides to redirect to another
           FTP server due to performance or reliability problems with the
           original URL.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original get’s attribute set. This may be
           useful when the plugin wishes to send restart markers to the FTP
           server to prevent re-sending the data which has already been sent.
           restart_marker Plugin-provided restart marker for resuming at a
           non-default restart point. This may be used to implement a
           persistent restart across process invocations. The default behavior
           if this is NULL is to use any restart information which has been
           received by the ftp client library while processing this operation
           when restarted.
           when Absolute time for when to restart the get. The current control
           and data connections will be stopped immediately. If this completes
           before when, then the restart will be delayed until that time.
           Otherwise, it will be immediately restarted.

   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)
       Restart an existing put. This function will cause the currently
       executing transfer operation to be restarted. When a restart happens,
       the operation will be silently aborted, and then restarted with
       potentially a new URL and attributes. Any data buffers which are
       currently queued but not called back will be resent once the connection
       is re-established.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in get events will receive a put
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the put.
           url The URL of the transfer. This may be different than the
           original put’s URL, if the plugin decides to redirect to another
           FTP server due to performance or reliability problems with the
           original URL. If the put is restarted with a different URL, the
           plugin must re-send any data which has already been acknowledged by
           it’s callback.
           attr The attributes to use for the new transfer. This may be a
           modified version of the original put’s attribute set. This may be
           useful when the plugin wishes to send restart markers to the FTP
           server to prevent re-sending the data which has already been sent.
           restart_marker Plugin-provided restart marker for resuming at a
           non-default restart point. This may be used to implement a
           persistent restart across process invocations. The default behavior
           if this is NULL is to use any restart information which has been
           received by the ftp client library while processing this operation
           when restarted.
           when Absolute time for when to restart the put. The current control
           and data connections will be stopped immediately. If this completes
           before when, then the restart will be delayed until that time.
           Otherwise, it will be immediately restarted.

   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)
       Restart an existing third-party transfer. This function will cause the
       currently executing transfer operation to be restarted. When a restart
       happens, the operation will be silently aborted, and then restarted
       with potentially a new URLs and attributes.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in third-party transfer events will
       receive a transfer callback with the restart boolean set to
       GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the transfer.
           source_url The source URL of the transfer. This may be different
           than the original URL, if the plugin decides to redirect to another
           FTP server due to performance or reliability problems with the
           original URL
           source_attr The attributes to use for the new transfer. This may be
           a modified version of the original transfer’s attribute set. This
           may be useful when the plugin wishes to send restart markers to the
           FTP server to prevent re-sending the data which has already been
           sent.
           dest_url The destination URL of the transfer. This may be different
           than the original destination URL, if the plugin decides to
           redirect to another FTP server due to performance or reliability
           problems with the original URL.
           dest_attr The attributes to use for the new transfer. This may be a
           modified version of the original transfer’s attribute set. This may
           be useful when the plugin wishes to send restart markers to the FTP
           server to prevent re-sending the data which has already been sent.
           restart_marker Plugin-provided restart marker for resuming at a
           non-default restart point. This may be used to implement a
           persistent restart across process invocations. The default behavior
           if this is NULL is to use any restart information which has been
           received by the ftp client library while processing this operation
           when restarted.
           when Absolute time for when to restart the transfer. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart a size check operation. This function will cause the currently
       executing size check operation to be restarted. When a restart happens,
       the operation will be silently aborted, and then restarted with
       potentially a new URL and attributes.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in size operations will receive a size
       callback with the restart boolean set to GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the operation.
           url The source URL of the size check. This may be different than
           the original operations URL, if the plugin decides to redirect to
           another FTP server due to performance or reliability problems with
           the original URL.
           attr The attributes to use for the new operation. This may be a
           modified version of the original operations’s attribute set.
           when Absolute time for when to restart the size check. The current
           control and data connections will be stopped immediately. If this
           completes before when, then the restart will be delayed until that
           time. Otherwise, it will be immediately restarted.

   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)
       Restart a modification time check operation. This function will cause
       the currently executing modification time check operation to be
       restarted. When a restart happens, the operation will be silently
       aborted, and then restarted with potentially a new URL and attributes.

       The user will not receive any notification that a restart has happened.
       Each plugin which is interested in modification time operations will
       receive a modification time callback with the restart boolean set to
       GLOBUS_TRUE.

       Parameters:
           handle The handle which is associated with the operation.
           url The source URL of the modification time check. This may be
           different than the original operations URL, if the plugin decides
           to redirect to another FTP server due to performance or reliability
           problems with the original URL.
           attr The attributes to use for the new operation. This may be a
           modified version of the original operations’s attribute set.
           when Absolute time for when to restart the modification time check.
           The current control and data connections will be stopped
           immediately. If this completes before when, then the restart will
           be delayed until that time. Otherwise, it will be immediately
           restarted.

   globus_result_t globus_ftp_client_plugin_restart_get_marker
       (globus_ftp_client_handle_t * handle,
       globus_ftp_client_restart_marker_t * marker)
       Get restart marker

       This function will allow this user to get the restart marker associated
       with a restarted file transfer. This function may only be called within
       the get, put, or third party transfer callback in which the ’restart’
       argument is GLOBUS_TRUE

       Parameters:
           handle The handle which is associated with the transfer.
           marker Pointer to an uninitialized restart marker type

       Returns:

           · Error on NULL handle or marker

           · Error on invalid use of function

           · GLOBUS_SUCCESS (marker will be populated)

   globus_result_t globus_ftp_client_plugin_abort (globus_ftp_client_handle_t
       * handle)
       Abort a transfer operation. This function will cause the currently
       executing transfer operation to be aborted. When this happens, all
       plugins will be notified by their abort callbacks. Once those are
       processed, the complete callback will be called for all plugins, and
       then for the user’s callback.

       The complete callback will indicate that the transfer did not complete
       successfully.

       Parameters:
           handle The handle which is associated with the transfer.

   globus_result_t globus_ftp_client_plugin_add_data_channels
       (globus_ftp_client_handle_t * handle, unsigned int num_channels,
       unsigned int stripe)
       Add data channels to an existing put transfer. This function will cause
       the currently executing transfer operation to have additional data
       channels acquired if the attribute set allows it.

       Parameters:
           handle The handle which is associated with the transfer.
           num_channels The number of channels to add to the transfer.
           stripe The stripe number to have the channels added to.

       Note:
           Do the plugins need to be notified when this happens?

   globus_result_t globus_ftp_client_plugin_remove_data_channels
       (globus_ftp_client_handle_t * handle, unsigned int num_channels,
       unsigned int stripe)
       Remove data channels from an existing put transfer. This function will
       cause the currently executing transfer operation to have data channels
       removed, if the attribute set allows it.

       Parameters:
           handle The handle which is associated with the transfer.
           num_channels The number of channels to remove from the transfer.
           stripe The stripe number to have the channels removed from.

       Note:
           Do the plugins need to be notified when this happens?

Author

       Generated automatically by Doxygen for globus ftp client from the
       source code.