Allocator.h 742 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <stddef.h>
  3. #include <stdint.h>
  4. typedef void* (*allocate_func)(size_t size);
  5. #if defined(__cplusplus)
  6. extern "C"
  7. {
  8. #endif
  9. void register_allocator(allocate_func allocator);
  10. #if defined(__cplusplus)
  11. }
  12. #endif
  13. #if defined(__cplusplus)
  14. #include <string>
  15. #include <vector>
  16. class Allocator
  17. {
  18. public:
  19. static void* Allocate(size_t size);
  20. static char* CopyToAllocatedStringBuffer(const std::string& input);
  21. static char* CopyToAllocatedStringBuffer(const char* input);
  22. static void CopyStringVectorToNullTerminatedArray(const std::vector<std::string>& input, void*** output);
  23. static void CopyDataVectorToNullTerminatedArray(const std::vector<void*>& input, void*** output, int32_t elementSize);
  24. };
  25. #endif