---
name: "globus_gass_copy_get_url_mode"
section: "3"
platform: "linux"
package: "libglobus-gass-copy-doc"
version: "10.13-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/globus_gass_copy"
---

# globus\_gass\_copy\_get\_url\_mode(3)

GASS Copy - Protocol-Independent File Transfer.

Part of [globus\_gass\_copy(3)](/globus_gass_copy/3.md).

## NAME

globus\_gass\_copy - GASS Copy

 \- Protocol-Independent File Transfer.

## SYNOPSIS

### Data Structures

struct **globus\_gass\_copy\_handle\_s**\
 Copy Handle.  struct **globus\_gass\_copy\_attr\_s**\
 Attributes.  struct **globus\_gass\_copy\_handleattr\_s**\
 Handle Attributes.  struct **globus\_gass\_copy\_glob\_stat\_t**\
 Glob expanded entry information.

### 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** \*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\_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\_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\_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\_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\_get\_url\_mode** (char \*url, **globus\_gass\_copy\_url\_mode\_t** \*mode)\
 Get URL scheme.  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\_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\_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

Protocol-Independent File Transfer.

The Globus GASS Copy library is motivated by the desire to provide a uniform interface to transfer files specified by different protocols.

The goals in doing this are to:

- •

  Provide a robust way to describe and apply file transfer properties for a variety of protocols. These include the standard HTTP, FTP and GSIFTP options. Some of the new file transfer capabilities in GSIFTP are parallel, striping, authentication and TCP buffer sizing.

- •

  Provide a service to support nonblocking file transfer and handle asynchronous file and network events.

- •

  Provide a simple and portable way to implement file transfers.

Any program that uses Globus GASS Copy functions must include 'globus\_gass\_copy.h'.

Globus GASS Copy uses standard Globus module activation and deactivation. Before any Globus GASS Copy functions are called, the following function must be called:

```
globus_module_activate(GLOBUS_GASS_COPY_MODULE)
```

This function returns GLOBUS\_SUCCESS if Globus GASS Copy was successfully initialized, and you are therefore allowed to subsequently call Globus GASS Copy functions. Otherwise, an error code is returned, and Globus GASS Copy functions should not be subsequently called. This function may be called multiple times.

To deactivate Globus GASS Copy, the following function must be called:

```
globus_module_deactivate(GLOBUS_GASS_COPY_MODULE)
```

This function should be called once for each time Globus GASS Copy was activated.

## Typedef Documentation

### typedef struct globus\_gass\_copy\_attr\_s globus\_gass\_copy\_attr\_t

Attributes. Contains any/all attributes that are required to perform the supported transfer methods (ftp, gass, io).

### typedef void(\* globus\_gass\_copy\_callback\_t) (void \*callback\_arg, globus\_gass\_copy\_handle\_t \*handle, globus\_object\_t \*error)

Copy Callback. Signature of a callback from globus\_gass\_copy\_register\_\*() functions. (nonblocking transfer functions)

### 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. This callback is passed as a parameter to **globus\_gass\_copy\_glob\_expand\_url()**. It is called once for each entry that the original expands to.

**Parameters**

*url* The full url to the expanded entry. A directory entry will end in a forward slash '/'.\
 *info\_stat* A pointer to a **globus\_gass\_copy\_glob\_stat\_t** containing information about the entry.\
 *user\_arg* The user\_arg passed to globus\_gass\_copy\_glob\_expand()

**See also**

**globus\_gass\_copy\_glob\_stat\_t**, **globus\_gass\_copy\_glob\_expand\_url**

### typedef struct globus\_gass\_copy\_handleattr\_s globus\_gass\_copy\_handleattr\_t

Handle Attributes. Contains any/all attributes that are required to create lower-level handles (ftp, gass, io).

### 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. This callback is registered with 'globus\_gass\_copy\_register\_performance\_cb' It will be called during a transfer to supply performance information on current transfer. Its frequency will be at most one per second, but it is possible to receive no callbacks. This is possible in very short transfers and in ftp transfers in which the server does not provide performance information.

**Parameters**

*handle* the gass copy handle this transfer is occurring on\
 *user\_arg* a user pointer registered with 'globus\_gass\_copy\_register\_performance\_cb'\
 *total\_bytes* the total number of bytes transfer so far\
 *instantaneous\_throughput* instantaneous rate of transfer (since last callback or start) (bytes / sec)\
 *avg\_throughput* the avg thoughput calculated since the start of the transfer (bytes / sec)

