2. Core Types and Enumerations#
2.1. Error Types#
typedef enum cuObjErr_enum {
CU_OBJ_SUCCESS = 0,
CU_OBJ_FAIL = 1
} cuObjErr_t;
2.2. Protocol Types#
typedef enum cuObjProto_enum {
CUOBJ_PROTO_RDMA_DC_V1 = 1001,
CUOBJ_PROTO_MAX
} cuObjProto_t;
CUOBJ_PROTO_RDMA_DC_V1 is the supported protocol value for
cuObjServer. Current behavior accepts the proto argument in the
constructor and does not report an error for unsupported values.
2.3. Operation Types#
typedef enum cuObjOpType_enum {
CUOBJ_GET = 0,
CUOBJ_PUT = 1,
CUOBJ_INVALID = 9999
} cuObjOpType_t;
CUOBJ_GET and CUOBJ_PUT are the operation values used by the server
I/O path.
2.4. Channel ID States#
typedef enum cuObjChannelIdState_enum {
CHANNEL_ID_FREE = 0,
CHANNEL_ID_ALLOCATED = 1,
CHANNEL_ID_IN_USE = 2,
INVALID_CHANNEL_ID = UINT16_MAX
} cuObjChannelIdState_t;
Applications normally use only INVALID_CHANNEL_ID, which is returned by
allocateChannelId() when no channel is available.
2.5. Delay Modes#
typedef enum cuObjDelayMode {
CUOBJ_DELAY_NONE = 0,
CUOBJ_DELAY_BATCH = 1,
CUOBJ_DELAY_ENTRY = 2,
CUOBJ_DELAY_ADAPTIVE = 3,
CUOBJ_DELAY_INVALID = 4
} cuObjDelayMode_t;
Delay mode controls the polling behavior used by synchronous
handleGetObject() and handlePutObject() calls. The default is
CUOBJ_DELAY_BATCH.