Commit 101010be authored by Greg Williams's avatar Greg Williams
Browse files

Bumbed version for release

parent ff1350c5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
0.3.2-beta
0.3.3
+78 −18
Original line number Diff line number Diff line
@@ -29,47 +29,107 @@ void KineticApi_Init(const char* log_file)
    KineticLogger_Init(log_file);
}

const KineticConnection KineticApi_Connect(const char* host, int port, bool blocking)
void KineticApi_Connect(
    KineticConnection* connection,
    const char* host,
    int port,
    bool blocking)
{
    KineticConnection connection;
    KineticConnection_Init(connction);
    KineticConnection_Init(connection);

    if (!KineticConnection_Connect(&connection, host, port, blocking))
    if (!KineticConnection_Connect(connection, host, port, blocking))
    {
        connection.Connected = false;
        connection.FileDescriptor = -1;
        connection->connected = false;
        connection->socketDescriptor = -1;
        char message[64];
        sprintf(message, "Failed creating connection to %s:%d", host, port);
        LOG(message);
    }
    else
    {
        connection.Connected = true;
        connection->connected = true;
    }
}

bool KineticApi_ConfigureExchange(
    KineticExchange* exchange,
    KineticConnection* connection,
    int64_t identity,
    uint8_t* key,
    size_t keyLength,
    int64_t connectionID)
{
    if (exchange == NULL)
    {
        LOG("Specified KineticExchange is NULL!");
        return false;
    }

    if (connection == NULL)
    {
        LOG("Specified KineticConnection is NULL!");
        return false;
    }

	return connection;
    if (key == NULL)
    {
        LOG("Specified Kinetic Protocol key is NULL!");
        return false;
    }

KineticProto_Status_StatusCode KineticApi_SendNoop(KineticPDU* request, KineticPDU* response)
    if (keyLength == 0)
    {
        LOG("Specified Kinetic Protocol key length is NULL!");
        return false;
    }

    KineticExchange_Init(exchange, identity, key, keyLength, connectionID, connection);

    return true;
}

KineticOperation KineticApi_CreateOperation(
    KineticExchange* exchange,
    KineticPDU* request,
    KineticPDU* response)
{
    KineticOperation op;

    op.exchange = exchange;
    op.request = request;
    op.response = response;

    return op;
}

KineticProto_Status_StatusCode KineticApi_NoOp(KineticOperation* operation)
{
    KineticProto_Status_StatusCode status =
        KINETIC_PROTO_STATUS_STATUS_CODE_INVALID_STATUS_CODE;

    // Initialize request
    KineticExchange_Init(request->exchange, 1234, 5678, request->exchange->connection);
    KineticMessage_Init(request->protobuf);
    KineticMessage_BuildNoop(request->protobuf);
    assert(operation->exchange != NULL);
    assert(operation->exchange->connection != NULL);
    assert(operation->request != NULL);
    assert(operation->request->protobuf != NULL);
    assert(operation->response != NULL);
    assert(operation->response->protobuf != NULL);

    KineticPDU_Init(request, request->exchange, request->protobuf, NULL, 0);
    // Initialize request
    KineticExchange_IncrementSequence(operation->exchange);
    KineticMessage_Init(operation->request->protobuf);
    KineticPDU_Init(operation->request, operation->request->exchange, operation->request->protobuf, NULL, 0);
    KineticOperation_BuildNoop(operation);

    // Send the request
    KineticConnection_SendPDU(request);
    KineticPDU_Send(operation->request);

    // Associate response with same exchange as request
    KineticPDU_Init(response, response->exchange, response->protobuf, NULL, 0);
    if (KineticConnection_ReceivePDU(response))
    KineticPDU_Init(operation->response, operation->response->exchange, operation->response->protobuf, NULL, 0);

    // Receive the response
    if (KineticPDU_Receive(operation->response))
    {
        status = response->protobuf->command.status->code;
        status = operation->response->protobuf->command.status->code;
    }

	return status;
+27 −3
Original line number Diff line number Diff line
@@ -22,10 +22,34 @@
#define _KINETIC_API_H

#include "kinetic_types.h"
#include "kinetic_exchange.h"
#include "kinetic_pdu.h"
#include "kinetic_operation.h"

void KineticApi_Init(const char* log_file);
const KineticConnection KineticApi_Connect(const char* host, int port, bool blocking);
KineticProto_Status_StatusCode KineticApi_SendNoop(KineticPDU* request, KineticPDU* response);
void KineticApi_Init(
    const char* log_file);

void KineticApi_Connect(
    KineticConnection* connection,
    const char* host,
    int port,
    bool blocking);

bool KineticApi_ConfigureExchange(
    KineticExchange* exchange,
    KineticConnection* connection,
    int64_t identity,
    uint8_t* key,
    size_t keyLength,
    int64_t connectionID);

KineticOperation KineticApi_CreateOperation(
    KineticExchange* exchange,
    KineticPDU* request,
    KineticPDU* response);

KineticProto_Status_StatusCode KineticApi_NoOp(
    KineticOperation* operation
    );

#endif // _KINETIC_API_H
+9 −9
Original line number Diff line number Diff line
@@ -32,15 +32,15 @@ bool KineticConnection_Connect(
    KineticConnection* const connection,
    const char* host, int port, bool blocking)
{
    connection->Connected = false;
    connection->Blocking = blocking;
    connection->Port = port;
    connection->FileDescriptor = -1;
    strcpy(connection->Host, host);
    connection->connected = false;
    connection->blocking = blocking;
    connection->port = port;
    connection->socketDescriptor = -1;
    strcpy(connection->host, host);

    connection->FileDescriptor = KineticSocket_Connect(
        connection->Host, connection->Port, blocking);
    connection->Connected = (connection->FileDescriptor >= 0);
    connection->socketDescriptor = KineticSocket_Connect(
        connection->host, connection->port, blocking);
    connection->connected = (connection->socketDescriptor >= 0);

    return connection->Connected;
    return connection->connected;
}
+6 −1
Original line number Diff line number Diff line
@@ -24,6 +24,11 @@
#include "kinetic_types.h"

void KineticConnection_Init(KineticConnection* connection);
bool KineticConnection_Connect(KineticConnection* const connection, const char* host, int port, bool blocking);

bool KineticConnection_Connect(
    KineticConnection* const connection,
    const char* host,
    int port,
    bool blocking);

#endif // _KINETIC_CONNECTION_H
Loading