---
name: "globus_gass_copy_set_user_pointer"
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.h"
---

# globus\_gass\_copy\_set\_user\_pointer(3)

GASS Copy Library.

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

## NAME

globus\_gass\_copy.h - GASS Copy Library.

## SYNOPSIS

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

### 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** \*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\_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\_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\_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\_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\_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\_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\_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\_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()

## Author

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