24 #ifndef ARM_COMPUTE_IMEMORYGROUP_H 25 #define ARM_COMPUTE_IMEMORYGROUP_H 34 class IMemoryManageable;
78 virtual void associate_memory_group(
IMemoryGroup *memory_group) = 0;
90 : _memory_group(memory_group)
92 _memory_group.acquire();
97 _memory_group.release();
virtual void acquire()=0
Acquires backing memory for the whole group.
~MemoryGroupResourceScope()
Destructor.
virtual ~IMemoryGroup()=default
Default virtual destructor.
MemoryGroupResourceScope(IMemoryGroup &memory_group)
Constructor.
Copyright (c) 2017-2021 Arm Limited.
virtual void finalize_memory(IMemoryManageable *obj, IMemory &obj_memory, size_t size, size_t alignment)=0
Finalizes memory for a given object.
virtual void release()=0
Releases backing memory of the whole group.
virtual MemoryMappings & mappings()=0
Gets the memory mapping of the group.
Memory group resources scope handling class.
Interface of an object than can be memory managed.
std::map< IMemory *, size_t > MemoryMappings
A map of (handle, index/offset), where handle is the memory handle of the object to provide the memor...
virtual void manage(IMemoryManageable *obj)=0
Sets a object to be managed by the given memory group.