diff options
Diffstat (limited to 'src/memory.hpp')
| -rw-r--r-- | src/memory.hpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/memory.hpp b/src/memory.hpp new file mode 100644 index 0000000..43ada0f --- /dev/null +++ b/src/memory.hpp @@ -0,0 +1,34 @@ +#ifndef PKE_MEMORY_HPP +#define PKE_MEMORY_HPP + +#include <cstdint> +#include <cstdlib> +#include <cstdio> + +#define DEFAULT_BUCKET_SIZE 1UL << 27 + +namespace pke +{ + +struct MemBucket; + +void *PkeNew(std::size_t sz); +void *PkeNew(std::size_t sz, MemBucket *bkt); +void PkeDelete(void *ptr); +void PkeDelete(void *ptr, MemBucket *bkt); + +MemBucket *BeginTransientBucket(int64_t sz = DEFAULT_BUCKET_SIZE); // 256MB +void EndTransientBucket(MemBucket *bkt); + +template <typename T> +T *PkeNew() { + return reinterpret_cast<T *>(PkeNew(sizeof(T))); +} +template <typename T> +T *PkeNew(std::size_t sz) { + return reinterpret_cast<T *>(PkeNew(sz)); +} + +} /* pke */ + +#endif /* PKE_MEMORY_HPP */ |
