- Containers: String, Array, HashMap 容器实现及测试 - Memory: Allocator, LinearAllocator, PoolAllocator, ProxyAllocator, MemoryManager 实现及测试 - Threading: Mutex, SpinLock, ReadWriteLock, Thread, Task, TaskSystem 实现及测试 - 修复Windows平台兼容性: _aligned_malloc, std::hash特化 - 修复构建错误和测试用例问题
27 lines
618 B
C++
27 lines
618 B
C++
#pragma once
|
|
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
|
|
namespace XCEngine {
|
|
namespace Memory {
|
|
|
|
class IAllocator {
|
|
public:
|
|
virtual ~IAllocator() = default;
|
|
|
|
virtual void* Allocate(size_t size, size_t alignment = 0) = 0;
|
|
virtual void Free(void* ptr) = 0;
|
|
virtual void* Reallocate(void* ptr, size_t newSize) = 0;
|
|
|
|
virtual size_t GetTotalAllocated() const = 0;
|
|
virtual size_t GetTotalFreed() const = 0;
|
|
virtual size_t GetPeakAllocated() const = 0;
|
|
virtual size_t GetAllocationCount() const = 0;
|
|
|
|
virtual const char* GetName() const = 0;
|
|
};
|
|
|
|
} // namespace Memory
|
|
} // namespace XCEngine
|