/* * Copyright (c) 2016, NORDUnet A/S. * See LICENSE for licensing information. */ #ifndef FILEBUFFER_H #define FILEBUFFER_H typedef struct buffered_file buffered_file; buffered_file * bf_open(const char *path, int flags, const char *name, int lock); void bf_close(buffered_file *file); void bf_truncate(buffered_file *file); void bf_add(buffered_file *file, const void *data, uint64_t length); int bf_flush(buffered_file *file); uint64_t bf_total_length(buffered_file *file); uint64_t bf_lastcommit(buffered_file *file); const char * bf_name(buffered_file *file); void bf_add_be64(buffered_file *file, uint64_t value); void bf_add_be32(buffered_file *file, uint32_t value); void bf_add_be16(buffered_file *file, uint16_t value); int bf_flush_nosync(buffered_file *file); unsigned char * bf_read(buffered_file *file, uint64_t offset, size_t length, char **error); void bf_sha256(buffered_file *file, unsigned char *checksum); #endif