Main Page
Related Pages
Classes
Files
File List
core
os
memory_pool_dynamic.h
1
/*************************************************************************/
2
/* memory_pool_dynamic.h */
3
/*************************************************************************/
4
/* This file is part of: */
5
/* GODOT ENGINE */
6
/* http://www.godotengine.org */
7
/*************************************************************************/
8
/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
9
/* */
10
/* Permission is hereby granted, free of charge, to any person obtaining */
11
/* a copy of this software and associated documentation files (the */
12
/* "Software"), to deal in the Software without restriction, including */
13
/* without limitation the rights to use, copy, modify, merge, publish, */
14
/* distribute, sublicense, and/or sell copies of the Software, and to */
15
/* permit persons to whom the Software is furnished to do so, subject to */
16
/* the following conditions: */
17
/* */
18
/* The above copyright notice and this permission notice shall be */
19
/* included in all copies or substantial portions of the Software. */
20
/* */
21
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
22
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
23
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
24
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
25
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
26
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
27
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
28
/*************************************************************************/
29
#ifndef MEMORY_POOL_DYNAMIC_H
30
#define MEMORY_POOL_DYNAMIC_H
31
32
#include "typedefs.h"
33
34
35
class
MemoryPoolDynamic
{
36
37
static
MemoryPoolDynamic
* singleton;
38
protected
:
39
friend
class
Memory
;
40
friend
class
MID
;
41
42
enum
{
43
44
INVALID_ID=0xFFFFFFFF
45
};
46
47
static
MemoryPoolDynamic
* get_singleton();
48
49
typedef
uint64_t ID;
50
51
52
virtual
ID alloc(
size_t
p_amount,
const
char
* p_description)=0;
53
virtual
void
free(ID p_id)=0;
54
virtual
Error realloc(ID p_id,
size_t
p_amount)=0;
55
virtual
bool
is_valid(ID p_id)=0;
56
virtual
size_t
get_size(ID p_id)
const
=0;
57
virtual
const
char
* get_description(ID p_id)
const
=0;
58
59
virtual
Error lock(ID p_id)=0;
60
virtual
void
*
get
(ID p_ID)=0;
61
virtual
Error unlock(ID p_id)=0;
62
virtual
bool
is_locked(ID p_id)
const
=0;
63
64
virtual
size_t
get_available_mem()
const
=0;
65
virtual
size_t
get_total_usage()
const
=0;
66
67
MemoryPoolDynamic
();
68
public
:
69
virtual
~
MemoryPoolDynamic
();
70
71
};
72
73
74
#endif
75
76
77
78
79
MID
Definition:
memory.h:42
Memory
Definition:
memory.h:173
MemoryPoolDynamic
Definition:
memory_pool_dynamic.h:35
Generated on Wed Jul 13 2016 13:20:59 by
1.8.11