acme
Foundational cross-platform layer of the ca2 framework
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
6namespace user { class property; }
7
8
9namespace data
10{
11
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
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
Definition atom_array.h:12
Definition atom.h:237
Definition property_container.h:17
Definition property.h:16
Definition payload.h:54
Created by camilo on 2026-05-28 12:34 <3ThomasBorregaardSørensen!! Mummi!! Bilbo!!
Definition _.h:67
Definition property.h:26
Definition _.h:34