summaryrefslogtreecommitdiff
path: root/c_src/filebuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'c_src/filebuffer.h')
-rw-r--r--c_src/filebuffer.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/c_src/filebuffer.h b/c_src/filebuffer.h
new file mode 100644
index 0000000..2f344cd
--- /dev/null
+++ b/c_src/filebuffer.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2015, 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);
+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_host64(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