20 #ifndef HEDGEHOG_MEMORY_DATA_H 21 #define HEDGEHOG_MEMORY_DATA_H 24 #include "abstract_memory_manager.h" 49 template<
class ManagedMemory>
50 class MemoryData :
public std::enable_shared_from_this<MemoryData<ManagedMemory>> {
86 #endif //HEDGEHOG_MEMORY_DATA_H void recycleMemory(std::shared_ptr< MemoryData< ManagedMemory >> managedMemory)
Recycle memory.
AbstractMemoryManager< ManagedMemory > * memoryManager_
Link to the Memory Manager.
MemoryData()=default
Default constructor.
Memory data interface to use a data type in a Memory manager (AbstractMemoryManager or StaticMemoryMa...
void memoryManager(AbstractMemoryManager< ManagedMemory > *memoryManager)
Memory manager setter.
virtual void recycle()
Mechanism to recycle data.
virtual ~MemoryData()=default
Default destructor.
virtual bool canBeRecycled()
Accessor to test if the data can be recycle and sent bask to the Pool, true by default.
AbstractMemoryManager< ManagedMemory > * memoryManager() const
Memory manager accessor.
virtual void used()
Mechanism to update the state of the data.
void returnToMemoryManager()
Return the data to the memory manager.