summaryrefslogtreecommitdiff
path: root/src/memory_bucket.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/memory_bucket.h')
-rw-r--r--src/memory_bucket.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/memory_bucket.h b/src/memory_bucket.h
new file mode 100644
index 0000000..f203804
--- /dev/null
+++ b/src/memory_bucket.h
@@ -0,0 +1,28 @@
+#ifndef INCLUDE_MEMORY_BUCKET
+#define INCLUDE_MEMORY_BUCKET
+
+#define kilobytes(num) num*1000
+#define megabytes(num) kilobytes(num*1000)
+
+#include "mutex.h"
+#include "array.h"
+
+typedef struct t_memory_bucket_entry
+{
+ char *data;
+ int length;
+ int cursor;
+} memory_bucket_entry;
+
+typedef struct t_memory_bucket
+{
+ mutex bucket_mutex;
+ array buckets;
+} memory_bucket;
+
+memory_bucket memory_bucket_init(int bucket_size);
+void* memory_bucket_reserve(memory_bucket *bucket, int reserve_length);
+void memory_bucket_reset(memory_bucket *bucket);
+void memory_bucket_destroy(memory_bucket *bucket);
+
+#endif \ No newline at end of file