---
name: "globus_gass_transfer.h"
section: "3"
platform: "linux"
package: "libglobus-gass-transfer-doc"
version: "9.4-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/globus_gass_transfer.h"
---

# globus\_gass\_transfer.h(3)

GASS transfer.

## NAME

globus\_gass\_transfer.h - GASS transfer.

## SYNOPSIS

`#include 'globus_common.h'`\

### Macros

\#define **GLOBUS\_GASS\_TRANSFER\_MODULE**\
 \#define **GLOBUS\_GASS\_TRANSFER\_LENGTH\_UNKNOWN**\
 \#define **GLOBUS\_GASS\_TRANSFER\_TIMESTAMP\_UNKNOWN**\

### Typedefs

typedef void(\* **globus\_gass\_transfer\_close\_callback\_t**) (void \*callback\_arg, globus\_gass\_transfer\_listener\_t listener)\
 typedef void(\* **globus\_gass\_transfer\_listen\_callback\_t**) (void \*callback\_arg, globus\_gass\_transfer\_listener\_t listener)\
 typedef void(\* **globus\_gass\_transfer\_bytes\_callback\_t**) (void \*arg, **globus\_gass\_transfer\_request\_t** request, globus\_byte\_t \*bytes, globus\_size\_t length, globus\_bool\_t last\_data)\

### Enumerations

enum **globus\_gass\_transfer\_request\_type\_t** { **GLOBUS\_GASS\_TRANSFER\_REQUEST\_TYPE\_INVALID**, **GLOBUS\_GASS\_TRANSFER\_REQUEST\_TYPE\_GET**, **GLOBUS\_GASS\_TRANSFER\_REQUEST\_TYPE\_PUT**, **GLOBUS\_GASS\_TRANSFER\_REQUEST\_TYPE\_APPEND** }\
 enum **globus\_gass\_transfer\_request\_status\_t** { **GLOBUS\_GASS\_TRANSFER\_REQUEST\_INVALID**, **GLOBUS\_GASS\_TRANSFER\_REQUEST\_STARTING**, **GLOBUS\_GASS\_TRANSFER\_REQUEST\_PENDING**, **GLOBUS\_GASS\_TRANSFER\_REQUEST\_FAILED**, **GLOBUS\_GASS\_TRANSFER\_REQUEST\_REFERRED**, **GLOBUS\_GASS\_TRANSFER\_REQUEST\_DENIED**, **GLOBUS\_GASS\_TRANSFER\_REQUEST\_DONE** }\
 enum { **GLOBUS\_GASS\_TRANSFER\_ERROR\_BAD\_PORT** = 2, **GLOBUS\_GASS\_TRANSFER\_ERROR\_INTERNAL\_ERROR**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_BAD\_URL**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_NOT\_SUPPORTED**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_NOT\_IMPLEMENTED**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_MALLOC\_FAILED**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_NOT\_INITIALIZED**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_NULL\_POINTER**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_NOT\_REGISTERED**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_NOT\_FOUND**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_INVALID\_USE**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_TOO\_LARGE**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_REQUEST\_FAILED**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_DONE**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_ALREADY\_REGISTERED**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_OPEN\_FAILED**, **GLOBUS\_GASS\_TRANSFER\_ERROR\_TRANSFER\_FAILED** }\
 enum \

### Functions

