Loading...
Searching...
No Matches
globus_gass_copy.h File Reference

GASS Copy Library. More...

`#include <openssl/evp.h>`
`#include "globus_gass_transfer.h"`
`#include "globus_ftp_client.h"`
`#include "globus_io.h"`

Go to the source code of this file.

## Data Structures

struct | globus_gass_copy_handle_s
| Copy Handle. More...
struct | globus_gass_copy_attr_s
| Attributes. More...
struct | globus_gass_copy_handleattr_s
| Handle Attributes. More...
struct | globus_gass_copy_glob_stat_t
| Glob expanded entry information. More...

## Macros

#define | GLOBUS_GASS_COPY_MODULE (&globus_i_gass_copy_module)
| Module Descriptor.

## Typedefs

typedef void(* | globus_gass_copy_performance_cb_t) (void *user_arg, globus_gass_copy_handle_t *handle, globus_off_t total_bytes, float instantaneous_throughput, float avg_throughput)
| Performance Callback.
typedef void(* | globus_gass_copy_callback_t) (void *callback_arg, globus_gass_copy_handle_t *handle, globus_object_t *error)
| Copy Callback.
typedef struct globus_gass_copy_attr_s | globus_gass_copy_attr_t
| Attributes.
typedef struct globus_gass_copy_handleattr_s | globus_gass_copy_handleattr_t
| Handle Attributes.
typedef void(* | globus_gass_copy_glob_entry_cb_t) (const char *url, const globus_gass_copy_glob_stat_t *info_stat, void *user_arg)
| Gass copy glob entry callback.

## Enumerations

enum | globus_gass_copy_status_t
| Status States.
enum | globus_gass_copy_url_mode_t
| URL Modes.
enum | globus_gass_copy_glob_entry_t

## Functions

