kinetic-c  v0.12.0
Seagate Kinetic Protocol Client Library for C
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
kinetic_types_internal.h File Reference
#include "kinetic_types.h"
#include "kinetic.pb-c.h"
#include "kinetic_countingsemaphore.h"
#include "kinetic_resourcewaiter_types.h"
#include "kinetic_resourcewaiter.h"
#include "kinetic_acl.h"
#include <netinet/in.h>
#include <ifaddrs.h>
#include <openssl/sha.h>
#include <time.h>
#include <pthread.h>

Go to the source code of this file.

Data Structures

struct  KineticClient
 Handle to the kinetic client, which is shared by all connections. More...
 
struct  KineticSession
 An instance of a session with a Kinetic device. More...
 
struct  KineticHMAC
 
struct  KineticMessage
 
struct  KineticRequest
 
struct  KineticResponse
 
struct  KineticOperation
 

Macros

#define KINETIC_MAX_OUTSTANDING_OPERATIONS_PER_SESSION   (10)
 
#define KINETIC_SOCKET_DESCRIPTOR_INVALID   (-1)
 
#define KINETIC_CONNECTION_TIMEOUT_SECS   (30) /* Java simulator may take longer than 10 seconds to respond */
 
#define KINETIC_OPERATION_TIMEOUT_SECS   (20)
 
#define STATIC   static
 
#define NUM_ELEMENTS(ARRAY)   (sizeof(ARRAY)/sizeof((ARRAY)[0]))
 
#define KINETIC_SEQUENCE_NOT_YET_BOUND   ((int64_t)-2)
 
#define PDU_HEADER_LEN   (1 + (2 * sizeof(int32_t)))
 
#define PDU_PROTO_MAX_LEN   (1024 * 1024)
 
#define PDU_PROTO_MAX_UNPACKED_LEN   (PDU_PROTO_MAX_LEN * 2)
 
#define PDU_MAX_LEN
 

Typedefs

typedef KineticStatus(* KineticOperationCallback )(KineticOperation *const operation, KineticStatus const status)
 

Enumerations

enum  unpack_error
 
enum  socket_state
 
enum  KineticPDUType
 

Functions

struct __attribute__ ((__packed__)) _KineticPDUHeader
 
Com__Seagate__Kinetic__Proto__Command__Algorithm Com__Seagate__Kinetic__Proto__Command__Algorithm_from_KineticAlgorithm (KineticAlgorithm kinteicAlgorithm)
 
KineticAlgorithm KineticAlgorithm_from_Com__Seagate__Kinetic__Proto__Command__Algorithm (Com__Seagate__Kinetic__Proto__Command__Algorithm protoAlgorithm)
 
Com__Seagate__Kinetic__Proto__Command__Synchronization Com__Seagate__Kinetic__Proto__Command__Synchronization_from_KineticSynchronization (KineticSynchronization sync_mode)
 
KineticSynchronization KineticSynchronization_from_Com__Seagate__Kinetic__Proto__Command__Synchronization (Com__Seagate__Kinetic__Proto__Command__Synchronization sync_mode)
 
KineticStatus KineticProtoStatusCode_to_KineticStatus (Com__Seagate__Kinetic__Proto__Command__Status__StatusCode protoStatus)
 
ByteArray ProtobufCBinaryData_to_ByteArray (ProtobufCBinaryData protoData)
 
bool Copy_ProtobufCBinaryData_to_ByteBuffer (ByteBuffer dest, ProtobufCBinaryData src)
 
bool Copy_Com__Seagate__Kinetic__Proto__Command__KeyValue_to_KineticEntry (Com__Seagate__Kinetic__Proto__Command__KeyValue *keyValue, KineticEntry *entry)
 
bool Copy_Com__Seagate__Kinetic__Proto__Command__Range_to_ByteBufferArray (Com__Seagate__Kinetic__Proto__Command__Range *keyRange, ByteBufferArray *keys)
 
int Kinetic_GetErrnoDescription (int err_num, char *buf, size_t len)
 
struct timeval Kinetic_TimevalZero (void)
 
bool Kinetic_TimevalIsZero (struct timeval const tv)
 
struct timeval Kinetic_TimevalAdd (struct timeval const a, struct timeval const b)
 