int **globus\_gass\_transfer\_register\_get** (**globus\_gass\_transfer\_request\_t** \*request, globus\_gass\_transfer\_requestattr\_t \*attr, char \*url, globus\_gass\_transfer\_callback\_t callback, void \*user\_arg)\
 int **globus\_gass\_transfer\_get** (**globus\_gass\_transfer\_request\_t** \*request, globus\_gass\_transfer\_requestattr\_t \*attr, char \*url)\
 int **globus\_gass\_transfer\_register\_put** (**globus\_gass\_transfer\_request\_t** \*request, globus\_gass\_transfer\_requestattr\_t \*attr, char \*url, globus\_size\_t length, globus\_gass\_transfer\_callback\_t callback, void \*user\_arg)\
 int **globus\_gass\_transfer\_put** (**globus\_gass\_transfer\_request\_t** \*request, globus\_gass\_transfer\_requestattr\_t \*attr, char \*url, globus\_size\_t length)\
 int **globus\_gass\_transfer\_register\_append** (**globus\_gass\_transfer\_request\_t** \*request, globus\_gass\_transfer\_requestattr\_t \*attr, char \*url, globus\_size\_t length, globus\_gass\_transfer\_callback\_t callback, void \*user\_arg)\
 int **globus\_gass\_transfer\_append** (**globus\_gass\_transfer\_request\_t** \*request, globus\_gass\_transfer\_requestattr\_t \*attr, char \*url, globus\_size\_t length)\
 int **globus\_gass\_transfer\_create\_listener** (globus\_gass\_transfer\_listener\_t \*listener, globus\_gass\_transfer\_listenerattr\_t \*attr, char \*scheme)\
 int **globus\_gass\_transfer\_close\_listener** (globus\_gass\_transfer\_listener\_t listener, **globus\_gass\_transfer\_close\_callback\_t** callback, void \*user\_arg)\
 int **globus\_gass\_transfer\_register\_listen** (globus\_gass\_transfer\_listener\_t listener, **globus\_gass\_transfer\_listen\_callback\_t** callback, void \*user\_arg)\
 int **globus\_gass\_transfer\_register\_accept** (**globus\_gass\_transfer\_request\_t** \*request, globus\_gass\_transfer\_requestattr\_t \*attr, globus\_gass\_transfer\_listener\_t listener, globus\_gass\_transfer\_callback\_t callback, void \*user\_arg)\
 int **globus\_gass\_transfer\_refer** (**globus\_gass\_transfer\_request\_t** request, char \*\*urls, globus\_size\_t num\_urls)\
 int **globus\_gass\_transfer\_authorize** (**globus\_gass\_transfer\_request\_t** request, globus\_size\_t total\_length)\
 int **globus\_gass\_transfer\_deny** (**globus\_gass\_transfer\_request\_t** request, int reason, char \*message)\
 char \* **globus\_gass\_transfer\_listener\_get\_base\_url** (globus\_gass\_transfer\_listener\_t listener)\
 void \* **globus\_gass\_transfer\_listener\_get\_user\_pointer** (globus\_gass\_transfer\_listener\_t listener)\
 int **globus\_gass\_transfer\_listener\_set\_user\_pointer** (globus\_gass\_transfer\_listener\_t listener, void \*user\_pointer)\
 int **globus\_gass\_transfer\_send\_bytes** (**globus\_gass\_transfer\_request\_t** request, globus\_byte\_t \*bytes, globus\_size\_t send\_length, globus\_bool\_t last\_data, **globus\_gass\_transfer\_bytes\_callback\_t** callback, void \*user\_arg)\
 int **globus\_gass\_transfer\_receive\_bytes** (**globus\_gass\_transfer\_request\_t** request, globus\_byte\_t \*bytes, globus\_size\_t max\_length, globus\_size\_t wait\_for\_length, **globus\_gass\_transfer\_bytes\_callback\_t** callback, void \*user\_arg)\
 globus\_object\_t \* **globus\_gass\_transfer\_requestattr\_initialize** (globus\_object\_t \*obj, char \*proxy\_url, globus\_size\_t block\_size, globus\_gass\_transfer\_file\_mode\_t file\_mode, globus\_bool\_t connection\_reuse)\
 globus\_object\_t \* **globus\_gass\_transfer\_socket\_requestattr\_initialize** (globus\_object\_t \*obj, char \*proxy\_url, globus\_size\_t block\_size, globus\_gass\_transfer\_file\_mode\_t file\_mode, globus\_bool\_t connection\_reuse, int sndbuf, int rcvbuf, globus\_bool\_t nodelay)\
 globus\_object\_t \* **globus\_gass\_transfer\_secure\_requestattr\_initialize** (globus\_object\_t \*obj, char \*proxy\_url, globus\_size\_t block\_size, globus\_gass\_transfer\_file\_mode\_t file\_mode, globus\_bool\_t connection\_reuse, int sndbuf, int rcvbuf, globus\_bool\_t nodelay, globus\_gass\_transfer\_authorization\_t authorization, char \*subject)\
 globus\_object\_t \* **globus\_gass\_transfer\_listenerattr\_initialize** (globus\_object\_t \*obj, int backlog, unsigned short port)\

## Detailed Description

GASS transfer.

## Macro Definition Documentation

### #define GLOBUS\_GASS\_TRANSFER\_LENGTH\_UNKNOWN

Value for files we don't know the length of.

### #define GLOBUS\_GASS\_TRANSFER\_TIMESTAMP\_UNKNOWN

Value for timestamps we don't know the value of.

## Enumeration Type Documentation

### anonymous enum

GASS error codes

**Enumerator**

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_BAD\_PORT*

  *Invalid port in URL*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_INTERNAL\_ERROR*

  *Something bad occurred while processing the request*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_BAD\_URL*

  *Unparsable URL*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_NOT\_SUPPORTED*

  *Invalid file open mode in the GASS File library*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_NOT\_IMPLEMENTED*

  *Operation not supported by GASS for this type of URL*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_MALLOC\_FAILED*

  *Out of memory*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_NOT\_INITIALIZED*

  *Uninitialized or invalid handle*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_NULL\_POINTER*

  *NULL pointer passed as parameter*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_NOT\_REGISTERED*

  *GASS Server not yet registered*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_NOT\_FOUND*

  *URL not in cache*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_INVALID\_USE*

  *Invalid use of a GASS handle*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_TOO\_LARGE*

  *Bytes array exceeds GASS request size*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_REQUEST\_FAILED*

  *GASS Transfer request did not complete successfully*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_DONE*

  *GASS handle already closed before this operation began*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_ALREADY\_REGISTERED*

  *GASS handle already registered for processing*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_OPEN\_FAILED*

  *Could not open local file*

- *GLOBUS\_GASS\_TRANSFER\_ERROR\_TRANSFER\_FAILED*

  *A protocol error or client-initiated failure has occurred*

### anonymous enum

*Default buffer length for the globus\_gass\_transfer\_assist library.*

## Author

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