control_plugin.c File Reference

Remote control of FTP transfers. More...

#include "control_plugin.h"

Compounds

struct  control_plugin_specific_t

Functions

globus_result_t control_plugin_init ( globus_ftp_client_plugin_t * plugin)
globus_result_t control_plugin_destroy ( globus_ftp_client_plugin_t * plugin)
globus_result_t control_plugin_set_transfer_id ( globus_ftp_client_plugin_t * plugin, const char * transfer_id)
 Set the transfer id for this plugin. More...

globus_result_t control_plugin_set_timeout ( globus_ftp_client_plugin_t * plugin, int timeout)
 Set the timeout for a control plugin. More...

globus_result_t control_plugin_get_listener_address ( char * address, int address_len)
 Retrieve the listener address of the plugin. More...


Detailed Description

Remote control of FTP transfers.

This plugin allows another application to alter the number of ftp data channels for a ftp client data transfer. Also, this plugin allows a remote application to restart a transfer. Remote control is implemented using a simple TCP/IP protocol.


Function Documentation

globus_result_t control_plugin_get_listener_address ( char * address,
int address_len )
 

Retrieve the listener address of the plugin.

This function returns the address of the listener associated with the control plugin in the user-providied buffer. This function may be called only after the CONTROL_PLUGIN_MODULE has been activated.

The listener address is the same for all instances of the plugin, so the user of the plugin need only call this once.

Parameters:
address   Pointer to the user's buffer. The buffer's contents will be set to the listener's address in the form hostname:port. If the address buffer is too small, it will be set to the null string.
address_len   The size of the address buffer.

globus_result_t control_plugin_set_timeout ( globus_ftp_client_plugin_t * plugin,
int timeout )
 

Set the timeout for a control plugin.

This function updates the timeout associated with a control plugin. When a request to change the parallelism of a transfer is received over the network, the plugin will wait until timeout seconds have elapsed before restarting the transfer with the new value of the transfer. This allows multiple parallelism messages to be collapsed into a single (expensive) call to modify the parallelism of the transfer.

Each transfer in progress has a separate timeout value.

Parameters:
plugin   The plugin to update.
timeout   The amount of time, in seconds, to wait until before committing a change in the parallelism of the transfer.

globus_result_t control_plugin_set_transfer_id ( globus_ftp_client_plugin_t * plugin,
const char * transfer_id )
 

Set the transfer id for this plugin.

This function sets the transfer id to associate with a plugin. Transfer ID values should be unique in order to dispatch control messages to the appropriate plugin instance. Every time a plugin is used with a new transfer, the tranfser ID should be modified.

Because plugins data is copied when the transfer begins, it is safe to call this function after globus_ftp_client_third_party_transfer() and before the complete callback is invoked without confusing the plugin.

Parameters:
plugin   The plugin to update.
transfer_id   The new transfer_id to associate with this plugin.