blob: 71f0d03ecbf7a677f54fed8950f12ee7ac104801 (
plain) (
tree)
|
|
#ifndef NERV_CHUNK_FILE_H
#define NERV_CHUNK_FILE_H
#include "../../common.h"
enum {
CF_NORMAL,
CF_INVALID_FORMAT,
CF_END_OF_FILE,
CF_SECTION_OVERFLOW,
CF_WRITE_ERROR,
CF_ERR_OPEN_FILE,
CF_INVALID_OP,
CF_READ,
CF_WRITE,
CF_CLOSED
};
typedef struct ChunkInfo {
struct ChunkInfo *next;
char *metadata;
off_t offset, length;
} ChunkInfo;
typedef struct ChunkFile {
FILE *fp;
ChunkInfo *info;
int status;
} ChunkFile;
typedef struct ChunkData {
FILE *fp;
char *data;
} ChunkData;
typedef void (*ChunkDataWriter_t)(void *);
ChunkFile *nerv_chunk_file_create(const char *fn, const char *mode, int *status);
int nerv_chunk_file_write_chunkdata(ChunkFile *cfp, const char *mdstr,
ChunkDataWriter_t writer, void *writer_arg);
ChunkData *nerv_chunk_file_get_chunkdata(ChunkFile *cfp, ChunkInfo *cip, int *status);
void nerv_chunk_file_close(ChunkFile *cfp);
void nerv_chunk_file_destroy(ChunkFile *cfp);
void nerv_chunk_data_destroy(ChunkData *cdp);
const char *nerv_chunk_file_errstr(int status);
#endif
|