acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
property_container.h
1//
2// Created by camilo on 2024-06-05 18:57 <3ThomasBorregaardSorensen!!
3//
4#pragma once
5
6
7#include "acme/prototype/prototype/action_context.h"
8#include "acme/prototype/collection/atom_array.h"
9#include "property_listener.h"
10
11namespace data
12{
13
14
15 class CLASS_DECL_ACME property_container :
16 virtual public ::particle
17 {
18 public:
19
20
21 ::property_set m_propertyset;
22 ::pointer_array < ::data::property_listener > m_propertylistenera;
23 ::comparable_array < ::data::property_will_change > m_propertywillchangea;
24 ::comparable_array < ::data::property_changed > m_propertychangeda;
25
26
27 property_container();
28 ~property_container() override;
29
30
31 void destroy() override;
32
33
34 virtual bool set_property(const ::atom_array_base & atoma, const ::payload & payload, const ::action_context & context = {});
35 virtual ::payload get_property(const ::atom_array_base & atoma) const;
36
37 virtual void on_set_property(::data::property_change & change);
38 virtual ::payload on_get_property(const ::atom_array_base & atoma) const;
39
40 virtual bool on_property_will_change(::data::property_change & change);
41 virtual void on_property_changed(::data::property_change & change);
42
43
44 ::comparable_array < ::data::property_will_change > & property_will_change();
45 ::comparable_array < ::data::property_changed > & property_changed();
46
47
48 };
49
50
51} // namespace data
52
Definition payload.h:54
Definition property_set.h:512
Definition _.h:34