91 if (keyValue != NULL) {
97 if (!operation->entry->metadataOnly &&
101 .data = operation->response->value,
102 .len = operation->response->header.valueLength,
130 if (keyRange != NULL) {
139 static void populateP2PStatusCodes(KineticP2P_Operation*
const p2pOp, Com__Seagate__Kinetic__Proto__Command__P2POperation
const *
const p2pOperation)
141 if (p2pOperation == NULL) {
return; }
142 for(
size_t i = 0; i < p2pOp->numOperations; i++)
144 if (i < p2pOperation->n_operation)
146 if ((p2pOperation->operation[i]->status != NULL) &&
147 (p2pOperation->operation[i]->status->has_code))
150 p2pOperation->operation[i]->status->code);
156 if ((p2pOp->operations[i].chainedOperation != NULL) &&
157 (p2pOperation->operation[i]->p2pop != NULL)) {
172 KineticP2P_Operation*
const p2pOp = operation->p2pOp;
176 if ((operation->response != NULL) &&
177 (operation->response->command != NULL) &&
178 (operation->response->command->body != NULL) &&
179 (operation->response->command->body->p2poperation != NULL)) {
204 if (operation->response->command->body->getlog == NULL) {
221 operation->pendingClusterVersion = -1;
230 if (operation->request != NULL &&
231 operation->request->command != NULL &&
232 operation->request->command->body != NULL &&
233 operation->request->command->body->security != NULL &&
234 operation->request->command->body->security->acl != NULL)
236 struct ACL* acls = calloc(1,
sizeof(
struct ACL));
237 acls->
ACL_count = operation->request->command->body->security->n_acl,
238 acls->
ACLs = operation->request->command->body->security->acl,
249 if (operation->value.data != NULL) {
250 free(operation->value.data);
251 memset(&operation->value, 0,
sizeof(
ByteArray));
Structure for handling generic arrays of bytes.
void ByteBuffer_Reset(ByteBuffer *buffer)
KineticStatus KineticProtoStatusCode_to_KineticStatus(Com__Seagate__Kinetic__Proto__Command__Status__StatusCode protoStatus)
ByteBuffer * ByteBuffer_Append(ByteBuffer *buffer, const void *data, size_t len)
One or more of byte buffers did not fit all data.
KineticStatus KineticCallbacks_Get(KineticOperation *const operation, KineticStatus const status)
KineticStatus KineticCallbacks_Delete(KineticOperation *const operation, KineticStatus const status)
void KineticACL_Free(struct ACL *ACLs)
void KineticSession_SetClusterVersion(KineticSession *const session, int64_t cluster_version)
ByteBuffer * ByteBuffer_AppendArray(ByteBuffer *buffer, const ByteArray array)
bool Copy_Com__Seagate__Kinetic__Proto__Command__Range_to_ByteBufferArray(Com__Seagate__Kinetic__Proto__Command__Range *keyRange, ByteBufferArray *keys)
Com__Seagate__Kinetic__Proto__Command__KeyValue * KineticResponse_GetKeyValue(KineticResponse *response)
ByteArray array
ByteArray holding allocated array w/length = allocated size.
void KineticAllocator_FreeP2PProtobuf(Com__Seagate__Kinetic__Proto__Command__P2POperation *proto_p2pOp)
#define KINETIC_ASSERT(cond)
Com__Seagate__Kinetic__Proto__Command__Range * KineticResponse_GetKeyRange(KineticResponse *response)
KineticStatus KineticCallbacks_SetACL(KineticOperation *const operation, KineticStatus const status)
KineticStatus KineticCallbacks_GetKeyRange(KineticOperation *const operation, KineticStatus const status)
size_t len
Number of bytes in the data field.
Com__Seagate__Kinetic__Proto__Command__Security__ACL ** ACLs
ACL struct array.
Device reported an operation error.
KineticStatus KineticCallbacks_P2POperation(KineticOperation *const operation, KineticStatus const status)
bool ByteBuffer_IsNull(ByteBuffer const buffer)
ByteBuffer newVersion
New version for the object to assume once written to disk (optional)
uint8_t * data
Pointer to an allocated array of data bytes.
#define BYTE_BUFFER_NONE
Convenience macro to represent an empty buffer with no data.
KineticStatus KineticCallbacks_Basic(KineticOperation *const operation, KineticStatus const status)
KineticStatus KineticCallbacks_Put(KineticOperation *const operation, KineticStatus const status)
Status not available (no reponse/status available)
size_t ACL_count
How many ACL * structs are in ACLs[].
KineticStatus
Kinetic status codes.
static void populateP2PStatusCodes(KineticP2P_Operation *const p2pOp, Com__Seagate__Kinetic__Proto__Command__P2POperation const *const p2pOperation)
KineticStatus KineticCallbacks_SetClusterVersion(KineticOperation *const operation, KineticStatus const status)
size_t bytesUsed
Reflects the number of bytes used from the array
KineticLogInfo * KineticLogInfo_Create(const Com__Seagate__Kinetic__Proto__Command__GetLog *getLog)
ByteBuffer dbVersion
Current version of the entry (optional)
KineticStatus KineticCallbacks_UpdateFirmware(KineticOperation *const operation, KineticStatus const status)
KineticStatus KineticCallbacks_GetLog(KineticOperation *const operation, KineticStatus const status)
bool Copy_Com__Seagate__Kinetic__Proto__Command__KeyValue_to_KineticEntry(Com__Seagate__Kinetic__Proto__Command__KeyValue *key_value, KineticEntry *entry)