21 #ifndef POSET_COMPONENT_H 22 #define POSET_COMPONENT_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 29 #include "SheafSystem/poset_state.h" 32 #ifndef READ_WRITE_MONITOR_HANDLE_H 33 #include "SheafSystem/read_write_monitor_handle.h" 36 #ifndef SCOPED_INDEX_H 37 #include "SheafSystem/scoped_index.h" 40 #ifndef STANDARD_VERSION_INDEX_H 41 #include "SheafSystem/standard_version_index.h" 45 #include "SheafSystem/std_string.h" 51 class namespace_poset;
53 class poset_crg_state;
56 class poset_powerset_state;
58 class poset_state_handle;
126 virtual void init_handle_data_members();
133 virtual void attach_handle_data_members();
174 int xversion = CURRENT_HOST_VERSION)
const = 0;
182 int xversion = CURRENT_HOST_VERSION)
const;
204 const std::string& xname)
const = 0;
210 const std::string& xname,
218 int version(
bool xunalias =
true)
const;
224 virtual void put_version(
int xversion,
bool xunalias =
false);
230 int unaliased_version(
int xversion)
const;
245 std::string version_name()
const;
250 bool has_version(
int xversion)
const;
270 std::string name()
const;
275 virtual std::string name(
bool xauto_access)
const = 0;
280 virtual void all_names(
block<std::string>& xresult,
bool xauto_access =
false)
const = 0;
285 virtual size_type name_ct(
bool xauto_access)
const = 0;
290 virtual bool has_name(
const std::string& xname,
bool xauto_access =
false)
const = 0;
295 virtual void put_name(
const std::string& xname,
bool xunique,
bool xauto_access) = 0;
300 virtual void delete_name(
const std::string& xname,
bool xauto_access =
false) = 0;
305 virtual void delete_all_names(
bool xauto_access =
false) = 0;
316 poset_path path(
bool xauto_access =
true)
const;
321 bool has_path(
const poset_path& xpath,
bool xauto_access)
const;
358 return has_same_host(xother);
383 virtual bool namespace_is_ancestor_of(
const namespace_poset* xother)
const;
430 inline void attach_to_state(
const namespace_poset* xhost,
const std::string& xname)
438 attach_to_state(reinterpret_cast<const poset_state_handle*>(xhost), xname);
445 void attach_to_state(
const std::string&);
467 void attach_to_state(
const poset_component* xother,
bool xauto_access);
472 virtual void detach_from_state();
477 virtual void delete_state(
bool xauto_access =
false) = 0;
482 virtual bool is_attached()
const;
519 virtual void get_read_access()
const;
527 virtual void get_read_write_access(
bool xrelease_read_only_access =
false);
533 virtual void release_access(
bool xall =
false)
const;
552 virtual bool is_ancestor_of(
const any* other)
const;
562 virtual bool invariant()
const;
583 #endif // ifndef POSET_COMPONENT_H The data structure representing the cover relation graph of a poset.
The private state of a partially ordered set.
The default name space; a poset which contains other posets as members.
poset_state_handle * _host
The host poset for this component.
The data structure representing the state of a subposet.
A handle for a hidden read_write_monitor state.
A client handle for a general, abstract partially order set.
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
Features shared by poset_member and subposet. Subposet and poset_member objects can be attached...
The general, abstract map from dof ids to dof values.
An implementation of class sum_index_space_handle that has a primary sum id space state...
Abstract base class with useful features for all objects.
scoped_index _index
The index for this component within the host.
bool in_same_space(const poset_component *xother) const
Synonym for has_same_host(xother)
An index within the external ("client") scope of a given id space.
SHEAF_DLL_SPEC size_t deep_size(const dof_descriptor_array &xp, bool xinclude_shallow=true)
The deep size of the referenced object of type dof_descriptor_array.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
int _version
The version of this component. The version of the host used when evaluating properties of this compon...
int_type pod_index_type
The plain old data index type.
Namespace for the sheaves component of the sheaf system.
The set of subsets of a poset.