**Returns**

- •

  n/a

## Enumeration Type Documentation

### enum globus\_gass\_copy\_glob\_entry\_t

globbed entry types

## Function Documentation

### globus\_result\_t globus\_gass\_copy\_attr\_init (globus\_gass\_copy\_attr\_t \* attr)

Initialize an attribute structure. The globus\_gass\_copy\_attr\_t can be used to pass the globus\_gass\_copy library information about how a transfer should be performed. It must first be initialized by calling this function. Then any or all of the following functions may be called to set attributes associated with a particular protocol: **globus\_gass\_copy\_attr\_set\_ftp()**, **globus\_gass\_copy\_attr\_set\_gass()**, **globus\_gass\_copy\_attr\_set\_io()**. Any function which takes a globus\_gass\_copy\_attr\_t as an argument will also accept GLOBUS\_NULL, in which case the appropriate set of default attributes will be used.

**Parameters**

*attr* The attribute structure to be initialized

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

**See also**

**globus\_gass\_copy\_attr\_set\_ftp()**, **globus\_gass\_copy\_attr\_set\_gass()**, **globus\_gass\_copy\_attr\_set\_io()**, **globus\_gass\_copy\_get\_url\_mode()**.

### 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. In order to specify attributes for ftp/gsiftp transfers, a globus\_ftp\_client\_operationattr\_t should be initialized and its values set using the appropriate globus\_ftp\_client\_operationattr\_\* functions. The globus\_ftp\_client\_operationattr\_t \* can then be passed to the globus\_gass\_copy\_attr\_t via this function.

**Parameters**

*attr* A globus\_gass\_copy attribute structure \
 *ftp\_attr* The ftp/gsiftp attributes to be used

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

**See also**

**globus\_gass\_copy\_attr\_init()**, **globus\_gass\_copy\_attr\_set\_gass()**, **globus\_gass\_copy\_attr\_set\_io()**, **globus\_gass\_copy\_get\_url\_mode()**, globus\_ftp\_client\_operationattr\_\*

### 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. In order to specify attributes for http/https transfers, a globus\_gass\_transfer\_requestattr\_t should be initialized and its values set using the appropriate globus\_gass\_transfer\_requestattr\_\* functions. The globus\_gass\_transfer\_requestattr\_t can then be passed to the globus\_gass\_copy\_attr\_t via this function.

**Parameters**

*attr* A globus\_gass\_copy attribute structure \
 *gass\_attr* The http/https attributes to be used

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

**See also**

**globus\_gass\_copy\_attr\_init()**, **globus\_gass\_copy\_attr\_set\_io()**, **globus\_gass\_copy\_attr\_set\_ftp()**, **globus\_gass\_copy\_get\_url\_mode()**, globus\_gass\_transfer\_requestattr\_\*

### 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. In order to specify attributes for file transfers, a globus\_io\_attr\_t should be initialized and its values set using the appropriate globus\_io\_attr\_\* functions. The globus\_io\_attr\_t can then be passed to the globus\_gass\_copy\_attr\_t via this function.

**Parameters**

*attr* A globus\_gass\_copy attribute structure \
 *io\_attr* The file attributes to be used

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

**See also**

**globus\_gass\_copy\_attr\_init()**, **globus\_gass\_copy\_attr\_set\_gass()**, **globus\_gass\_copy\_attr\_set\_ftp()**, **globus\_gass\_copy\_get\_url\_mode()**, globus\_io\_attr\_\*

### globus\_result\_t globus\_gass\_copy\_get\_buffer\_length (globus\_gass\_copy\_handle\_t \* handle, int \* length)

Get the size of the transfer buffer. This function allows the user to get the size of the buffer that is being used for doing transfers.

**Parameters**

*handle* Get the buffer length for transfers associated with this handle. \
 *length* The length, in bytes, of the buffer.

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

### 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. This function allows the user to see if third-party transfers are turned on or off for ftp to ftp transfers associated with a particular handle. This is often desired if one of the servers involved in the transfer does not allow third-party transfers.

**Parameters**

*handle* See if third-party transfers are turned on or off for transfers associated with this handle. They are on by default. \
 *no\_third\_party\_transfers* GLOBUS\_FALSE if third-party transfers should be used. GLOBUS\_TRUE if third-party transfers should not be used.

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

### 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. This function allows the user to get the offsets that are being used for doing partial transfers. An offset of -1 means partial transfers are disabled.

