Lugdunum
0.1.0
include
lug
System
Memory
Area
GrowingHeap.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <
lug/System/Export.hpp
>
4
#include <
lug/System/Memory/Area/IArea.hpp
>
5
6
namespace
lug
{
7
namespace
System {
8
namespace
Memory {
9
namespace
Area {
10
11
template
<
size_t
PageSize = 4096,
size_t
MaxPageCount = 1>
12
class
GrowingHeap
:
public
IArea
{
13
public
:
14
GrowingHeap
();
15
GrowingHeap
(
const
GrowingHeap
&) =
delete
;
16
GrowingHeap
(
GrowingHeap
&&) =
delete
;
17
18
GrowingHeap
&
operator=
(
const
GrowingHeap
&) =
delete
;
19
GrowingHeap
&
operator=
(
GrowingHeap
&&) =
delete
;
20
21
~GrowingHeap
();
22
23
Page
*
requestNextPage
()
override
;
24
25
private
:
26
void
*
_data
[MaxPageCount];
27
28
size_t
_current
{0};
29
Page
_pages
[MaxPageCount];
30
};
31
32
#include <
lug/System/Memory/Area/GrowingHeap.inl
>
33
34
}
// Area
35
}
// Memory
36
}
// System
37
}
// lug
IArea.hpp
lug::System::Memory::Area::GrowingHeap::_data
void * _data[MaxPageCount]
Definition:
GrowingHeap.hpp:26
lug::System::Memory::Area::GrowingHeap
Definition:
GrowingHeap.hpp:12
Export.hpp
lug::System::Memory::Area::Page
Definition:
IArea.hpp:12
lug::System::Memory::Area::GrowingHeap::requestNextPage
Page * requestNextPage() override
Definition:
GrowingHeap.inl:15
lug::System::Memory::Area::GrowingHeap::operator=
GrowingHeap & operator=(const GrowingHeap &)=delete
lug::System::Memory::Area::GrowingHeap::~GrowingHeap
~GrowingHeap()
Definition:
GrowingHeap.inl:7
lug::System::Memory::Area::GrowingHeap::_pages
Page _pages[MaxPageCount]
Definition:
GrowingHeap.hpp:29
lug::System::Memory::Area::GrowingHeap::GrowingHeap
GrowingHeap()
Definition:
GrowingHeap.inl:2
lug
Definition:
Application.hpp:11
GrowingHeap.inl
lug::System::Memory::Area::IArea
Definition:
IArea.hpp:20
lug::System::Memory::Area::GrowingHeap::_current
size_t _current
Definition:
GrowingHeap.hpp:28
Generated by
1.8.13