57 KineticSession *session = op->session;
75 #if KINETIC_LOGGER_LOG_SEQUENCE_ID
77 gettimeofday(&tv, NULL);
78 LOGF2(
"SEQ_ID request fd %d seq_id %lld %08lld.%08lld cmd %02x",
79 fd, (
long long)seq_id,
80 (
long long)tv.tv_sec, (
long long)tv.tv_usec, (uint8_t)mt);
92 LOGF3(
"\nSending PDU via fd=%d", op->session->socket);
93 KineticRequest* request = op->request;
97 request->message.header.sequence = seq_id;
103 uint8_t * commandData = request->message.message.commandbytes.data;
107 KineticSession *session = op->session;
109 op->request, op->pin);
111 if (commandData) { free(commandData); }
116 uint8_t * msg = NULL;
121 if (commandData) { free(commandData); }
125 if (commandData) { free(commandData); }
126 KineticCountingSemaphore *
const sem = op->session->outstandingOperations;
130 LOGF0(
"Failed queuing request %p for transmit on fd=%d w/seq=%lld",
131 (
void*)request, op->session->socket, (
long long)seq_id);
142 if (msg != NULL) { free(msg); }
166 if(op->closure.callback != NULL) {
167 op->closure.callback(&completionData, op->closure.clientData);
KineticStatus KineticRequest_PackMessage(KineticOperation *operation, uint8_t **out_msg, size_t *msgSize)
KineticStatus KineticRequest_PopulateAuthentication(KineticSessionConfig *config, KineticRequest *request, ByteArray *pin)
No request was attempted.
void KineticAllocator_FreeOperation(KineticOperation *operation)
static void log_request_seq_id(int fd, int64_t seq_id, KineticMessageType mt)
static KineticStatus send_request_in_lock(KineticOperation *const op)
#define KINETIC_SEQUENCE_NOT_YET_BOUND
KineticStatus KineticResponse_GetStatus(KineticResponse *response)
size_t KineticRequest_PackCommand(KineticRequest *request)
Failed allocating/deallocating memory.
void KineticCountingSemaphore_Take(KineticCountingSemaphore *const sem)
void KineticCountingSemaphore_Give(KineticCountingSemaphore *const sem)
void KineticOperation_ValidateOperation(KineticOperation *op)
bool KineticRequest_LockSend(KineticSession *session)
KineticStatus KineticOperation_GetStatus(const KineticOperation *const op)
void KineticOperation_Complete(KineticOperation *op, KineticStatus status)
#define KINETIC_ASSERT(cond)
No connection/disconnected.
Completion data which will be provided to KineticCompletionClosure for asynchronous operations...
#define LOGF3(message,...)
int64_t KineticSession_GetNextSequenceCount(KineticSession *const session)
#define LOGF0(message,...)
KineticStatus status
Resultant status of the operation.
Status not available (no reponse/status available)
KineticStatus
Kinetic status codes.
KineticMessageType
Log info message types.
#define KINETIC_REQUEST_PACK_FAILURE
KineticStatus KineticOperation_SendRequest(KineticOperation *const op)
bool KineticRequest_SendRequest(KineticOperation *operation, uint8_t *msg, size_t msgSize)
bool KineticRequest_UnlockSend(KineticSession *session)
#define LOGF2(message,...)