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.