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

Removed connections array and moved connection pointer into session structure....

Removed connections array and moved connection pointer into session structure. Started refactoring of APIs.
parent 4842e7de
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -26,8 +26,8 @@ v0.8.0
v0.8.1
------
* Added GETLOG operation.
* Added InstantSecureErase operation.
* Added thread-safety to allow multiple client threads within the same session.
* Added I/O examples to demonstrate client write operations for blocking/non-blocking (asynchrounous) and single/multi-threaded.
* Still using Kinetic Protocol v3.0 (3.0.5)
    * NOT backwards compatible with earlier versions of Kinetic Protocol (< v3.0)
    * Kinetic device firmware must be updated to a release supporting v3.0 protocol!
+0 −2
Original line number Diff line number Diff line
@@ -68,8 +68,6 @@
    int8_t:     INT8
    bool_t:     BOOL
    size_t:     INT
    KineticSessionHandle: INT
    KineticOperationHandle: INT
  :callback_include_count: true

:tools:
+3 −4
Original line number Diff line number Diff line
@@ -50,8 +50,7 @@ void KineticClient_Shutdown(void);
 *
 * @return          Returns the resulting KineticStatus
 */
KineticStatus KineticClient_Connect(const KineticSession* config,
                                    KineticSessionHandle* handle);
KineticStatus KineticClient_CreateConnection(KineticSession * const session);

/**
 * @brief Closes the connection to a host.
@@ -60,7 +59,7 @@ KineticStatus KineticClient_Connect(const KineticSession* config,
 *
 * @return          Returns the resulting KineticStatus
 */
KineticStatus KineticClient_Disconnect(KineticSessionHandle* const handle);
KineticStatus KineticClient_DestroyConnection(KineticSession * const session);

/**
 * @brief Executes a NOOP command to test whether the Kinetic Device is operational.
@@ -69,7 +68,7 @@ KineticStatus KineticClient_Disconnect(KineticSessionHandle* const handle);
 *
 * @return              Returns the resulting KineticStatus
 */
KineticStatus KineticClient_NoOp(KineticSessionHandle handle);
KineticStatus KineticClient_NoOp(KineticSession const * const session);

/**
 * @brief Executes a PUT command to store/update an entry on the Kinetic Device.
+5 −0
Original line number Diff line number Diff line
@@ -120,6 +120,11 @@ typedef struct _KineticSession {
    // client and the device, used to sign requests.
    uint8_t keyData[KINETIC_MAX_KEY_LEN];
    ByteArray hmacKey;

    // Connection instance which is dynamically allocated upon call to KineticClient_CreateConnection.
    // Client must call KineticClient_DestroyConnection when finished with a session to shutdown
    // a session cleanly and free the `connection`.
    void* connection;
} KineticSession;

#define KINETIC_SESSION_INIT(_session, _host, _clusterVersion, _identity, _hmacKey) { \
+2 −2
Original line number Diff line number Diff line
@@ -108,7 +108,7 @@ int main(int argc, char** argv)
    };
    write_args* writeArgs = calloc(1, sizeof(write_args));
    KineticClient_Init("stdout", 0);
    status = KineticClient_Connect(&sessionConfig, &writeArgs->sessionHandle);
    status = KineticClient_CreateConnection(&sessionConfig, &writeArgs->sessionHandle);
    if (status != KINETIC_STATUS_SUCCESS) {
        fprintf(stderr, "Connection to host '%s' failed w/ status: %s",
            sessionConfig.host, Kinetic_GetStatusDescription(status));
@@ -140,7 +140,7 @@ int main(int argc, char** argv)
    store_data(writeArgs);

    // Shutdown client connection and cleanup
    KineticClient_Disconnect(&writeArgs->sessionHandle);
    KineticClient_DestroyConnection(&writeArgs->sessionHandle);
    KineticClient_Shutdown();
    free(writeArgs);
    free(buf);
Loading