20 #ifndef READ_WRITE_MONITOR_HANDLE_H 21 #define READ_WRITE_MONITOR_HANDLE_H 23 #ifndef SHEAF_DLL_SPEC_H 24 #include "SheafSystem/sheaf_dll_spec.h" 28 #include "SheafSystem/any.h" 33 #ifndef READ_WRITE_MONITOR_H 34 #include "SheafSystem/read_write_monitor.h" 51 virtual bool is_ancestor_of(
const any* xother)
const;
79 static bool access_control_disabled();
97 static void enable_access_control();
114 virtual bool is_attached()
const;
120 bool state_is_read_only_accessible()
const;
126 bool state_is_not_read_only_accessible()
const;
132 bool state_is_read_accessible()
const;
138 bool state_is_not_read_accessible()
const;
145 bool state_is_auto_read_accessible(
bool xauto_access)
const;
151 bool state_is_read_write_accessible()
const;
157 bool state_is_not_read_write_accessible()
const;
165 bool state_is_auto_read_write_accessible(
bool xauto_access)
const;
171 int access_request_depth()
const;
176 virtual void get_read_access()
const;
184 virtual void get_read_write_access(
bool xrelease_read_only_access =
false);
190 virtual void release_access(
bool xall =
false)
const;
199 bool state_is_mode_locked()
const;
204 int mode_lock_ct()
const;
209 void get_mode_lock()
const;
214 void release_mode_lock();
224 bool state_is_modified()
const;
229 void clear_state_is_modified();
243 return state_obj()->access_guards_disabled();
252 state_obj()->disable_access_guards();
260 state_obj()->enable_access_guards();
266 #endif // ifndef READ_WRITE_MONITOR_HANDLE_H void enable_access_guards()
Re-enables access guards.
The monitor concurrency control interface. Class READ_WRITE_MONITOR implements the monitor concurrenc...
void disable_access_guards()
Disables access guards; intended for use only within constructors of monitored objects, where no other client can possibly have access (yet).
bool access_guards_disabled() const
True if thread of control is still in constructor.
A handle for a hidden read_write_monitor state.
Abstract base class with useful features for all objects.
Namespace for the sheaves component of the sheaf system.