Loading...
Searching...
No Matches
pool.hpp
Go to the documentation of this file.
1
2#pragma once
3
5
6namespace by {
7
21 class _nout pool: public memoryHaver {
23 BY_INIT_META(me)
24
25 public:
26 // pool:
27 pool();
28 virtual ~pool();
29
30 public:
36 chunks* get(const instance& it);
37 chunks* get(const instance* it) BY_SIDE_FUNC(get);
38
44 const chunks* get(const instance& it) const BY_CONST_FUNC(get(it))
45 const chunks* get(const instance* it) const BY_CONST_FUNC(get(it))
46 const chunks* get(nidx n) const BY_CONST_FUNC(get(n))
47
48 using super::has;
49
54 nbool has(const instance& it) const override;
55
56 ncnt size() const override;
57 ncnt len() const override;
58
64 nbool rel() override;
65
66 protected:
67 // memoryHaver:
73 void* _get(nidx n) override;
74
75 private:
76 std::vector<chunks*> _chunks;
77 };
78} // namespace by
Collection of memory chunks for scalable allocation.
Definition chunks.hpp:36
Base class for all managed instances in memlite system.
Definition instance.hpp:41
Abstract interface for objects that own memory.
Definition memoryHaver.hpp:29
Memory pool manager for efficient instance allocation.
Definition pool.hpp:21
const chunks *get(const instance &it) const BY_CONST_FUNC(get(it)) const chunks *get(const instance *it) const BY_CONST_FUNC(get(it)) const chunks *get(nidx n) const BY_CONST_FUNC(get(n)) using super nboo has)(const instance &it) const override
Checks if instance is managed by this pool.
Definition pool.hpp:54
chunks * get(const instance &it)
Gets chunks container managing memory for given instance.
void * _get(nidx n) override
Gets raw memory pointer at index.
chunks * get(nidx n)
Gets chunks at specified index.
nbool rel() override
Releases all pool resources and destroys chunks.
Rich logging support with polymorphic type conversion.
Definition richLog.hpp:34