23.08
|
Go to the documentation of this file.
24 #ifndef ARM_COMPUTE_ISIMPLELIFETIMEMANAGER_H
25 #define ARM_COMPUTE_ISIMPLELIFETIMEMANAGER_H
67 virtual void update_blobs_and_mappings() = 0;
73 Element(
void *id_ =
nullptr,
IMemory *handle_ =
nullptr,
size_t size_ = 0,
size_t alignment_ = 0,
bool status_ =
false)
74 : id(id_), handle(handle_), size(size_), alignment(alignment_), status(status_)
90 std::set<void *> bound_elements;
94 std::map<void *, Element> _active_elements;
95 std::list<Blob> _free_blobs;
96 std::list<Blob> _occupied_blobs;
97 std::map<IMemoryGroup *, std::map<void *, Element>> _finalized_groups;
bool release_group(IMemoryGroup *group) override
Unbound and release elements associated with a group.
Interface for managing the lifetime of objects.
void end_lifetime(void *obj, IMemory &obj_memory, size_t size, size_t alignment) override
Ends lifetime of an object.
void start_lifetime(void *obj) override
Registers and starts lifetime of an object.
ISimpleLifetimeManager()
Constructor.
void register_group(IMemoryGroup *group) override
Registers a group to the lifetime manager and assigns a group id.
Copyright (c) 2017-2023 Arm Limited.
ISimpleLifetimeManager & operator=(const ISimpleLifetimeManager &)=delete
Prevent instances of this class to be copied.
bool are_all_finalized() const override
Checks if the lifetime of the registered object is complete.
Abstract class of the simple lifetime manager interface.