acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
container.h
1
#pragma once
2
3
5
#include "acme/parallelization/synchronization_array.h"
6
#include "acme/prototype/data/data.h"
7
8
9
namespace
data
10
{
11
12
13
class
CLASS_DECL_ACME data_container :
14
virtual
public
::object
15
{
16
public
:
17
18
19
::pointer<data> m_spdata;
20
21
22
data_container();
23
virtual
~data_container();
24
25
26
virtual
bool
set_data(::data::data * pdata);
27
data
* get_data();
28
29
virtual
bool
is_data_locked()
const
;
30
31
virtual
void
on_update_data(::i32 iHint);
32
33
};
34
35
36
class
CLASS_DECL_ACME data_container_base :
37
virtual
public
::object
38
{
39
public
:
40
41
42
data_map m_datamap;
43
44
45
data_container_base();
46
~data_container_base()
override
;
47
48
49
void
destroy()
override
;
50
51
virtual
bool
set_data(const ::atom &
atom
, ::data::data * pdata);
52
virtual
bool
add_data(::data::data * pdata);
53
virtual
bool
erase_data(::data::data * pdata);
54
virtual
data
* get_data(const ::atom &
atom
);
55
virtual ::pointer < data > create_data(const ::atom &
atom
);
56
virtual ::collection::count get_count()
const
;
57
58
59
virtual
bool
is_empty()
const
;
60
61
62
template
<
typename
TYPE >
63
TYPE * get_typed_data(::collection::index i = 0)
64
{
65
66
return
m_datamap.get_typed_ptr < TYPE >();
67
68
}
69
70
71
template
<
typename
TYPE >
72
bool
replace_data(const ::atom &
atom
, TYPE * pdata)
73
{
74
75
m_datamap.set_at(
atom
, pdata);
76
77
return
true
;
78
79
}
80
81
82
virtual
synchronization_array
get_synca();
83
84
85
};
86
87
88
89
}
// namespace data
90
91
92
atom
Definition
atom.h:237
data::data
Definition
data.h:18
synchronization_array
Definition
synchronization_array.h:54
prototype
data
container.h
Generated by
1.17.0