globus_result_t | globus_gass_copy_handle_init (globus_gass_copy_handle_t *handle, globus_gass_copy_handleattr_t *handle_attr)
| Initialize a GASS Copy handle.
globus_result_t | globus_gass_copy_handle_destroy (globus_gass_copy_handle_t *handle)
| Destroy a GASS Copy handle.
globus_result_t | globus_gass_copy_set_buffer_length (globus_gass_copy_handle_t *handle, int length)
| Set the size of the buffer to be used for doing transfers.
globus_result_t | globus_gass_copy_get_buffer_length (globus_gass_copy_handle_t *handle, int *length)
| Get the size of the transfer buffer.
globus_result_t | globus_gass_copy_set_no_third_party_transfers (globus_gass_copy_handle_t *handle, globus_bool_t no_third_party_transfers)
| Enable/Disable third-party transfers.
globus_result_t | globus_gass_copy_get_no_third_party_transfers (globus_gass_copy_handle_t *handle, globus_bool_t *no_third_party_transfers)
| Query third-party transfer status.
globus_result_t | globus_gass_copy_get_partial_offsets (globus_gass_copy_handle_t *handle, globus_off_t *offset, globus_off_t *end_offset)
| Get partial transfer offsets.
globus_result_t | globus_gass_copy_set_partial_offsets (globus_gass_copy_handle_t *handle, globus_off_t offset, globus_off_t end_offset)
| Set partial file offsets.
globus_result_t | globus_gass_copy_set_allocate (globus_gass_copy_handle_t *handle, globus_bool_t send_allo)
| Set allo on or off.
globus_result_t | globus_gass_copy_set_stat_on_expand (globus_gass_copy_handle_t *handle, globus_bool_t always_stat)
| Make globus_gass_copy_expand_url() always send stat info.
globus_result_t | globus_gass_copy_set_checksum_algo (globus_gass_copy_handle_t *handle, char *algo, globus_gass_copy_handle_t *cksm_handle)
| Stores the checksum algorithm to use with all checksum operations.
globus_result_t | globus_gass_copy_set_checksum (globus_gass_copy_handle_t *handle, char *cksm)
| Copies the checksum to the handle's checksum parameter.
globus_result_t | globus_gass_copy_get_url_mode (char *url, globus_gass_copy_url_mode_t *mode)
| Get URL scheme.
globus_result_t | globus_gass_copy_attr_init (globus_gass_copy_attr_t *attr)
| Initialize an attribute structure.
globus_result_t | globus_gass_copy_attr_set_ftp (globus_gass_copy_attr_t *attr, globus_ftp_client_operationattr_t *ftp_attr)
| Set the attributes for ftp/gsiftp transfers.
globus_result_t | globus_gass_copy_attr_set_io (globus_gass_copy_attr_t *attr, globus_io_attr_t *io_attr)
| Set file transfers attributes.
globus_result_t | globus_gass_copy_attr_set_gass (globus_gass_copy_attr_t *attr, globus_gass_transfer_requestattr_t *gass_attr)
| Set the http/https attributes.
globus_result_t | globus_gass_copy_url_to_url (globus_gass_copy_handle_t *handle, char *source_url, globus_gass_copy_attr_t *source_attr, char *dest_url, globus_gass_copy_attr_t *dest_attr)
| Blocking Transfer between URLs.
globus_result_t | globus_gass_copy_url_to_handle (globus_gass_copy_handle_t *handle, char *source_url, globus_gass_copy_attr_t *source_attr, globus_io_handle_t *dest_handle)
| Blocking Transfer from an URL to an IO handle.
globus_result_t | globus_gass_copy_handle_to_url (globus_gass_copy_handle_t *handle, globus_io_handle_t *source_handle, char *dest_url, globus_gass_copy_attr_t *dest_attr)
| Blocking transfer from an IO handle to an URL.
globus_result_t | globus_gass_copy_register_url_to_url (globus_gass_copy_handle_t *handle, char *source_url, globus_gass_copy_attr_t *dest_attr, char *dest_url, globus_gass_copy_attr_t *source_attr, globus_gass_copy_callback_t callback_func, void *callback_arg)
globus_result_t | globus_gass_copy_register_url_to_handle (globus_gass_copy_handle_t *handle, char *source_url, globus_gass_copy_attr_t *source_attr, globus_io_handle_t *dest_handle, globus_gass_copy_callback_t callback_func, void *callback_arg)
| Nonblocking transfer from an URL to an IO handle.
globus_result_t | globus_gass_copy_register_handle_to_url (globus_gass_copy_handle_t *handle, globus_io_handle_t *source_handle, char *dest_url, globus_gass_copy_attr_t *dest_attr, globus_gass_copy_callback_t callback_func, void *callback_arg)
globus_result_t | globus_gass_copy_get_status (globus_gass_copy_handle_t *handle, globus_gass_copy_status_t *status)
| Get the status code of a transfer.
const char * | globus_gass_copy_get_status_string (globus_gass_copy_handle_t *handle)
| Get the status string of a transfer.
globus_result_t | globus_gass_copy_cancel (globus_gass_copy_handle_t *handle, globus_gass_copy_callback_t cancel_callback, void *cancel_callback_arg)
| Cancel a transfer.
globus_result_t | globus_gass_copy_cache_url_state (globus_gass_copy_handle_t *handle, char *url)
| Cache connections to an FTP or GridFTP server.
globus_result_t | globus_gass_copy_flush_url_state (globus_gass_copy_handle_t *handle, char *url)
| Remove an FTP or GridFTP cached connection.
globus_result_t | globus_gass_copy_set_user_pointer (globus_gass_copy_handle_t *handle, void *user_data)
| Set the user pointer in a handle.
globus_result_t | globus_gass_copy_get_user_pointer (globus_gass_copy_handle_t *handle, void **user_data)
| Get the user pointer in a handle.
globus_result_t | globus_gass_copy_register_performance_cb (globus_gass_copy_handle_t *handle, globus_gass_copy_performance_cb_t callback, void *user_arg)
| Register a performance information callback.
globus_result_t | globus_gass_copy_glob_expand_url (globus_gass_copy_handle_t *handle, const char *url, globus_gass_copy_attr_t *attr, globus_gass_copy_glob_entry_cb_t entry_cb, void *user_arg)
| Expand globbed url.
globus_result_t | globus_gass_copy_mkdir (globus_gass_copy_handle_t *handle, char *url, globus_gass_copy_attr_t *attr)
| Make directory.

## Detailed Description

