diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2019-03-19 23:49:02 +0100 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2019-03-19 23:49:02 +0100 |
| commit | b1b4973e1e8163a24f0560c1fb8c83b901d05b66 (patch) | |
| tree | f98ae83d9a3b890e46a0f8dfe57154e01aa238fc /src/cppc4group.hpp | |
| parent | 540d28f433c658f843528f498271ca722db055b4 (diff) | |
| download | cc4group-b1b4973e1e8163a24f0560c1fb8c83b901d05b66.tar.gz cc4group-b1b4973e1e8163a24f0560c1fb8c83b901d05b66.zip | |
Add cppc4group-wrapper for custom tmp memory management
Diffstat (limited to 'src/cppc4group.hpp')
| -rw-r--r-- | src/cppc4group.hpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/cppc4group.hpp b/src/cppc4group.hpp index 78370d9..166fadf 100644 --- a/src/cppc4group.hpp +++ b/src/cppc4group.hpp @@ -4,6 +4,7 @@ #include <vector> #include <optional> #include <cstdio> +#include <functional> class CppC4Group { struct Private; @@ -30,7 +31,18 @@ public: bool official; }; + struct TmpMemory { + using TmpMemoryCleanupCallback = std::function<bool(void* memory, void* arg)>; + + void* memory; + TmpMemoryCleanupCallback cleanup; + void* arg; + + TmpMemory(void* const memory, const TmpMemoryCleanupCallback& cleanup, void* const arg); + }; + public: + using TmpMemoryCallback = std::optional<TmpMemory>(*)(size_t size); using ReadCallback = bool(*)(const void** const data, size_t* const size, void* const arg); using SetupCallback = bool(*)(void* const arg); @@ -47,6 +59,7 @@ public: }; static void setTmpMemoryStrategy(const TmpMemoryStrategy strategy); + static void setTmpMemoryStrategy(const TmpMemoryCallback callback); public: CppC4Group(); |
