holo-client-c/src/batch.h (37 lines of code) (raw):
#ifndef _BATCH_H_
#define _BATCH_H_
#include "table_schema.h"
#include "ilist.h"
#include "stdbool.h"
#include "record.h"
#include "utils.h"
#include "request_private.h"
#include "holo_config.h"
typedef struct _Batch{
HoloTableSchema *schema;
bool* valuesSet;
int* valueFormats;
int nValues;
dlist_head recordList;
int nRecords;
HoloMutationMode mode;
HoloWriteMode writeMode;
bool isSupportUnnest;
} Batch;
typedef struct _BatchItem {
dlist_node list_node;
Batch* batch;
} BatchItem;
BatchItem* create_batch_item(Batch*);
Batch* holo_client_new_batch_with_record(HoloRecord*);
Batch* holo_client_new_batch_with_mutation_request(HoloMutation);
Batch* holo_client_clone_batch_without_records(Batch*);
void holo_client_destroy_batch(Batch*);
bool batch_can_apply_normalized_record(Batch*, HoloRecord*);
bool batch_try_apply_normalized_record(Batch*, HoloRecord*);
bool batch_can_apply_update_record(Batch*, HoloRecord*);
bool batch_try_apply_update_record(Batch*, HoloRecord*);
bool batch_can_apply_mutation_request(Batch*, HoloMutation);
bool batch_try_apply_mutation_request(Batch*, HoloMutation);
bool batch_matches(Batch*, Batch*, int);
#endif