int Kinetic_TimevalCmp (struct timeval const a, struct timeval const b)
 
Com__Seagate__Kinetic__Proto__Command__GetLog__Type KineticLogInfo_Type_to_Com__Seagate__Kinetic__Proto__Command__GetLog__Type (KineticLogInfo_Type type)
 
KineticMessageType Com__Seagate__Kinetic__Proto__Command__MessageType_to_KineticMessageType (Com__Seagate__Kinetic__Proto__Command__MessageType type)
 
void KineticMessage_Init (KineticMessage *const message)
 
void KineticRequest_Init (KineticRequest *reqeust, KineticSession const *const session)
 

Variables

 KineticPDUHeader
 

Macro Definition Documentation

#define KINETIC_MAX_OUTSTANDING_OPERATIONS_PER_SESSION   (10)

Definition at line 36 of file kinetic_types_internal.h.

#define KINETIC_SOCKET_DESCRIPTOR_INVALID   (-1)

Definition at line 37 of file kinetic_types_internal.h.

#define KINETIC_CONNECTION_TIMEOUT_SECS   (30) /* Java simulator may take longer than 10 seconds to respond */

Definition at line 38 of file kinetic_types_internal.h.

#define KINETIC_OPERATION_TIMEOUT_SECS   (20)

Definition at line 39 of file kinetic_types_internal.h.

#define STATIC   static

Definition at line 46 of file kinetic_types_internal.h.

#define NUM_ELEMENTS (   ARRAY)    (sizeof(ARRAY)/sizeof((ARRAY)[0]))

Definition at line 50 of file kinetic_types_internal.h.

#define KINETIC_SEQUENCE_NOT_YET_BOUND   ((int64_t)-2)

Definition at line 77 of file kinetic_types_internal.h.

#define PDU_HEADER_LEN   (1 + (2 * sizeof(int32_t)))

Definition at line 140 of file kinetic_types_internal.h.

#define PDU_PROTO_MAX_LEN   (1024 * 1024)

Definition at line 141 of file kinetic_types_internal.h.

#define PDU_PROTO_MAX_UNPACKED_LEN   (PDU_PROTO_MAX_LEN * 2)

Definition at line 142 of file kinetic_types_internal.h.

#define PDU_MAX_LEN
Value:
#define KINETIC_OBJ_SIZE
Max object/value size.
Definition: kinetic_types.h:47
#define PDU_HEADER_LEN
#define PDU_PROTO_MAX_LEN

Definition at line 143 of file kinetic_types_internal.h.

Typedef Documentation

typedef KineticStatus(* KineticOperationCallback)(KineticOperation *const operation, KineticStatus const status)

Definition at line 171 of file kinetic_types_internal.h.

Enumeration Type Documentation

Enumerator
UNPACK_ERROR_UNDEFINED 
UNPACK_ERROR_SUCCESS 
UNPACK_ERROR_INVALID_HEADER 
UNPACK_ERROR_PAYLOAD_MALLOC_FAIL 

Definition at line 56 of file kinetic_types_internal.h.

Enumerator
STATE_UNINIT 
STATE_AWAITING_HEADER 
STATE_AWAITING_BODY 
STATE_UNINIT 
STATE_AWAITING_HEADER 
STATE_AWAITING_BODY 

Definition at line 71 of file kinetic_types_internal.h.

Enumerator
KINETIC_PDU_TYPE_INVALID 
KINETIC_PDU_TYPE_REQUEST 
KINETIC_PDU_TYPE_RESPONSE 
KINETIC_PDU_TYPE_UNSOLICITED 

Definition at line 146 of file kinetic_types_internal.h.

Function Documentation

struct __attribute__ ( (__packed__)  )

Definition at line 65 of file kinetic_types_internal.h.

