diff options
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(); |
