19class CLASS_DECL_ACME quantum :
20 public memory_quantum,
42 inline quantum(const ::quantum & quantum)
48 inline quantum(::quantum&& quantum)
60 [[nodiscard]]
inline bool has_flag(enum_flag eflag)
const {
return m_eflagElement.is(eflag); }
61 inline void set_flag(enum_flag eflag) { m_eflagElement = m_eflagElement | eflag; }
62 inline void set_flag(enum_flag eflag,
bool bSet) {
if (bSet) set_flag(eflag);
else clear_flag(eflag); }
63 inline void clear_flag(enum_flag eflag) { m_eflagElement = m_eflagElement & ~eflag; }
66 inline void set_ok_flag() { set_flag(e_flag_success); clear_flag(e_flag_timeout); clear_flag(e_flag_failure); }
67 inline void set_nok(enum_flag estatusFailure = e_flag_failure) { clear_flag(e_flag_success); set_flag(estatusFailure); }
68 inline void set_modified_flag(
bool bModified =
true) { set_flag(e_flag_changed, bModified); }
71 [[nodiscard]]
inline bool has_proto_flag()
const {
return has_flag(e_flag_proto); }
74 inline void set_fail_flag() { set_flag(e_flag_failure); clear_flag(e_flag_success); }
75 inline void set_timed_out_flag() { set_flag(e_flag_timeout); }
76 inline void set_persistent_flag(
bool bSet =
true) { set_flag(e_flag_persist, bSet); }
79 [[nodiscard]]
inline bool has_ok_flag()
const {
return has_flag(e_flag_success); }
80 [[nodiscard]]
inline bool nok()
const {
return has_flag(e_flag_failure) || has_flag(e_flag_timeout); }
81 [[nodiscard]]
inline bool has_timed_out_flag() {
return has_flag(e_flag_timeout); }
82 [[nodiscard]]
inline bool has_modified_flag()
const {
return has_flag(e_flag_changed); }
83 [[nodiscard]]
inline bool has_persistent_flag()
const {
return has_flag(e_flag_persist); }
85 [[nodiscard]]
inline bool has_shared_flag()
const {
return has_flag(e_flag_shared); }
86 inline void set_shared_flag(
bool bSet =
true) { set_flag(e_flag_shared, bSet); }
89 [[nodiscard]]
inline bool has_finishing_flag()
const {
return has_flag(e_flag_finishing); }
91 void set_finishing_flag();
92 inline void clear_finishing_flag() { clear_flag(e_flag_finishing); }
95 [[nodiscard]]
inline bool has_initialized_flag()
const {
return has_flag(e_flag_initialized); }
96 inline void set_initialized_flag() { set_flag(e_flag_initialized); }
97 inline void clear_initialized_flag() { clear_flag(e_flag_initialized); }
100 [[nodiscard]]
inline bool has_acquired_flag()
const {
return has_flag(e_flag_acquired); }
101 inline void set_acquired_flag() { set_flag(e_flag_acquired); }
102 inline void clear_acquired_flag() { clear_flag(e_flag_acquired); }
104 [[nodiscard]]
inline bool has_own_synchronization_flag()
const {
return has_flag(e_flag_own_synchronization); }
105 inline void set_own_synchronization_flag(
bool bSet =
true) { set_flag(e_flag_own_synchronization, bSet); }
106 inline void clear_own_synchronization_flag() { clear_flag(e_flag_own_synchronization); }
109 [[nodiscard]]
inline bool has_already_exists_flag()
const {
return has_flag(e_flag_already_exists); }
110 inline void set_already_exists_flag(
bool bSet =
true) { set_flag(e_flag_already_exists, bSet); }
111 inline void clear_already_exists_flag() { clear_flag(e_flag_already_exists); }
115 [[nodiscard]]
inline bool has_running_flag()
const {
return has_flag(e_flag_running); }
116 inline void set_running_flag() { set_flag(e_flag_running); }
117 inline void clear_running_flag() { clear_flag(e_flag_running); }
124 [[nodiscard]]
inline bool has_destroying_flag()
const {
return has_flag(e_flag_destroying); }
125 void set_destroying_flag();
126 inline void clear_destroying_flag() { clear_flag(e_flag_destroying); }
129 [[nodiscard]]
inline bool has_storing_flag()
const {
return has_flag(e_flag_storing); }
130 [[nodiscard]]
inline bool has_loading_flag()
const {
return !has_storing_flag(); }
133 inline void set_storing_flag() { set_flag(e_flag_storing); }
134 inline void set_loading_flag() { clear_flag(e_flag_storing); }
137 inline void defer_set_storing_flag() {
if (!has_storing_flag()) set_storing_flag(); }
138 inline void defer_set_loading_flag() {
if (!has_loading_flag()) set_loading_flag(); }
141 inline void set_statically_allocated_flag() { set_flag(e_flag_statically_allocated); }
142 inline void set_verbose_flag(
bool bVerbose =
true) { set_flag(e_flag_verbose, bVerbose); }
143 [[nodiscard]]
inline bool has_verbose_flag()
const {
return has_flag(e_flag_verbose); }
147 [[nodiscard]]
inline bool has_read_only_flag()
const {
return has_flag(e_flag_read_only); }
148 inline void set_read_only_flag() { set_flag(e_flag_read_only); }
149 inline void clear_read_only_flag() { clear_flag(e_flag_read_only); }
151 [[nodiscard]]
inline bool has_owner_flag()
const {
return has_flag(e_flag_owner); }
152 inline void set_owner_flag() { set_flag(e_flag_owner); }
153 inline void clear_owner_flag() { clear_flag(e_flag_owner); }
156 inline bool is_status_ok()
const {
return m_estatus.ok(); }
157 inline bool has_failed_status()
const {
return !is_status_ok(); }
164 virtual void request(::request * prequest);
165 virtual void on_request(::request * prequest);