libpromeki
1.0.0-alpha
PROfessional MEdia toolKIt
Loading...
Searching...
No Matches
memdomain.h
Go to the documentation of this file.
1
8
#pragma once
9
10
11
#include <promeki/config.h>
12
#if PROMEKI_ENABLE_CORE
13
#include <
promeki/namespace.h
>
14
#include <
promeki/string.h
>
15
#include <
promeki/list.h
>
16
17
PROMEKI_NAMESPACE_BEGIN
18
43
class
MemDomain {
44
public
:
52
enum
ID {
53
Host = 0,
54
CudaDevice = 1,
55
FpgaDevice = 2,
56
Default = Host,
57
UserDefined = 1024
58
};
59
61
using
IDList = ::promeki::List<ID>;
62
70
struct
Data {
71
ID id;
72
String name;
73
};
74
79
static
ID registerType();
80
89
static
void
registerData(Data &&data);
90
95
static
IDList registeredIDs();
96
101
inline
MemDomain(ID
id
= Default);
102
104
const
String &name()
const
{
return
d->name; }
105
107
ID id()
const
{
return
d->id; }
108
110
bool
operator==(
const
MemDomain &o)
const
{
return
d == o.d; }
111
113
bool
operator!=(
const
MemDomain &o)
const
{
return
d != o.d; }
114
115
private
:
116
const
Data *d =
nullptr
;
117
static
const
Data *lookup(ID
id
);
118
};
119
120
inline
MemDomain::MemDomain(ID
id
) : d(lookup(id)) {}
121
122
PROMEKI_NAMESPACE_END
123
124
#endif
// PROMEKI_ENABLE_CORE
list.h
namespace.h
string.h
include
promeki
memdomain.h
Generated on 2026-05-21 02:27:58 from commit ffbc5cc (1.0.0-alpha).