OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
optimizer
Util
ManagedIDs.h
Go to the documentation of this file.
1
#include <cstddef>
2
#include <queue>
3
9
class
ManagedIDs
{
10
11
public
:
12
13
ManagedIDs
() :
next_free_
(0)
14
{}
15
17
size_t
nextID
() {
18
19
size_t
id
= 0;
20
21
if
(
freeids_
.empty()) {
22
id
=
next_free_
;
23
next_free_
++;
24
}
else
{
25
id
=
freeids_
.front();
26
freeids_
.pop();
27
}
28
29
return
id;
30
}
31
32
34
void
freeID
(
size_t
id
) {
35
36
if
(
id
==
next_free_
- 1)
37
next_free_
--;
38
else
39
freeids_
.push(
id
);
40
}
41
42
43
private
:
44
46
std::queue<size_t>
freeids_
;
47
49
size_t
next_free_
;
50
51
};
ManagedIDs::nextID
size_t nextID()
return next free ID
Definition:
ManagedIDs.h:17
ManagedIDs
Simple class to manage an ID pool.
Definition:
ManagedIDs.h:9
ManagedIDs::freeID
void freeID(size_t id)
free previously allocated ID
Definition:
ManagedIDs.h:34
ManagedIDs::ManagedIDs
ManagedIDs()
Definition:
ManagedIDs.h:13
ManagedIDs::next_free_
size_t next_free_
next free ID
Definition:
ManagedIDs.h:49
ManagedIDs::freeids_
std::queue< size_t > freeids_
queue to handle freed ID's
Definition:
ManagedIDs.h:46
Generated on Sat Jan 4 2020 14:47:41 for OPAL (Object Oriented Parallel Accelerator Library) by
1.8.5