GASS Copy Library.

## Function Documentation

## globus_gass_copy_cache_url_state()

globus_result_t globus_gass_copy_cache_url_state | ( | globus_gass_copy_handle_t * | handle,
|  | char * | url )

Cache connections to an FTP or GridFTP server.

Explicitly cache connections to URL server. When an URL is cached, the connection to the URL server will not be closed after a file transfer completes.

Parameters

  handle | Handle which will contain a cached connection to the URL server.
  url | The URL of the FTP or GSIFTP server to cache.

Returns
  This function returns GLOBUS_SUCCESS if successful, or a globus_result_t indicating the error that occurred.

## globus_gass_copy_flush_url_state()

globus_result_t globus_gass_copy_flush_url_state | ( | globus_gass_copy_handle_t * | handle,
|  | char * | url )

Remove an FTP or GridFTP cached connection.

Explicitly remove a cached connection to an FTP or GSIFTP server. If an idle connection to an FTP server exists, it will be closed.

Parameters

  handle | Handle which contains a cached connection to the URL server.
  url | The URL of the FTP or GSIFTP server to remove.

Returns
  This function returns GLOBUS_SUCCESS if successful, or a globus_result_t indicating the error that occurred.

## globus_gass_copy_handle_to_url()

globus_result_t globus_gass_copy_handle_to_url | ( | globus_gass_copy_handle_t * | handle,
|  | globus_io_handle_t * | source_handle,
|  | char * | dest_url,
|  | globus_gass_copy_attr_t * | dest_attr )

Blocking transfer from an IO handle to an URL.

Parameters

  handle | The handle to perform the copy operation
  source_handle | transfer data from this IO handle
  dest_url | transfer data to this URL
  dest_attr | Attributes describing how the transfer to the destination should be done

Returns
  This function returns GLOBUS_SUCCESS if the transfer was completed successfully, or a result pointing to an object of one of the the following error types:

Return values

  GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETER | The handle was equal to GLOBUS_NULL, so the transfer could not processed.
  GLOBUS_GASS_COPY_ERROR_TYPE_next_error | next error description

See also
  globus_gass_copy_url_to_url() globus_gass_copy_url_to_handle()

## globus_gass_copy_register_handle_to_url()

globus_result_t globus_gass_copy_register_handle_to_url | ( | globus_gass_copy_handle_t * | handle,
|  | globus_io_handle_t * | source_handle,
|  | char * | dest_url,
|  | globus_gass_copy_attr_t * | dest_attr,
|  | globus_gass_copy_callback_t | callback_func,
|  | void * | callback_arg )

Nonblocking Transfer From an IO handle to an URL

This functions initiates a transfer from an IO handle to destination URL, then returns immediately.

When the transfer is completed or if the transfer is aborted, the callback_func will be invoked with the final status of the transfer.

Parameters

  handle | The handle to perform the copy operation
  source_handle | transfer data from this IO handle
  dest_url | transfer data to this URL
  dest_attr | Attributes describing how the transfer to the destination should be done
  callback_func | Callback to be invoked once the transfer is completed.
  callback_arg | Argument to be passed to the callback_func.

Returns
  This function returns GLOBUS_SUCCESS if the transfer was initiated successfully, or a result pointing to an object of one of the the following error types:

Return values

  GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETER | The handle was equal to GLOBUS_NULL, so the transfer could not processed.
  GLOBUS_GASS_COPY_ERROR_TYPE_next_error | next error description

See also
  globus_gass_copy_register_url_to_url(), globus_gass_copy_register_url_to_handle()

## globus_gass_copy_register_url_to_handle()

globus_result_t globus_gass_copy_register_url_to_handle | ( | globus_gass_copy_handle_t * | handle,
|  | char * | source_url,
|  | globus_gass_copy_attr_t * | source_attr,
|  | globus_io_handle_t * | dest_handle,
|  | globus_gass_copy_callback_t | callback_func,
|  | void * | callback_arg )

Nonblocking transfer from an URL to an IO handle.

This functions initiates a transfer from source URL to an IO handle, then returns immediately.

When the transfer is completed or if the transfer is aborted, the callback_func will be invoked with the final status of the transfer.

