acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
property.h
1
// Creating by camilo with
2
// property* system on 2024-06-06 21:20 <3ThomasBorregaardSorensen!!
3
#pragma once
4
5
6
namespace
user
{
class
property; }
7
8
9
namespace
data
10
{
11
12
class
property_container
;
13
14
15
class
CLASS_DECL_ACME property
16
{
17
protected
:
18
::data::property_container
* m_ppropertycontainer;
19
::atom m_atom;
20
friend
class ::user::property;
21
void
initialize_data_property(const ::data::property & propertySource);
22
public
:
23
24
25
struct
set_property_t
26
{
27
28
const ::payload& m_payload;
29
const ::action_context& m_actioncontext;
30
31
};
32
33
property(
::data::property_container
* ppropertycontainer =
nullptr
, const ::atom & atom = {});
34
35
36
property
(
const
property
&
property
);
37
38
~property
();
39
40
41
::atom
atom
()
const
{
return
m_atom; }
42
43
::comparable_array < ::data::property_will_change > & property_will_change()
const
;
44
45
::comparable_array < ::data::property_changed > & property_changed()
const
;
46
47
//property_link(::property_container * ppropertycontainer = nullptr, const ::atom & atom = {});
48
//property_link(const property_link & propertylink);
49
//~property_link() override;
50
51
52
//bool set_property(const ::payload & payload, const ::action_context & context = {});
53
//::payload get_property() const;
54
55
bool
operator &&(
::data::property_change
& change)
const
;
56
bool
operator &&(const ::atom_array_base & atoma)
const
;
57
58
/* void notify_property_changed(const ::action_context & actioncontext) const;
59
60
property* operator ->() { return ::is_null(m_ppropertyobject) ? nullptr : m_pproperty; }
61
property* operator ->() const { return ::is_null(m_ppropertyobject) ? nullptr : m_pproperty; }
62
63
property& operator *() { return *this->operator->(); }
64
property& operator *() const { return *this->operator->(); }
65
66
operator ::i32() const { return ::is_set(m_pproperty) && ::is_set(m_ppropertyobject); }
67
68
linked_property& operator=(const linked_property& linkedproperty)
69
{
70
71
m_pproperty = linkedproperty.m_pproperty;
72
m_ppropertyobject = linkedproperty.m_ppropertyobject;
73
74
return *this;
75
}
76
*/
77
78
79
bool
set_property(const ::payload &
payload
, const ::action_context & actioncontext)
const
;
80
81
::atom_array_base
get_key(const ::atom_array_base & atomaSuffix)
const
;
82
83
84
bool
set_property(const ::atom_array_base & atomaSuffix, const ::payload &
payload
, const ::action_context & actioncontext)
const
;
85
86
::payload
get_property(const ::atom_array_base & atomaSuffix = {})
const
;
87
88
89
bool
operator == (
const
property & property)
const
;
90
91
property
& operator = (set_property_t setproperty)
92
{
93
94
set_property(setproperty.m_payload, setproperty.m_actioncontext);
95
96
return
*
this
;
97
98
}
99
100
101
};
102
103
104
106
//class property_id_link :
107
// public property_link
108
//{
109
//public:
110
//
111
//
112
// //::property_container * m_ppropertycontainer;
113
//
114
//
115
// //property_link(::property_container * ppropertycontainer = nullptr, const ::atom & atom = {});
116
// //property_link(const property_link & propertylink);
117
// //~property_link() override;
118
//
119
//
120
// //bool set_property(const ::payload & payload, const ::action_context & context = {});
121
// //::payload get_property() const;
122
//
123
//
125
//
126
// property* operator ->() { return ::is_null(m_ppropertyobject) ? nullptr : m_pproperty; }
127
// property* operator ->() const { return ::is_null(m_ppropertyobject) ? nullptr : m_pproperty; }
128
//
129
// property& operator *() { return *this->operator->(); }
130
// property& operator *() const { return *this->operator->(); }
131
//
132
// operator ::i32() const { return ::is_set(m_pproperty) && ::is_set(m_ppropertyobject); }
133
//
134
// linked_property& operator=(const linked_property& linkedproperty)
135
// {
136
//
137
// m_pproperty = linkedproperty.m_pproperty;
138
// m_ppropertyobject = linkedproperty.m_ppropertyobject;
139
//
140
// return *this;
141
// }
142
//*/
143
// property_id_link(::property_container * ppropertycontainer):
144
// property_link(ppropertycontainer)
145
// {
146
//
147
//
148
// }
149
//
150
//
151
// property_id_link(const property_link & propertylink) :
152
// property_link(propertylink.m_ppropertycontainer)
153
// {
154
//
155
// }
156
//
157
//
158
// ~property_id_link()
159
// {
160
//
161
//
162
// }
163
//
164
// bool set_property(const ::payload & payload, const ::action_context & actioncontext)
165
// {
166
//
167
// return property_link::set_property(t_eid, payload, actioncontext);
168
//
169
// }
170
//
171
//
172
// ::payload get_property() const
173
// {
174
//
175
// return property_link::get_property(t_eid);
176
//
177
// }
178
//
179
//
180
//};
181
182
183
}
// namespace data
184
185
186
atom_array_base
Definition
atom_array.h:12
atom
Definition
atom.h:237
data::property_container
Definition
property_container.h:17
data::property
Definition
property.h:16
payload
Definition
payload.h:54
user
Created by camilo on 2026-05-28 12:34 <3ThomasBorregaardSørensen!! Mummi!! Bilbo!!
Definition
_.h:67
data::property::set_property_t
Definition
property.h:26
data::property_change
Definition
_.h:34
prototype
data
property.h
Generated by
1.17.0