6using update_map = map < ::pointer<matter> ::pointer<::update_item>>
8class CLASS_DECL_ACME update :
14 friend class ::acme::acme;
16 static ::pointer<update> get(const ::atom & atom);
18 virtual void add(::matter* pmatter);
19 virtual void erase(::matter* pmatter);
21 static void _add(const :: atom & atom, ::matter* pmatter);
23 static void _erase(const ::atom& atom, ::matter* pmatter);
25 static void _erase(::matter* pmatter);
27 static ::critical_section* g_pcs;
28 static ::atom_map < ::pointer<update >> g_pmap;
29 static bool g_bDestroyAll;
38 ::pointer<::layered> m_psender;
39 ::pointer<::layered> m_pobjectTopic;
40 ::action_context m_actioncontext;
42 ::pointer<::layered> m_puserinteraction;
43 ::pointer<::layered> m_pcontrolevent;
44 ::pointer<::file::item> m_pfileitem;
46 ::i64 m_iUpdateSerial;
47 ::user::enum_key m_ekey;
56 update(const ::atom & atom);
60 virtual void notify();
63 static void set_modified(const ::atom& atom);
67 virtual void run()
override;
69 static void post_destroy_all();
71 inline bool is_ending() { synchronous_lock synchronouslock(this->synchronization(), DEFAULT_SYNCHRONOUS_LOCK_SUFFIX);
return m_map.is_empty(); };
72 inline ::i32 poll_millis() {
return os_get_system_update_poll_time(m_iUpdateSerial); };
74 static inline bool should_poll(::i32 iMillis)
77 return iMillis >= 100;
86 ::update& operator =(const ::atom& atom) { id() = atom;
return *
this; }
87 inline bool operator ==(const ::atom& atom)
const {
return id() == atom || id() == FULL_ID; }
97using manager_pointer = ::pointer<::update>
100inline auto new_update(const ::atom &
atom) {
return allocateø ::update(
atom); }
Definition bbb_object.h:11