Parameters

  handle | The handle to perform the copy operation
  source_url | transfer data from this URL
  source_attr | Attributes describing how the transfer form the source should be done
  dest_handle | transfer data to this IO handle
  callback_func | Callback to be invoked once the transfer is completed.
  callback_arg | Argument to be passed to the callback_func.

Returns
  This function returns GLOBUS_SUCCESS if the transfer was initiated successfully, or a result pointing to an object of one of the the following error types:

Return values

  GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETER | The handle was equal to GLOBUS_NULL, so the transfer could not processed.
  GLOBUS_GASS_COPY_ERROR_TYPE_next_error | next error description

See also
  globus_gass_copy_register_url_to_url(), globus_gass_copy_register_handle_to_url()

## globus_gass_copy_register_url_to_url()

globus_result_t globus_gass_copy_register_url_to_url | ( | globus_gass_copy_handle_t * | handle,
|  | char * | source_url,
|  | globus_gass_copy_attr_t * | source_attr,
|  | char * | dest_url,
|  | globus_gass_copy_attr_t * | dest_attr,
|  | globus_gass_copy_callback_t | callback_func,
|  | void * | callback_arg )

Nonblocking Transfer between URLs

This functions initiates a transfer from source URL to destination URL, then returns immediately.

When the transfer is completed or if the transfer is aborted, the callback_func will be invoked with the final status of the transfer.

Parameters

  handle | The handle to perform the copy operation
  source_url | transfer data from this URL
  source_attr | Attributes describing how the transfer form the source should be done
  dest_url | transfer data to this URL
  dest_attr | Attributes describing how the transfer to the destination should be done
  callback_func | Callback to be invoked once the transfer is completed.
  callback_arg | Argument to be passed to the callback_func.

Returns
  This function returns GLOBUS_SUCCESS if the transfer was initiated successfully, or a result pointing to an object of one of the the following error types:

Return values

  GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETER | The handle was equal to GLOBUS_NULL, so the transfer could not processed.
  GLOBUS_GASS_COPY_ERROR_TYPE_next_error | next error description

See also
  globus_gass_copy_register_url_to_handle(), globus_gass_copy_register_handle_to_url()

## globus_gass_copy_url_to_handle()

globus_result_t globus_gass_copy_url_to_handle | ( | globus_gass_copy_handle_t * | handle,
|  | char * | source_url,
|  | globus_gass_copy_attr_t * | source_attr,
|  | globus_io_handle_t * | dest_handle )

Blocking Transfer from an URL to an IO handle.

Parameters

  handle | The handle to perform the copy operation
  source_url | transfer data from this URL
  source_attr | Attributes describing how the transfer form the source should be done
  dest_handle | transfer data to this IO handle

Returns
  This function returns GLOBUS_SUCCESS if the transfer was completed successfully, or a result pointing to an object of one of the the following error types:

Return values

  GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETER | The handle was equal to GLOBUS_NULL, so the transfer could not processed.
  GLOBUS_GASS_COPY_ERROR_TYPE_next_error | next error description

See also
  globus_gass_copy_url_to_url() globus_gass_copy_handle_to_url()

## globus_gass_copy_url_to_url()

globus_result_t globus_gass_copy_url_to_url | ( | globus_gass_copy_handle_t * | handle,
|  | char * | source_url,
|  | globus_gass_copy_attr_t * | source_attr,
|  | char * | dest_url,
|  | globus_gass_copy_attr_t * | dest_attr )

Blocking Transfer between URLs.

Parameters

  handle | The handle to perform the copy operation
  source_url | transfer data from this URL
  source_attr | Attributes describing how the transfer form the source should be done
  dest_url | transfer data to this URL
  dest_attr | Attributes describing how the transfer to the destination should be done

Returns
  This function returns GLOBUS_SUCCESS if the transfer was completed successfully, or a result pointing to an object of one of the the following error types:

Return values

  GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETER | The handle was equal to GLOBUS_NULL, so the transfer could not processed.
  GLOBUS_GASS_COPY_ERROR_TYPE_next_error | next error description

See also
  globus_gass_copy_url_to_handle() globus_gass_copy_handle_to_url()