**Parameters**

*handle* Get the offsets for partial transfers associated with this handle. \
 *offset* The starting offset for the partial transfer. \
 *end\_offset* The ending offset for the partial transfer.

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

### 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. Get the status of the last transfer to be initiated using the given handle. Only one transfer can be active on a handle at a given time, therefore new transfers may only be initiated when the current status is one of the following: GLOBUS\_GASS\_COPY\_STATUS\_NONE, GLOBUS\_GASS\_COPY\_STATUS\_DONE\_SUCCESS, GLOBUS\_GASS\_COPY\_STATUS\_DONE\_FAILURE, GLOBUS\_GASS\_COPY\_STATUS\_DONE\_CANCELLED

**Parameters**

*handle* A globus\_gass\_copy\_handle \
 *status* Will be one of the following: GLOBUS\_GASS\_COPY\_STATUS\_NONE (No transfers have been initiated using this handle.) GLOBUS\_GASS\_COPY\_STATUS\_PENDING (A transfer is currently being set up.) GLOBUS\_GASS\_COPY\_STATUS\_TRANSFER\_IN\_PROGRESS (There is currently a transfer in progress.) GLOBUS\_GASS\_COPY\_STATUS\_CANCEL (The last transfer initiated using this handle has been cancelled by the user before completing, and is in the process of being cleaned up.) GLOBUS\_GASS\_COPY\_STATUS\_FAILURE (The last transfer initiated using this handle failed, and is in the process of being cleaned up.) GLOBUS\_GASS\_COPY\_STATUS\_DONE\_SUCCESS (The last transfer initiated using this handle has completed successfully.) GLOBUS\_GASS\_COPY\_STATUS\_DONE\_FAILURE (The last transfer initiated using this handle failed and has finished cleaning up.) GLOBUS\_GASS\_COPY\_STATUS\_DONE\_CANCELLED (The last transfer initiated using this handle was cancelled and has finished cleaning up.)

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

### const char \* globus\_gass\_copy\_get\_status\_string (globus\_gass\_copy\_handle\_t \* handle)

Get the status string of a transfer. Get the status of the last transfer to be initiated using the given handle. Only one transfer can be active on a handle at a given time, therefore new transfers may only be initiated when the current status is one of the following: GLOBUS\_GASS\_COPY\_STATUS\_NONE, GLOBUS\_GASS\_COPY\_STATUS\_DONE\_SUCCESS, GLOBUS\_GASS\_COPY\_STATUS\_DONE\_FAILURE, GLOBUS\_GASS\_COPY\_STATUS\_DONE\_CANCELLED

**Parameters**

*handle* A globus\_gass\_copy\_handle

**Returns**

Returns a pointer to a character string describing the current status

### globus\_result\_t globus\_gass\_copy\_get\_url\_mode (char \* url, globus\_gass\_copy\_url\_mode\_t \* mode)

Get URL scheme. This function enables the user to determine what protocol will be used to transfer data to/from a particular url. This information can then be used to specify the appropriate attributes when initiating a transfer.

**Parameters**

*url* The URL for schema checking \
 *mode* the filled in schema type of the URL param

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

**See also**

**globus\_gass\_copy\_attr\_init()**, **globus\_gass\_copy\_attr\_set\_io()**, **globus\_gass\_copy\_attr\_set\_ftp()**, globus\_gass\_copy\_set\_gass()

### 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. This function expands wildcards in a globbed url, and calls entry\_cb() on each one.

**Parameters**

*handle* A gass copy handle to use for the operation.\
 *url* The URL to expand. The URL may be an ftp, gsiftp or file URL. Wildcard characters supported are '?' '\*' '\[ \]' in the filename portion of the url.\
 *attr* Gass copy attributes for this operation.\
 *entry\_cb* Function to call with information about each entry\
 *user\_arg* An argument to pass to entry\_cb()

**Returns**

This function returns an error when any of these conditions are true:

- •

  handle is GLOBUS\_NULL

- •

  url is GLOBUS\_NULL

- •

  url cannot be parsed

- •

  url is not a ftp, gsiftp or file url

### globus\_result\_t globus\_gass\_copy\_handle\_destroy (globus\_gass\_copy\_handle\_t \* handle)

Destroy a GASS Copy handle. Destroy a gass\_copy\_handle, which was initialized using **globus\_gass\_copy\_handle\_init()**, that will no longer be used for doing transfers. Once the handle is destroyed, no further transfers should be associated with it.

