51 if (client == NULL) {
return NULL; }
77 KineticClient *
const client, KineticSession** session)
80 LOG0(
"KineticSessionConfig is NULL!");
84 if (session == NULL) {
85 LOG0(
"Pointer to KineticSession pointer is NULL!");
89 if (strlen(config->
host) == 0) {
90 LOG0(
"Host is empty!");
96 LOG0(
"HMAC key is NULL or empty!");
103 LOG0(
"Failed to create session instance!");
108 LOG0(
"Failed to create session instance!");
116 LOGF0(
"Failed creating connection to %s:%d", config->
host, config->
port);
128 if (session == NULL) {
129 LOG0(
"KineticSession is NULL!");
216 KineticSession*
const session,
229 if (operation == NULL) {
313 KineticP2P_Operation*
const p2pOp,
326 if (closure != NULL) {
327 operation->closure = *closure;
#define KINETIC_C_VERSION
uint8_t maxThreadpoolThreads
Max number of threads to use for the threadpool that handles response callbacks.
void * KineticCalloc(size_t count, size_t size)
static bool has_value_buffer(KineticEntry *const entry)
KineticStatus KineticClient_DestroySession(KineticSession *const session)
Closes the connection to a host.
KineticStatus KineticClient_Put(KineticSession *const session, KineticEntry *const entry, KineticCompletionClosure *closure)
Executes a PUT operation to store/update an entry on the Kinetic Device.
bool KineticBus_Init(KineticClient *client, KineticClientConfig *config)
int logLevel
Logging level (-1:none, 0:error, 1:info, 2:verbose, 3:full)
KineticStatus KineticBuilder_BuildGetPrevious(KineticOperation *const op, KineticEntry *const entry)
static KineticStatus handle_get_command(GET_COMMAND cmd, KineticSession *const session, KineticEntry *const entry, KineticCompletionClosure *closure)
KineticStatus KineticSession_Connect(KineticSession *const session)
Structure used to specify the configuration for a session.
KineticStatus KineticClient_Get(KineticSession *const session, KineticEntry *const entry, KineticCompletionClosure *closure)
Executes a GET operation to retrieve an entry from the Kinetic Device.
void KineticAllocator_FreeOperation(KineticOperation *operation)
KineticStatus KineticSession_Create(KineticSession *const session, KineticClient *const client)
KineticStatus KineticClient_GetNext(KineticSession *const session, KineticEntry *const entry, KineticCompletionClosure *closure)
Executes a GETNEXT operation to retrieve the next entry from the Kinetic Device.
KineticStatus KineticClient_NoOp(KineticSession *const session)
Executes a NOOP operation to test whether the Kinetic Device is operational.
Host was empty in request.
bool metadataOnly
If set for a GET request, will return only the metadata for the specified object (value will not be r...
void KineticAllocator_FreeSession(KineticSession *session)
KineticStatus KineticClient_Flush(KineticSession *const session, KineticCompletionClosure *closure)
Executes a FLUSHALLDATA operation to flush pending PUTs or DELETEs.
Failed allocating/deallocating memory.
#define KINETIC_CLIENT_DEFAULT_MAX_THREADPOOL_THREADS
const char * version
kinetic-c library version
ByteArray array
ByteArray holding allocated array w/length = allocated size.
Closure which can be specified for operations which support asynchronous mode.
char host[256]
Host name/IP address of Kinetic Device.
void KineticClient_Shutdown(KineticClient *const client)
Performs shutdown/cleanup of the kinetic-c client library.
KineticStatus KineticBuilder_BuildPut(KineticOperation *const op, KineticEntry *const entry)
kinetic-c library version info (returned from KineticClient_Version())
void KineticBus_Shutdown(KineticClient *const client)
Kinetic Key Range request structure.
KineticStatus KineticBuilder_BuildGet(KineticOperation *const op, KineticEntry *const entry)
static bool has_key(KineticEntry *const entry)
#define KINETIC_ASSERT(cond)
KineticStatus KineticBuilder_BuildNoop(KineticOperation *const op)
KineticVersionInfo KineticClient_Version(void)
Gets current version info of kinetic-c library.
KineticStatus KineticClient_Delete(KineticSession *const session, KineticEntry *const entry, KineticCompletionClosure *closure)
Executes a DELETE operation to delete an entry from the Kinetic Device.
uint8_t readerThreads
Number of threads used for handling incoming responses and status messages.
KineticStatus KineticClient_P2POperation(KineticSession *const session, KineticP2P_Operation *const p2pOp, KineticCompletionClosure *closure)
Executes a PEER2PEERPUSH operation allows a client to instruct a Kinetic Device to copy a set of keys...
void KineticFree(void *pointer)
KineticStatus KineticBuilder_BuildGetKeyRange(KineticOperation *const op, KineticKeyRange *range, ByteBufferArray *buffers)
KineticClient * KineticClient_Init(KineticClientConfig *config)
Initializes the Kinetic API and configures logging.
int port
Port for Kinetic Device session.
size_t len
Number of bytes in the data field.
Session was NULL in request.
#define LOGF0(message,...)
KineticOperation * KineticAllocator_NewOperation(KineticSession *const session)
const char * logFile
Path to log file. Specify 'stdout' to log to STDOUT or NULL to disable logging.
#define KINETIC_CLIENT_DEFAULT_READER_THREADS
KineticStatus KineticClient_CreateSession(KineticSessionConfig *const config, KineticClient *const client, KineticSession **session)
Creates a session with the Kinetic Device per specified configuration.
KineticStatus KineticBuilder_BuildGetNext(KineticOperation *const op, KineticEntry *const entry)
ByteBuffer key
Key associated with the object stored on disk.
uint8_t * data
Pointer to an allocated array of data bytes.
An operation is missing a required key.
KineticStatus KineticSession_Disconnect(KineticSession *const session)
KineticStatus KineticSession_GetTerminationStatus(KineticSession const *const session)
static const KineticVersionInfo VersionInfo
KineticStatus KineticClient_GetPrevious(KineticSession *const session, KineticEntry *const entry, KineticCompletionClosure *closure)
Executes a GETPREVIOUS operation to retrieve the next entry from the Kinetic Device.
KineticStatus
Kinetic status codes.
#define KINETIC_C_REPO_HASH
KineticSession * KineticAllocator_NewSession(struct bus *b, KineticSessionConfig *config)
void KineticLogger_Close(void)
#define KINETIC_C_PROTOCOL_VERSION
Configuration values for the KineticClient connection.
KineticStatus KineticController_ExecuteOperation(KineticOperation *operation, KineticCompletionClosure *const closure)
KineticStatus KineticClient_GetTerminationStatus(KineticSession *const session)
Returns the reason reported in the case of the Kinetic device terminating a session in the case of a ...
KineticStatus KineticBuilder_BuildP2POperation(KineticOperation *const op, KineticP2P_Operation *const p2pOp)
KineticStatus KineticBuilder_BuildDelete(KineticOperation *const op, KineticEntry *const entry)
KineticStatus KineticBuilder_BuildFlush(KineticOperation *const op)
KineticStatus KineticSession_Destroy(KineticSession *const session)
An operation is missing a required value buffer.
HMAC key is empty or NULL.
void KineticLogger_Init(const char *log_file, int log_level)
KineticStatus KineticClient_GetKeyRange(KineticSession *const session, KineticKeyRange *range, ByteBufferArray *keys, KineticCompletionClosure *closure)
Executes a GETKEYRANGE operation to retrieve a set of keys in the range specified range from the Kine...
ByteBuffer value
Value data associated with the key.
Session configuration was invalid or NULL.