acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
allocator.h
1//
2// _heap.h
3// acme
4//
5// Created by Camilo Sasuke Thomas Borregaard Soerensen on 28/02/20.
6// Refactoring 2023-11-23 05:40 <3ThomasBorregaardSoerensen!!
7//
8#pragma once
9//
10//
11//template < non_particle NON_PARTICLE, typename ...Args >
12//inline void __on_construct(void * data, NON_PARTICLE * p, memsize s, Args &&... args)
13//{
14//
15//#if REFERENCING_DEBUGGING
16//
17// return __on_referencing_debugging_construct<NON_PARTICLE>(data, s, ::std::forward<Args>(args)...);
18//
19//#else
20//
21// return __on_construct<NON_PARTICLE>(data, s, ::std::forward<Args>(args)...);
22//
23//#endif
24//
25//}
26
27
28#include "acme/memory/allocator_base.h"
29
30
31namespace heap
32{
33
34
35 class CLASS_DECL_ACME allocator :
36 virtual public ::heap::allocator_base
37 {
38 protected:
39
40
41 allocator();
42 ~allocator();
43
44
45 public:
46
47
48 ::acme::acme * m_pacme;
49
50
51 //template < typename T, typename ...Args >
52 //inline T * __raw_allocate(Args &&... args)
53 //{
54
55 // auto s = sizeof(T);
56
57 // auto data = allocate(s);
58
59 // auto p = ::platform::raw_allocator::__on_normal_construct< T >(data, s, ::std::forward<Args>(args)...);
60
61 // return p;
62
63 //}
64
65
66 //template < typename T >
67 //inline void __raw_deallocate(T * p)
68 //{
69
70 // ::platform::raw_allocator::__on_normal_destruct(p);
71
72 // free(p);
73
74 //}
75
76
77 //allocator(::acme::acme * pacme);
78 //~allocator();
79
80 //virtual void * allocate(memsize iSize, const_char_pointer pszFile, ::i32 iLine);
81 //virtual void * allocate(memsize iSize);
82 //virtual void free(void * p);
83 //virtual void zero(void * p);
84
85 virtual void initialize_allocator(::acme::acme * pacme);
86
87 // Core functions
88 void * allocate(memsize size, memsize * psizeActuallyAllocated, const_char_pointer pszAnnotation = nullptr) override;
89 void * reallocate(void * p, memsize size, const_char_pointer pszAnnotation = nullptr) override;
90 void free(void * p) override;
91 memsize size(void * p) override;
92 bool has_size() const override;
93
94
95 };
96
97
98} // namespace heap
99
100
101
Definition acme.h:22
Definition allocator_base.h:16