GLOBUS_XIO_GRIDFTP_GET_MODE(3)

πŸ’– globus_xio_gridftp_driver πŸ’–

okay bestie, gather round, because we're looking at globus_xio_gridftp_driver(3) β€” the Globus XIO GRIDFTP Client Driver β€” and honestly? it's giving "quietly powerful". let's get into it πŸ¦‹


✨ NAME ✨

globus_xio_gridftp_driver β€” Globus XIO GRIDFTP Client Driver.

yep. that's the whole name. it's the Globus XIO GRIDFTP Client Driver. that's the vibe, that's the brand πŸ’…


🌸 SYNOPSIS 🌸

Typedefs

typedef enum globus_l_xio_gridftp_mode_e globus_l_xio_gridftp_mode_t

Enumerations

enum globus_xio_gridftp_error_type_t { GLOBUS_XIO_GRIDFTP_ERROR_ATTR,
    GLOBUS_XIO_GRIDFTP_ERROR_SEEK,
    GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_READ,
    GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_WRITE,
    GLOBUS_XIO_GRIDFTP_ERROR_PENDING_READ,
    GLOBUS_XIO_GRIDFTP_ERROR_PENDING_WRITE,
    GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_PARTIAL_XFER }
enum globus_xio_gridftp_cmd_t { GLOBUS_XIO_GRIDFTP_SEEK,
    GLOBUS_XIO_GRIDFTP_SET_HANDLE, GLOBUS_XIO_GRIDFTP_GET_HANDLE,
    GLOBUS_XIO_GRIDFTP_SET_APPEND, GLOBUS_XIO_GRIDFTP_GET_APPEND,
    GLOBUS_XIO_GRIDFTP_SET_ERET, GLOBUS_XIO_GRIDFTP_GET_ERET,
    GLOBUS_XIO_GRIDFTP_SET_ESTO, GLOBUS_XIO_GRIDFTP_GET_ESTO,
    GLOBUS_XIO_GRIDFTP_SET_PARTIAL_TRANSFER,
    GLOBUS_XIO_GRIDFTP_GET_PARTIAL_TRANSFER,
    GLOBUS_XIO_GRIDFTP_SET_NUM_STREAMS,
    GLOBUS_XIO_GRIDFTP_GET_NUM_STREAMS,
    GLOBUS_XIO_GRIDFTP_SET_TCP_BUFFER,
    GLOBUS_XIO_GRIDFTP_GET_TCP_BUFFER, GLOBUS_XIO_GRIDFTP_SET_MODE,
    GLOBUS_XIO_GRIDFTP_GET_MODE, GLOBUS_XIO_GRIDFTP_SET_AUTH,
    GLOBUS_XIO_GRIDFTP_GET_AUTH, GLOBUS_XIO_GRIDFTP_SET_DCAU,
    GLOBUS_XIO_GRIDFTP_GET_DCAU, GLOBUS_XIO_GRIDFTP_SET_DATA_PROTECTION,
    GLOBUS_XIO_GRIDFTP_GET_DATA_PROTECTION,
    GLOBUS_XIO_GRIDFTP_SET_CONTROL_PROTECTION,
    GLOBUS_XIO_GRIDFTP_GET_CONTROL_PROTECTION }
enum globus_l_xio_gridftp_mode_e

πŸ’œ DETAILED DESCRIPTION πŸ’œ

Globus XIO GRIDFTP Client Driver. that's it, that's the thesis statement.

πŸŽ€ Handles πŸŽ€

so here's the tea: an XIO handle with the gridftp client driver can be created with globus_xio_handle_create(). iconic.

the GridFTP client driver makes use of the globus ftp client library. when you call globus_xio_register_open(), it creates a new ftp client handle (unless one is already set on the attr you passed in β€” no need to double up, bestie), and it establishes the connection with the GridFTP server. ✨

and the contact string? it must contain the scheme, the host name, and the resource. optionally it might also contain the port and the subject. like, those two are the little bonus stickers on top, yk? πŸŽ€

