class EE::MemoryManager

#include <memorymanager.hpp>

class MemoryManager {
public:
    // methods

    static void* addPointer(const AllocatedPointer& aAllocatedPointer);
    static void* reallocPointer(void* data, const AllocatedPointer& aAllocatedPointer);
    static void* addPointerInPlace(void* place, const AllocatedPointer& aAllocatedPointer);
    static bool removePointer(void* data, const char* file, const size_t& line);
    static void showResults();

    template <class T>
    static T* deletePtr(T* data);

    template <class T>
    static T* deleteArrayPtr(T* data);

    template <class T>
    static T* free(T* data);

    static void* allocate(size_t size);
    static void* reallocate(void* ptr, size_t size);
    static size_t getPeakMemoryUsage();
    static size_t getTotalMemoryUsage();
    static const AllocatedPointer& getBiggestAllocation();
};