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 {
22 BY(ME(pool, memoryHaver))
23
24 public:
25 // pool:
26 pool();
27 virtual ~pool();
28
29 public:
35 chunks* get(const instance& it);
36 chunks* get(const instance* it) BY_SIDE_FUNC(get);
37
43 const chunks* get(const instance& it) const BY_CONST_FUNC(get(it))
44 const chunks* get(const instance* it) const BY_CONST_FUNC(get(it))
45 const chunks* get(nidx n) const BY_CONST_FUNC(get(n))
46
47 using super::has;
48
53 nbool has(const instance& it) const override;
54
55 ncnt size() const override;
56 ncnt len() const override;
57
63 nbool rel() override;
64
65 protected:
66 // memoryHaver:
72 void* _get(nidx n) override;
73
74 private:
75 std::vector<chunks*> _chunks;
76 };
77} // 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:53
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