when the XIO handle is closed, the GridFTP driver will destroy its internal resources and the ftp client handle (unless, again, that handle was set on an attr β€” in which case hands off, it's not yours to destroy πŸ’…).

πŸ“– Reading/Writing πŸ“–

globus_xio_register_read() enforces that the waitforbytes parameter should be one. yep. one. just one. when multiple TCP streams are used between the client and the server, data might not be delivered in order β€” it's not being rude, it's just built different πŸ¦‹. globus_xio_data_descriptor_cntl() can be used to get the offset of the data.

globus_xio_register_write() does not enforce any restriction on the waitforbytes parameter. go off, honestly.

in any case, when an error or EOF occurs before the waitforbytes request has been met, the outgoing nbytes is set to the amount of data actually read/written before the error or EOF occurred. so you always know how far you got before it went sideways. 🫢

🌈 Environment Variables 🌈

  • GLOBUS_XIO_GRIDFTP_DEBUG β€” available if you're using a debug build. see globus_debug.h for the format. iykyk ✨

🧚 Attributes and Cntls 🧚

GridFTP driver specific attrs and cntls. the little knobs and dials. the control panel. obsessed.

See also

  • globus_xio_attr_cntl()
  • globus_xio_handle_cntl()
  • globus_xio_data_descriptor_cntl()

⭐ Types ⭐

the errors reported by the GRIDFTP driver include GLOBUS_XIO_ERROR_EOF, GLOBUS_XIO_ERROR_CANCELED, GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_READ, GLOBUS_XIO_GRIDFTP_ERROR_SEEK, GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_WRITE, GLOBUS_XIO_GRIDFTP_ERROR_PENDING_READ, GLOBUS_XIO_GRIDFTP_ERROR_PENDING_WRITE, GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_PARTIAL_XFER.

See also

  • globus_xio_driver_error_match()
  • globus_error_errno_match()

πŸ’« Typedef Documentation πŸ’«

typedef enum globus_l_xio_gridftp_mode_e globus_l_xio_gridftp_mode_t

GRIDFTP driver specific types ✨


πŸ”₯ Enumeration Type Documentation πŸ”₯

enum globus_l_xio_gridftp_mode_e

GRIDFTP driver specific types ✨

enum globus_xio_gridftp_cmd_t

doxygen varargs filter stuff. GRIDFTP driver specific cntls πŸ’…

Enumerator

  • GLOBUS_XIO_GRIDFTP_SEEK β€” see usage for: globus_xio_gridftp_handle_cntl
  • GLOBUS_XIO_GRIDFTP_SET_HANDLE β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_HANDLE β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_APPEND β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_APPEND β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_ERET β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_ERET β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_ESTO β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_ESTO β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_PARTIAL_TRANSFER β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_PARTIAL_TRANSFER β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_NUM_STREAMS β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_NUM_STREAMS β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_TCP_BUFFER β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_TCP_BUFFER β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_MODE β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_MODE β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_AUTH β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_AUTH β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_DCAU β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_DCAU β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_DATA_PROTECTION β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_DATA_PROTECTION β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_SET_CONTROL_PROTECTION β€” see usage for: globus_xio_gridftp_attr_cntl
  • GLOBUS_XIO_GRIDFTP_GET_CONTROL_PROTECTION β€” see usage for: globus_xio_gridftp_attr_cntl

enum globus_xio_gridftp_error_type_t

GridFTP driver specific error types 🫢

Enumerator

  • GLOBUS_XIO_GRIDFTP_ERROR_ATTR β€” indicates that an error occurred in the attribute control
  • GLOBUS_XIO_GRIDFTP_ERROR_SEEK β€” indicates that a seek has been called while there is an outstanding I/O
  • GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_READ β€” indicates that a write has been called while there is an outstanding read
  • GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_WRITE β€” indicates that a read has been called while there is an outstanding write
  • GLOBUS_XIO_GRIDFTP_ERROR_PENDING_READ β€” indicates that a write has been called while there is a read pending
  • GLOBUS_XIO_GRIDFTP_ERROR_PENDING_WRITE β€” indicates that a read has been called while there is a write pending
  • GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_PARTIAL_XFER β€” indicates that a second partial xfer has been initiated while the first one is still outstanding

πŸ‘‘ Author πŸ‘‘

generated automatically by Doxygen for globus_xio_gridftp_driver from the source code. the robots did this one, we just added the sparkle ✨


and that's the whole page bestie!! πŸŽ€ globus_xio_gridftp_driver, Version 3.6, manual page globus_xio...dftp_driver(3) β€” mwah, no notes, go read your enums πŸ’–πŸ¦‹πŸŒΈ