pool.hpp
Go to the documentation of this file.
1
2#pragma once
3
5
6namespace by {
7
12 class _nout pool: public memoryHaver {
13 BY_ME(pool, memoryHaver)
14 BY_INIT_META(me)
15
16 public:
17 // pool:
18 pool();
19 virtual ~pool();
20
21 public:
22 chunks* get(const instance& it);
23 chunks* get(const instance* it) BY_SIDE_FUNC(get);
24 chunks* get(nidx n);
25 const chunks* get(const instance& it) const BY_CONST_FUNC(get(it))
26 const chunks* get(const instance* it) const BY_CONST_FUNC(get(it))
27 const chunks* get(nidx n) const BY_CONST_FUNC(get(n))
28
29 using super::has;
30 nbool has(const instance& it) const override;
31
32 ncnt size() const override;
33 ncnt len() const override;
34 nbool rel() override;
35
36 protected:
37 // memoryHaver:
38 void* _get(nidx n) override;
39
40 private:
41 std::vector<chunks*> _chunks;
42 };
43} // namespace by
Collection of memory chunks for scalable allocation.
Definition: chunks.hpp:12
Base class for all managed instances in memlite system.
Definition: instance.hpp:20
Abstract interface for objects that manage memory.
Definition: memoryHaver.hpp:14
Memory pool manager for efficient instance allocation.
Definition: pool.hpp:12