Com__Seagate__Kinetic__Proto__Command__Algorithm Com__Seagate__Kinetic__Proto__Command__Algorithm_from_KineticAlgorithm ( KineticAlgorithm  kinteicAlgorithm)
KineticAlgorithm KineticAlgorithm_from_Com__Seagate__Kinetic__Proto__Command__Algorithm ( Com__Seagate__Kinetic__Proto__Command__Algorithm  protoAlgorithm)
Com__Seagate__Kinetic__Proto__Command__Synchronization Com__Seagate__Kinetic__Proto__Command__Synchronization_from_KineticSynchronization ( KineticSynchronization  sync_mode)
KineticSynchronization KineticSynchronization_from_Com__Seagate__Kinetic__Proto__Command__Synchronization ( Com__Seagate__Kinetic__Proto__Command__Synchronization  sync_mode)
KineticStatus KineticProtoStatusCode_to_KineticStatus ( Com__Seagate__Kinetic__Proto__Command__Status__StatusCode  protoStatus)

Definition at line 28 of file kinetic_types_internal.c.

References COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__DATA_ERROR, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__DEVICE_LOCKED, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__EXPIRED, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__HEADER_REQUIRED, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__HMAC_FAILURE, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__INTERNAL_ERROR, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__INVALID_REQUEST, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__INVALID_STATUS_CODE, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NESTED_OPERATION_ERRORS, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NO_SPACE, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NO_SUCH_HMAC_ALGORITHM, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NOT_ATTEMPTED, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NOT_AUTHORIZED, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NOT_FOUND, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__PERM_DATA_ERROR, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__REMOTE_CONNECTION_ERROR, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__SERVICE_BUSY, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__SUCCESS, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__VERSION_FAILURE, COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__VERSION_MISMATCH, KINETIC_STATUS_CLUSTER_MISMATCH, KINETIC_STATUS_CONNECTION_ERROR, KINETIC_STATUS_DATA_ERROR, KINETIC_STATUS_DEVICE_BUSY, KINETIC_STATUS_DEVICE_LOCKED, KINETIC_STATUS_HMAC_FAILURE, KINETIC_STATUS_INVALID, KINETIC_STATUS_INVALID_REQUEST, KINETIC_STATUS_NOT_AUTHORIZED, KINETIC_STATUS_NOT_FOUND, KINETIC_STATUS_OPERATION_FAILED, KINETIC_STATUS_SUCCESS, and KINETIC_STATUS_VERSION_MISMATCH.

ByteArray ProtobufCBinaryData_to_ByteArray ( ProtobufCBinaryData  protoData)

Definition at line 199 of file kinetic_types_internal.c.

References ByteArray::data.

bool Copy_ProtobufCBinaryData_to_ByteBuffer ( ByteBuffer  dest,
ProtobufCBinaryData  src 
)
bool Copy_Com__Seagate__Kinetic__Proto__Command__KeyValue_to_KineticEntry ( Com__Seagate__Kinetic__Proto__Command__KeyValue *  keyValue,
KineticEntry entry 
)
bool Copy_Com__Seagate__Kinetic__Proto__Command__Range_to_ByteBufferArray ( Com__Seagate__Kinetic__Proto__Command__Range *  keyRange,
ByteBufferArray keys 
)
int Kinetic_GetErrnoDescription ( int  err_num,
char *  buf,
size_t  len 
)

Definition at line 294 of file kinetic_types_internal.c.

struct timeval Kinetic_TimevalZero ( void  )

Definition at line 308 of file kinetic_types_internal.c.

bool Kinetic_TimevalIsZero ( struct timeval const  tv)

Definition at line 316 of file kinetic_types_internal.c.

struct timeval Kinetic_TimevalAdd ( struct timeval const  a,
struct timeval const  b 
)

Definition at line 321 of file kinetic_types_internal.c.

int Kinetic_TimevalCmp ( struct timeval const  a,
struct timeval const  b 
)

Definition at line 348 of file kinetic_types_internal.c.

References cmp_suseconds_t().

Com__Seagate__Kinetic__Proto__Command__GetLog__Type KineticLogInfo_Type_to_Com__Seagate__Kinetic__Proto__Command__GetLog__Type ( KineticLogInfo_Type  type)
KineticMessageType Com__Seagate__Kinetic__Proto__Command__MessageType_to_KineticMessageType ( Com__Seagate__Kinetic__Proto__Command__MessageType  type)

Definition at line 379 of file kinetic_types_internal.c.

void KineticMessage_Init ( KineticMessage *const  message)
void KineticRequest_Init ( KineticRequest *  reqeust,
KineticSession const *const  session 
)

Variable Documentation

KineticPDUHeader

Definition at line 69 of file kinetic_types_internal.h.