로딩중...
검색중...
일치하는것 없음
pool.hpp
이 파일의 문서화 페이지로 가기
1
2#pragma once
3
5
6namespace by {
7
21 class _nout pool: public memoryHaver {
22 BY_ME(pool, 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
43 chunks* get(nidx n);
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
#define BY_SIDE_FUNC(...)
Side function macros for safe pointer operations
Definition sideFunc.hpp:24
Rich logging support with polymorphic type conversion
Definition richLog.hpp:34