#ifndef O41_TRAINING_DATA_H
#define O41_TRAINING_DATA_H
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef ARROW_C_DATA_INTERFACE
#define ARROW_C_DATA_INTERFACE
struct ArrowSchema {
const char *format, *name, *metadata;
int64_t flags, n_children;
struct ArrowSchema **children, *dictionary;
void (*release)(struct ArrowSchema *);
void *private_data;
};
struct ArrowArray {
int64_t length, null_count, offset, n_buffers, n_children;
const void **buffers;
struct ArrowArray **children, *dictionary;
void (*release)(struct ArrowArray *);
void *private_data;
};
#endif
#ifndef ARROW_C_STREAM_INTERFACE
#define ARROW_C_STREAM_INTERFACE
struct ArrowArrayStream {
int (*get_schema)(struct ArrowArrayStream *, struct ArrowSchema *);
int (*get_next)(struct ArrowArrayStream *, struct ArrowArray *);
const char *(*get_last_error)(struct ArrowArrayStream *);
void (*release)(struct ArrowArrayStream *);
void *private_data;
};
#endif
struct Loader;
char *loader_resolve(const char *config_json);
void loader_free_string(char *);
struct Loader *loader_open(const char *config_json);
struct Loader *loader_resume(const char *checkpoint_json, const char *storage_json);
int loader_next(struct Loader *, struct ArrowArrayStream *, uint64_t *stage, uint64_t *batch_index);
int loader_checkpoint(struct Loader *, const char **checkpoint_json);
int loader_advance(struct Loader *, uint64_t stage);
const char *loader_last_error(struct Loader *);
void loader_close(struct Loader *);
#ifdef __cplusplus
}
#endif
#endif