Commit ed1b5ae0 authored by Greg Williams's avatar Greg Williams
Browse files

Completed refactoring/integration using ByteType.

Got GET working.
Added/updated KeyValue structure for GET/PUT operation configuration.
Updated to newly generated protbuf source.
parent 8cb27e95
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -246,10 +246,8 @@ namespace :system do
  end
end

desc "Run client test utility"
task :run do
  execute_command "./build/artifacts/release/kinetic-c --noop", "Running client test utility"
end
desc "Test examples (test utility)"
task :run => ['tests:utility']

desc "Prepend license to source files"
task :apply_license do
@@ -270,12 +268,6 @@ task :verbose do
  Rake::Task[:verbosity].invoke(3) # Set verbosity to 3:semi-obnoxious for debugging
end

task :default => [
  'test:delta',
  'release'
]


namespace :tests do

  desc "Run unit tests"
@@ -395,6 +387,11 @@ task :ci => [
  'all'
]

task :default => [
  'test:delta',
  'release'
]

END {
  # Ensure java simlator is shutdown prior to rake exiting
  java_sim_shutdown
+16 −3
Original line number Diff line number Diff line
---

:project:
  :use_exceptions: false
  :use_exceptions: true
  :use_test_preprocessor: true
  :use_deep_dependencies: true
  :build_root: build
@@ -74,6 +74,7 @@
    uint32_t:   UINT32
    int8_t:     INT8
    bool_t:     BOOL
    size_t:     INT

:tools:
  :test_includes_preprocessor:
@@ -87,9 +88,21 @@
      - -D"$": COLLECTION_DEFINES_TEST_AND_VENDOR
      - -D"$": DEFINES_TEST_PREPROCESS
      - -DGNU_COMPILER
      # - -std=c99
      - -std=c99
      - -Wall
      - ${1}
  :test_compiler:
    :executable: gcc
    :arguments:
      - -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
      - -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE
      - -D"$": COLLECTION_DEFINES_TEST_AND_VENDOR
      - -DGNU_COMPILER
      - -std=c99
      - -Wall
      - -g
      - -c ${1}
      - -o ${2}
  :test_linker:
    :executable: gcc
    :name: test_linker
@@ -112,7 +125,7 @@
      - -I"$": 'COLLECTION_PATHS_RELEASE_TOOLCHAIN_INCLUDE'
      - -D"$": 'COLLECTION_DEFINES_RELEASE_AND_VENDOR'
      - -DGNU_COMPILER
      # - -std=c99
      - -std=c99
      - -Wall
      - "-c \"${1}\""
      - "-o \"${2}\""
+23 −18
Original line number Diff line number Diff line
@@ -65,6 +65,8 @@ bool KineticClient_Connect(
        return false;
    }

    // KINETIC_CONNECTION_INIT(connection, identity, key);

    if (!KineticConnection_Connect(connection, host, port, nonBlocking,
        clusterVersion, identity, key))
    {
@@ -120,10 +122,8 @@ KineticOperation KineticClient_CreateOperation(
    }

    KineticMessage_Init(requestMsg);
    KineticPDU_Init(request, connection, requestMsg, BYTE_ARRAY_NONE);

    // KineticMessage_Init(responseMsg);
    KineticPDU_Init(response, connection, NULL, BYTE_ARRAY_NONE);
    KineticPDU_Init(request, connection, requestMsg);
    KineticPDU_Init(response, connection, NULL);

    op.connection = connection;
    op.request = request;
@@ -151,10 +151,7 @@ KineticProto_Status_StatusCode KineticClient_NoOp(KineticOperation* operation)
}

KineticProto_Status_StatusCode KineticClient_Put(KineticOperation* operation,
    const ByteArray key,
    const ByteArray newVersion,
    const ByteArray dbVersion,
    const ByteArray tag,
    const Kinetic_KeyValue* metadata,
    const ByteArray value)
{
    assert(operation->connection != NULL);
@@ -166,32 +163,40 @@ KineticProto_Status_StatusCode KineticClient_Put(KineticOperation* operation,
    assert(value.len <= PDU_VALUE_MAX_LEN);

    // Initialize request
    KineticOperation_BuildPut(operation, key, newVersion, dbVersion, tag, value);
    KineticOperation_BuildPut(operation, metadata, value);

    // Execute the operation
    return KineticClient_ExecuteOperation(operation);
}

KineticProto_Status_StatusCode KineticClient_Get(KineticOperation* operation,
    const ByteArray key,
    const ByteArray value,
    bool metadataOnly)
    const Kinetic_KeyValue* metadata,
    const ByteArray value)
{
    assert(operation->connection != NULL);
    assert(operation->request != NULL);
    assert(operation->request->message != NULL);
    assert(operation->response != NULL);
    assert(operation->response->message == NULL);
    assert(key.data != NULL);
    assert(key.len <= KINETIC_MAX_KEY_LEN);
    if (!metadataOnly)
    assert(metadata != NULL);
    assert(metadata->key.data != NULL);
    assert(metadata->key.len <= KINETIC_MAX_KEY_LEN);

    ByteArray responseValue = BYTE_ARRAY_NONE;
    if (!metadata->metadataOnly)
    {
        assert(value.data != NULL);
        assert(value.len <= PDU_VALUE_MAX_LEN);
        if (value.data != NULL)
        {
            responseValue = value;
        }
        else
        {
            responseValue = (ByteArray){.data = operation->response->valueBuffer};
        }
    }

    // Initialize request
    KineticOperation_BuildGet(operation, key, value, metadataOnly);
    KineticOperation_BuildGet(operation, metadata, responseValue);

    // Execute the operation
    return KineticClient_ExecuteOperation(operation);
+3 −7
Original line number Diff line number Diff line
@@ -93,10 +93,7 @@ KineticProto_Status_StatusCode KineticClient_NoOp(KineticOperation* operation);
 * @return              Returns 0 upon succes, -1 or the Kinetic status code upon failure
 */
KineticProto_Status_StatusCode KineticClient_Put(KineticOperation* operation,
    ByteArray key,
    ByteArray newVersion,
    ByteArray dbVersion,
    ByteArray tag,
    const Kinetic_KeyValue* metadata,
    ByteArray value);

/**
@@ -107,8 +104,7 @@ KineticProto_Status_StatusCode KineticClient_Put(KineticOperation* operation,
 * @return              Returns 0 upon succes, -1 or the Kinetic status code upon failure
 */
KineticProto_Status_StatusCode KineticClient_Get(KineticOperation* operation,
    const ByteArray key,
    const ByteArray value,
    bool metadataOnly);
    const Kinetic_KeyValue* metadata,
    const ByteArray value);

#endif // _KINETIC_CLIENT_H
+3 −15
Original line number Diff line number Diff line
@@ -19,9 +19,7 @@
*/

#include "kinetic_connection.h"
#include "kinetic_proto.h"
#include "kinetic_socket.h"
#include "kinetic_pdu.h"
#include <string.h>

bool KineticConnection_Connect(KineticConnection* const connection,
@@ -34,8 +32,11 @@ bool KineticConnection_Connect(KineticConnection* const connection,
    connection->socketDescriptor = -1;
    connection->clusterVersion = clusterVersion;
    connection->identity = identity;

    strcpy(connection->host, host);
    connection->key.data = connection->keyData;
    memcpy(connection->key.data, key.data, key.len);
    connection->key.len = key.len;

    connection->socketDescriptor = KineticSocket_Connect(
        connection->host, connection->port, nonBlocking);
@@ -57,16 +58,3 @@ void KineticConnection_IncrementSequence(KineticConnection* const connection)
{
    connection->sequence++;
}

void KineticConnection_ConfigureHeader(KineticConnection* const connection,
    KineticProto_Header* const header)
{
    header->has_clusterversion = true;
    header->clusterversion = connection->clusterVersion;
    header->has_identity = true;
    header->identity = connection->identity;
    header->has_connectionid = true;
    header->connectionid = connection->connectionID;
    header->has_sequence = true;
    header->sequence = connection->sequence;
}
Loading