**Parameters**

*handle* The handle to be destroyed

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

**See also**

**globus\_gass\_copy\_handle\_init()**, globus\_ftp\_client\_handle\_destroy()

### globus\_result\_t globus\_gass\_copy\_handle\_init (globus\_gass\_copy\_handle\_t \* handle, globus\_gass\_copy\_handleattr\_t \* attr)

Initialize a GASS Copy handle. A globus\_gass\_copy\_handle must be initialized before any transfers may be associated with it. This function initializes a globus\_gass\_copy\_handle to be used for doing transfers, this includes initializing a globus\_ftp\_client\_handle which will be used for doing any ftp/gsiftp transfers. The same handle may be used to perform multiple, consecutive transfers. However, there can only be one transfer associated with a particular handle at any given time. After all transfers to be associated with this handle have completed, the handle should be destroyed by calling **globus\_gass\_copy\_handle\_destroy()**.

**Parameters**

*handle* The handle to be initialized \
 *attr* The handle attributes used to use with this handle

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

**See also**

**globus\_gass\_copy\_handle\_destroy()** , globus\_gass\_copy\_handleattr\_init(), globus\_ftp\_client\_hande\_init()

### globus\_result\_t globus\_gass\_copy\_mkdir (globus\_gass\_copy\_handle\_t \* handle, char \* url, globus\_gass\_copy\_attr\_t \* attr)

Make directory. This function creates a directory given a ftp or file url.

**Parameters**

*handle* A gass copy handle to use for the mkdir operation. \
 *url* The URL for the directory to create. The URL may be an ftp, gsiftp or file URL. \
 *attr* Gass copy attributes for this operation.

**Returns**

This function returns an error when any of these conditions are true:

- •

  handle is GLOBUS\_NULL

- •

  url is GLOBUS\_NULL

- •

  url cannot be parsed

- •

  url is not a ftp, gsiftp or file url

- •

  the directory could not be created

### 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. Use this to register a performance information callback. You change or set to GLOBUS\_NULL the callback any time a transfer is not occurring.

**Parameters**

*handle* an initialized gass copy handle for which you would like to see performance info\
 *callback* the performance callback\
 *user\_arg* a user pointer that will be passed to all callbacks for a given handle

**Returns**

- •

  GLOBUS\_SUCCESS

- •

  error on a NULL or busy handle

**See also**

**globus\_gass\_copy\_performance\_cb\_t**

### 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. This function allows the user to set the size of the buffer that will be used for doing transfers, if this function is not called the buffer size will default to 1M.

**Parameters**

*handle* Set the buffer length for transfers associated with this handle. \
 *length* The length, in bytes, to make the buffer.

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

### 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. This function frees any existing checksum value stored in the handle, then copies the passed in checksum to the handle.

**Parameters**

*handle* The handle to the object to which the checksum shall be set. \
 *cksm* The checksum string to be set to the handle.

**Returns**

This function always returns GLOBUS\_SUCCESS

### 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. This function sets the checksum algorithm and the handle to be used for checksum calculations to the passed in handle.

**Parameters**

*handle* This is the handle to which the checksum algorithm and handle are set. \
 *algo* This is the algorithm to set in the handle. \
 *cksm\_handle* This is the handle that is used for performing checksum operations that will be set in the handle.

**Returns**

This function always returns GLOBUS\_SUCCESS

### 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. This function allows the user to turn third-party transfers on or off for ftp to ftp transfers associated with a particular handle. This is often desired if one of the servers involved in the transfer does not allow third-party transfers.

**Parameters**

*handle* Turn third-party transfers on or off for transfers associated with this handle. They are on by default. \
 *no\_third\_party\_transfers* GLOBUS\_FALSE if third-party transfers should be used. GLOBUS\_TRUE if third-party transfers should not be used.

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

### 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. This function allows the user to set the offsets that will be used for doing partial transfers. An offset of -1 will disable partial transfers. An end\_offset of -1 means EOF.

**Parameters**

*handle* Set the offsets for partial transfers associated with this handle. \
 *offset* The starting offset for the partial transfer. \
 *end\_offset* The ending offset for the partial transfer.

**Returns**

This function returns GLOBUS\_SUCCESS if successful, or a globus\_result\_t indicating the error that occurred.

## Author

Generated automatically by Doxygen for globus\_gass\_copy from the source code.
