|
Hedgehog
3.1.0
A library to generate hybrid pipeline workflow systems
|
Base memory manager. More...
#include "memory_manager.h"


Public Member Functions | |
| MemoryManager (size_t const &capacity) | |
| Create a memory manager with a certain capacity. | |
| ~MemoryManager () override=default | |
| Default destructor. | |
| std::shared_ptr< AbstractMemoryManager > | copy () override |
| Default copy method. | |
| virtual void | initializeMemoryManager () |
| User-definable initialization step for a memory manager. | |
| std::shared_ptr< ManagedMemory > | getManagedMemory () final |
| Get managed memory from the pool. | |
Public Member Functions inherited from hh::AbstractMemoryManager | |
| AbstractMemoryManager (size_t const &capacity) | |
| Only used constructor. | |
| virtual | ~AbstractMemoryManager ()=default |
| Default destructor. | |
| int | deviceId () const |
| Device Id accessor. | |
| size_t | currentSize () |
| Return the current size of the inside pool. | |
| size_t | capacity () const |
| Capacity accessor. | |
| void | deviceId (int deviceId) |
| Device id setter. | |
| void | profiler (const std::shared_ptr< NvtxProfiler > &profiler) |
| NVTX profiler setter. | |
| virtual std::shared_ptr< ManagedMemory > | getManagedMemory ()=0 |
| Get an available managed memory, block if none are available. | |
| virtual void | recycleMemory (std::shared_ptr< ManagedMemory > const &managedMemory)=0 |
| Recycle memory. | |
| virtual std::shared_ptr< AbstractMemoryManager > | copy ()=0 |
| Virtual copy method used for task duplication and execution pipeline. | |
| virtual void | initialize ()=0 |
| Initialize the memory manager. | |
| virtual std::string | managedType () const =0 |
| Return the real managed type under the form of a string. | |
Private Member Functions | |
| void | recycleMemory (std::shared_ptr< ManagedMemory > const &managedMemory) final |
| Recycling mechanism for managed memory. | |
| void | initialize () final |
| Initialize the memory manager. | |
| std::string | managedType () const final |
| Getter to real managed type as string. | |
Additional Inherited Members | |
Protected Member Functions inherited from hh::AbstractMemoryManager | |
| std::shared_ptr< NvtxProfiler > const & | profiler () const |
| Accessor to NVTX profiler. | |
| std::unique_ptr< tool::Pool< ManagedMemory > > const & | pool () const |
| Inside pool accessor. | |
| bool | isInitialized () const |
| Initialized flag accessor. | |
| std::mutex & | memoryManagerMutex () |
| User api mutex accessor. | |
| void | initialized () |
| Flag the memory manager has initialized. | |
Protected Attributes inherited from hh::AbstractMemoryManager | |
| std::mutex | memoryManagerMutex_ = {} |
| Mutex for user interface. | |
Base memory manager.
Memory manager with default created managed object
| T | Type managed by the memory manager |
Definition at line 37 of file memory_manager.h.
|
inlineexplicit |
Create a memory manager with a certain capacity.
| capacity | Capacity of the memory manager |
Definition at line 41 of file memory_manager.h.
|
overridedefault |
Default destructor.
|
inlineoverridevirtual |
Default copy method.
Implements hh::AbstractMemoryManager.
Definition at line 49 of file memory_manager.h.

|
inlinefinalvirtual |
Get managed memory from the pool.
Get managed memory from the pool. If the pool is empty, the call will block until a new element get available.
Implements hh::AbstractMemoryManager.
Definition at line 60 of file memory_manager.h.

|
inlinefinalprivatevirtual |
Initialize the memory manager.
Thread safe initialization, fill the pool with default constructed object
Implements hh::AbstractMemoryManager.
Definition at line 87 of file memory_manager.h.

|
inlinevirtual |
User-definable initialization step for a memory manager.
Definition at line 54 of file memory_manager.h.

|
inlinefinalprivatevirtual |
Getter to real managed type as string.
Implements hh::AbstractMemoryManager.
Definition at line 105 of file memory_manager.h.
|
inlinefinalprivatevirtual |
Recycling mechanism for managed memory.
Thread safe recycle that will in sequence:
| managedMemory | Type of the managed memory |
Implements hh::AbstractMemoryManager.
Definition at line 74 of file memory_manager.h.
