acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
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
31
namespace
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
acme::acme
Definition
acme.h:22
heap::allocator_base
Definition
allocator_base.h:16
memory
allocator.h
Generated by
1.17.0