35 #include "SheafSystem/section_space_schema_poset.h" 37 #include "SheafSystem/abstract_poset_member.impl.h" 38 #include "SheafSystem/array_poset_dof_map.h" 39 #include "SheafSystem/ij_product_structure.h" 40 #include "SheafSystem/index_iterator.h" 41 #include "SheafSystem/index_space_iterator.h" 42 #include "SheafSystem/error_message.h" 43 #include "SheafSystem/namespace_poset.impl.h" 44 #include "SheafSystem/namespace_poset_member.h" 45 #include "SheafSystem/pod_types.h" 46 #include "SheafSystem/poset_member_iterator.h" 47 #include "SheafSystem/poset_state.h" 48 #include "SheafSystem/primary_index_space_handle.h" 49 #include "SheafSystem/schema_descriptor.h" 50 #include "SheafSystem/schema_poset_member.h" 51 #include "SheafSystem/section_space_schema_member.impl.h" 52 #include "SheafSystem/section_space_schema_table_dofs_type.h" 53 #include "SheafSystem/std_limits.h" 54 #include "SheafSystem/std_sstream.h" 84 const pod_index_type BASE_SPACE_STRIDE = FIBER_SCHEMA_MEMBER_ID_UB*FIBER_SCHEMA_STRIDE;
103 const poset_path& result = section_space_schema_member::standard_schema_path();
107 ensure(result.
full());
122 require(state_is_auto_read_accessible(xauto_access));
169 require(rep().state_is_read_accessible());
170 require(base_space().state_is_read_accessible());
174 bool result = !rep().multivalued_subposet_name().empty() &&
175 base_space().includes_subposet(rep().multivalued_subposet_name());
205 result = result && ldisc_sp.
has_id_space() && !ldisc_sp.id_space().is_empty();
206 ldisc_sp.detach_from_state();
229 require(state_is_read_accessible());
233 return BASE_SPACE_MEMBER_ID_UB;
242 require(state_is_read_accessible());
243 require(base_space_stride() > 0);
251 ensure(result < base_space_member_id_ub());
265 require(state_is_read_accessible());
266 require(base_space_stride() > 0);
271 result.
put(_base_space->member_hub_id_space(
false),
272 get_base_space_id_from_index(xmbr_id.
hub_pod()));
276 ensure(result.
same_scope(_base_space->member_hub_id_space(
false)));
277 ensure(result.
pod() < base_space_member_id_ub());
292 static const int result = BASE_SPACE_STRIDE;
311 require(state_is_read_accessible());
315 result = _base_space->max_db();
334 require(state_is_auto_read_accessible(xauto_access));
380 require(state_is_read_accessible());
384 return FIBER_SCHEMA_MEMBER_ID_UB;
393 require(state_is_read_accessible());
394 require(fiber_schema_stride() > 0);
395 require(fiber_schema_member_id_ub() > 0);
400 pod_index_type lfiber_schema_member_id_ub = fiber_schema_member_id_ub();
406 pod_index_type result = (xmbr_hub_id/lfiber_schema_stride) % lfiber_schema_member_id_ub;
410 ensure(result < fiber_schema_member_id_ub());
424 require(state_is_read_accessible());
425 require(fiber_schema_stride() > 0);
426 require(fiber_schema_member_id_ub() > 0);
431 result.
put(fiber_schema().member_hub_id_space(
false),
432 get_fiber_schema_id_from_index(xmbr_id.
hub_pod()));
436 ensure(result.
same_scope(fiber_schema().member_hub_id_space(
false)));
437 ensure(result.
pod() < fiber_schema_member_id_ub());
452 static const int result = FIBER_SCHEMA_STRIDE;
471 require(state_is_read_accessible());
479 result = _fiber_space->schema().row_dof_ct();
494 require(state_is_read_accessible());
496 return *_fiber_space->schema().host();
503 require(state_is_read_accessible());
505 return *_fiber_space->schema().host();
516 require(state_is_auto_read_accessible(xauto_access));
546 return *_fiber_space;
553 return *_fiber_space;
560 return _discretization;
567 return _discretization;
604 require(rep().state_is_read_accessible());
608 string result = _rep.evaluator_family_name();
623 require(state_is_read_accessible());
643 require(state_is_read_accessible());
644 require(base_space().contains_member(xbase_space_id));
645 require(fiber_schema().contains_member(xfiber_schema_id));
668 require(state_is_read_accessible());
669 require(base_space().contains_member(xbase_space_id));
670 require(fiber_schema().contains_member(xfiber_schema_id));
674 result.
put(member_hub_id_space(
false),
675 get_index_from_components(xbase_space_id.
hub_pod(),
680 ensure(result.
same_scope(member_hub_id_space(
false)));
693 require(state_is_auto_read_write_accessible(xauto_access));
699 get_read_write_access(
true);
703 base_space().member_index_ub().pod()*base_space_stride();
705 extend_last_member_term(lmember_id_ub,
false);
707 _product->put_ubs(base_space().member_index_ub().pod(), base_space_stride());
769 return SECTION_SPACE_SCHEMA_POSET_ID;
780 static const char* result =
"section_space_schema_poset";
885 ensure(unexecutable(
"schema, rep, base, base schema, fiber, and fiber schema access released"));
1042 string rep_name(
rep().
name());
1046 #ifdef DIAGNOSTIC_OUTPUT 1047 cout <<
"poset: " <<
name() << endl
1048 <<
"\trep: " << rep_name
1049 <<
" old lvl:" << old_rep_access_request_depth << endl
1050 <<
"\tbase_space: " << base_space_name
1051 <<
" old lvl:" << old_base_space_access_request_depth << endl
1052 <<
"\tfiber_space: " << fiber_space_name
1053 <<
" old lvl:" << old_fiber_space_access_request_depth << endl;
1057 for(
size_type i=0; i<old_access_request_depth; ++i)
1068 #ifdef DIAGNOSTIC_OUTPUT 1069 cout <<
" \trep lvl:" << rep_access_request_depth
1070 <<
" base_space lvl:" << base_space_access_request_depth
1071 <<
" fiber_space lvl:" << fiber_space_access_request_depth
1082 ensure(unexecutable(
"state has been deleted"));
1083 ensure(rep_access_request_depth == (old_rep_access_request_depth - old_access_request_depth));
1084 ensure(base_space_access_request_depth == (old_base_space_access_request_depth - old_access_request_depth));
1085 ensure(fiber_space_access_request_depth == (old_fiber_space_access_request_depth - old_access_request_depth));
1139 ensure(unexecutable(result ==
top member has been schematized));
1155 require(dynamic_cast<primitives_poset_schema*>(
schema().
host()) != 0);
1157 require(xtable_dof_subposet != 0);
1159 require(xrow_dof_subposet != 0);
1203 ensure(result >= 0);
1224 ensure(result >= 0);
1248 ensure(result >= 0);
1620 require((xindex == BOTTOM_INDEX) || (xindex == TOP_INDEX));
1625 define_old_variable(
int old_member_ct =
member_ct());
1636 if(
crg().end() >
powerset().subposet_member_index_ub())
1669 #ifdef DIAGNOSTIC_OUTPUT 1670 cout <<
"DIAGNOSTIC_OUTPUT: call to section_space_schema_poset::new_member(), result = " << result << endl;
1692 #ifdef DIAGNOSTIC_OUTPUT 1693 cout <<
"DIAGNOSTIC_OUTPUT: call to section_space_schema_poset::new_member(), result = " << result << endl;
1713 #ifdef DIAGNOSTIC_OUTPUT 1714 cout <<
"DIAGNOSTIC_OUTPUT: call to section_space_schema_poset::delete_member(), index = " << xhub_id << endl;
1747 #ifdef DIAGNOSTIC_OUTPUT 1748 cout <<
"DIAGNOSTIC_OUTPUT: call to section_space_schema_poset::new_link(), gtr, lsr = " << xgreater <<
", " << xlesser << endl;
1770 #ifdef DIAGNOSTIC_OUTPUT 1771 cout <<
"DIAGNOSTIC_OUTPUT: call to section_space_schema_poset::delete_link(), gtr, lsr = " << xgreater <<
", " << xlesser << endl;
1804 #ifdef DIAGNOSTIC_OUTPUT 1806 cout <<
"DIAGNOSTIC_OUTPUT: call to section_space_schema_poset::new_subposet(), result = " << result << endl;
1826 #ifdef DIAGNOSTIC_OUTPUT 1827 cout <<
"DIAGNOSTIC_OUTPUT: call to section_space_schema_poset::delete_subposet(), index = " << xsubposet_hub_id << endl;
1854 ensure(result >= 0);
1966 post_fatal_error_message(
"Product subposet hack, ver 2. Row decomposition i/o not supported for section space schema.");
1978 const std::string& xid_space_name,
1979 bool xauto_access)
const 2019 const std::string& xid_space_name,
2020 bool xauto_access)
const 2036 ensure(result >= 0);
2135 invariance(unexecutable(
"rep.evaluator_family_name is compatible with base_space"));
virtual void get_read_write_access(bool xrelease_read_only_access=false)
Get read write access to the state associated with this. If release_read_only_access is requested...
poset_state_handle * host() const
The poset which this is a handle to a component of.
pod_index_type fiber_schema_member_id_ub() const
The upper bound on the member id of the fiber schema for section spaces on this schema.
virtual void delete_member(pod_index_type xmbr_hub_id)
Delete the member with hub id xmbr_hub_id. Redefined here only to trap attempts to make a new member...
virtual void delete_link(pod_index_type xgreater, pod_index_type xlesser)
Delete the cover link between hub id xgreater and hub id xlesser.
virtual int version() const
The current version.
A client handle for a subposet.
int fiber_schema_stride() const
The increment in the member id when the id of the fiber schema component is increased by one...
virtual void terminate_access()
Release all access to posets this depends on, then detach and delete the state.
virtual void attach_handle_data_members()
Initializes the handle data members when this handle is attached to a state.
static bool rep_is_valid(const sec_rep_descriptor &xrep, const poset_state_handle &xbase_space)
True if the discretization and evaluation subposets named in xrep are included in xbase_space and the...
int df() const
The dimension of the fiber space.
bool state_is_not_read_only_accessible() const
True if this is attached and the state is not accessible for read only access.
virtual void new_link(pod_index_type xgreater, pod_index_type xlesser)
Insert a cover link from greater to lesser (that is, hub id xgreater covers hub id xlesser)...
bool full() const
True if both poset name and member name are not empty.
virtual int member_ct() const
The number of members of this poset.
virtual pod_index_type new_member(bool xis_jim, pod_index_type xdof_tuple_id)
Create a disconnected member with is_jim == xis_jim. Redefined here only to trap attempts to make a n...
bool in_scope() const
True if and only if scope() contains an entry for pod().
const pod_type & pod() const
The "plain old data" storage of this; the value in the external id space.
virtual index_iterator * get_decomposition(pod_index_type xindex) const
An iterator over the members of the decomposition identified by xindex.
An abstract iterator over the ids of an id space.
virtual void new_link(pod_index_type xgreater, pod_index_type xlesser)
Insert a link from lesser to greater (i.e. lesser <= greater). Redefined here only to trap attempts t...
poset_crg_state * crg()
/// The name of the type of poset.
virtual poset_state * state_obj() const
State object for this poset.
const scoped_index & index() const
The member index of this poset within the namespace host()
virtual pod_index_type version_jims_index(int xversion) const
The subposet index of the jims() subposet for version xversion.
virtual const char * class_name() const
The name of this class.
c_string rep_path
The section representation path.
virtual bool has_id_space() const
True if this already has an id space.
static const poset_path & standard_schema_path()
The path to the standard schema for this class.
subposet & whole()
The members of the current version of this poset.
The default name space; a poset which contains other posets as members.
bool state_is_read_accessible() const
True if this is attached and if the state is accessible for read or access control is disabled...
standard_member_index
Ids for standard poset members.
std::string discretization_subposet_name() const
The name of the discretization subposet.
ij_product_structure * _product
The Cartisian product subspace structure.
poset_type
Identifiers for poset types.
virtual void get_read_write_access(bool xrelease_read_only_access=false)
Get read write access to the state associated with this. If release_read_only_access is requested...
virtual bool is_schematized(bool xauto_access) const
True if this poset has been prepared for use as a schema, that is, if the top member has been schemat...
A client handle for a general, abstract partially order set.
virtual bool includes_subposet(pod_index_type xsubposet_hub_id, bool xauto_access=true) const
True if this poset includes subposet with hub id xsubposet_hub_id.
virtual pod_index_type get_base_space_id_from_index(pod_index_type xmbr_hub_id) const
Computes the base space member id associated with hub id xmbr_hub_id.
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
section_space_schema_member & top()
The top of member of the lattice (mutable version)
const index_space_family & member_id_spaces(bool xauto_access) const
Collection of member id spaces for this (const version).
virtual bool is_atom(pod_index_type xmbr_hub_id) const
True if the member with hub id xmbr_hub_id covers the bottom.
subposet & discretization()
The discretization subposet for section spaces on this schema.
virtual void get_read_access() const
Get read access to the state associated with this.
void put_standard_row_dof_tuple_ct(int xct)
Sets the number of standard row dof tuples automatically allocated by the constructor.
abstract_poset_member * _top
Top member of poset.
int db() const
The dimension of the base space.
virtual int version() const
The current version.
virtual void attach_handle_data_members()
Initializes the handle data members when this handle is attached to a state. Intended to be redefined...
virtual void get_read_access() const
Get read access to the state associated with this.
poset_state_handle & member_poset(pod_index_type xhub_id, bool xauto_access=true) const
The poset_state_handle object referred to by hub id xhub_id.
virtual void next()=0
Makes id() the next id in the iteration.
The general, abstract map from dof ids to dof values.
namespace_poset * host() const
The namespace this poset resides in. Obsolete; use name_space() instead.
virtual void put_member_name(pod_index_type xmbr_hub_id, const std::string &xname, bool xunique, bool xauto_access=false)
Make xname a name for the member with hub id xmbr_hub_id. if xunique, make xname the only name...
poset_path rep_path(bool xauto_access) const
The path to the representation for section spaces on this schema..
const index_space_handle & table_dof_id_space() const
The table dof id space for the schema defined by this.
bool has_version(int xversion) const
True if xversion is a valid version.
abstract_poset_member * _bottom
Bottom members of poset.
virtual bool is_valid_int_id(pod_index_type xint_id, const std::string &xid_space_name, bool xauto_access) const
True if xint_id can be translated to an external id using the equivalence map with name xid_space_nam...
virtual pod_index_type new_member(bool xis_jim, pod_index_type xtuple_hub_id)
Create a disconnected member with is_jim == xis_jim and the dof tuple identified by hub id xtuple_hub...
virtual pod_index_type version_index(int xversion) const
The subposet index of the whole() subposet for version xversion.
virtual pod_index_type get_index_from_components(pod_index_type xbase_space_id, pod_index_type xfiber_schema_id) const =0
Computes the index associated with component ids xbase_space_id and xfiber_schema_id.
An implementation of class explicit_index_space_handle that has a primary id space state...
bool same_scope(const scoped_index &xother) const
True if and only if this is in the same id space as xother.
void attach_to_state(const poset_state_handle *xhost, pod_index_type xhub_id)
Attach this handle to the state with hub id xhub_id in the current version of host xhost...
void new_standard_member_hack(standard_member_index xid)
Create a new bottom or top member.
virtual pod_index_type version_jims_index(int xversion) const
The subposet hub id of the jims() subposet for version xversion.
virtual void release_access(bool xall=false) const
Release access. If xall is true, release all levels of access. Otherwise, release one level of access...
subposet & evaluation()
The evaluation subposet for section spaces on this schema.
virtual bool invariant() const
Class invariant.
Table dofs type for class section_space_schema_poset.
Abstract base class with useful features for all objects.
section_space_schema_poset()
Default constructor; disabled.
poset & fiber_space()
The fiber space for section spaces on this schema.
The lattice of closed cells of a cellular space; a lattice representation of a computational mesh...
pod_index_type new_term(size_type xct, bool xauto_access)
Creates a new term in the member hub id space with xct number of ids. Returns the index of the id spa...
virtual int standard_member_ct() const
The number of standard members automatically allocated by the constructor.
virtual schema_poset_member & schema()
The schema for this poset (mutable version).
bool is_done() const
True if iteration is finished.
c_string base_space_path
The base space path.
virtual pod_index_type new_subposet(const block< pod_index_type > &xmembers)
Creates a new subposet. If xinitialize, set the membership to include the members with indices in xma...
virtual pod_index_type version_index(int xversion) const
The subposet hub id of the whole() subposet for version xversion.
virtual ~section_space_schema_poset()
Destructor.
virtual pod_index_type get_ext_id(pod_index_type xint_id, const std::string &xid_space_name, bool xauto_access) const
Translates xint_id to an external id using the equivalence map with name xid_space_name.
virtual void delete_subposet(pod_index_type xsubposet_hub_id)
Deletes the subposet with hub id xsubposet_hub_id.
bool state_is_read_write_accessible() const
True if this is attached and if the state is accessible for read and write or access control is disab...
A client handle for a mutable partially ordered set.
virtual pod_index_type new_subposet(bool xinitialize=true)
Creates a new subposet. If xinitialize, make the subposet empty,.
bool has_standard_row_dof_tuple_ct() const
True if poset is in its initial state, that is, it contains just the standard row_dof_tuples.
virtual void release_iterator(index_space_iterator &xitr) const =0
Returns the id space iterator xitr to the iterator pool.
virtual int standard_member_ct() const
The number of standard members automatically allocated by the constructor.
An index within the external ("client") scope of a given id space.
virtual pod_index_type prereq_id(int xi) const
The id of the xi-th prerequisite poset for this.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
virtual void insert_member(pod_index_type xmbr_hub_id)
Inserts the member of host() with hub id xmbr_hub_id.
bool cover_is_empty(bool xlower, pod_index_type xmbr_hub_id) const
True if and only if the lower (xlower true) or upper (xlower false) cover set of the member with hub ...
virtual bool is_jim(pod_index_type xmbr_hub_id, bool xin_current_version=true) const
True if the member with hub id xmbr_hub_id is a jim.
size_type row_dof_tuple_ct() const
The number of row_dof_tuples of this poset.
virtual void terminate_access()
Release all access to posets this depends on, then detach and delete the state.
virtual void delete_subposet(pod_index_type xsubposet_hub_id)
Deletes the subposet with hub id xsubposet_hub_id.
virtual bool contains_member(pod_index_type xmbr_hub_id, bool xauto_access=true) const
True if some version of this poset contains poset member with hub id xmbr_hub_id. ...
const bool UPPER
Selector for upper cover.
bool is_multivalued() const
Switch that tells the user if the multivalued subposet exists.
sec_rep_descriptor & rep()
The representation for section spaces on this schema.
virtual std::string member_name(pod_index_type xmbr_hub_id, bool xauto_access=false) const
A name for the member with hub id xmbr_hub_id.
virtual void initialize_handle_data_members(const namespace_poset &xns)
Initializes the handle data members that depend on the table dofs and are required to get access when...
std::string evaluator_family_name() const
The name of the evaluator family for section spaces on this schema.
void put_standard_member_ct(int xct)
Sets the number of standard members automatically allocated by the constructor.
void put(const index_space_handle &xid_space, pod_type xpod)
Set the scope to id space, xid_space and pod() to xpod.
virtual std::string name() const
The name of this poset.
void disable_invariant_check() const
Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing inv...
poset_path base_space_path(bool xauto_access) const
The path to the base space for section spaces on this schema.
virtual void release_access(bool xall=false) const
Release access. If xall is true, release all levels of access. Otherwise, release one level of access...
void new_standard_member_hack(standard_member_index xindex)
Create a new bottom or top member.
const ij_product_structure & product_structure() const
The product structure of this schema.
SHEAF_DLL_SPEC void max(const vd &x0, vd_value_type &xresult, bool xauto_access)
Maximum component of x0, pre-allocated version.
virtual pod_index_type get_fiber_schema_id_from_index(pod_index_type xmbr_hub_id) const
Computes the fiber schema member id associated with hub id xmbr_hub_id.
int base_space_stride() const
The increment in the member id when the id of the base space component is increased by one...
virtual index_space_iterator & get_iterator() const =0
Allocates an id space iterator from the iterator pool.
virtual int version_ct() const
The number of versions.
const hub_index_space_handle & member_hub_id_space(bool xauto_access) const
The member hub id space.
void put_subposet_member_index_ub(const scoped_index &xub)
Sets the upper bound of member index in each subposet to xub.
Iterates over the subset of Zn defined by the characteristic function host().
pod_index_type base_space_member_id_ub() const
The upper bound of the member id of the base space for section spaces on this schema.
const bool LOWER
Selector for lower cover.
virtual int member_ct() const
The number of members of this poset.
namespace_poset * name_space() const
The namespace this poset resides in.
virtual bool is_attached() const
True if this is attached to a state.
virtual const abstract_product_structure & product_structure() const
The product structure for this id space (const version).
virtual bool contains_member(pod_index_type xmbr_hub_id, bool xauto_access=true) const
True if some version of this poset contains poset member with hub id xmbr_hub_id. ...
index_iterator member_iterator() const
An iterator for members of this poset.
virtual void schematize(subposet *xtable_dof_subposet, subposet *xrow_dof_subposet, bool xall_members=false)
Prepare this poset and its top member for use as a schema. If xall_members = true, schematize all other members as well.
virtual scoped_index member_index_ub() const
The upper bound on the member_index;.
int access_request_depth() const
The number of times access has been requested and granted without being released. ...
section_space_schema_member & bottom()
The bottom of member of the lattice (mutable version)
An abstract schema poset for a section space. A Cartesian product subspace of the tensor product of a...
virtual void new_product_structure(const abstract_product_structure &xproduct)
Creates a new product structure for this id space by cloning the product structure, xproduct.
virtual poset_type type_id() const
Identifier for the type of this poset.
poset_crg_state & crg() const
The cover relation graph.
virtual bool is_schematized(bool xauto_access) const
True if this poset has been prepared for use as a schema, that is, if the top member has been schemat...
bool invariant_check() const
True if invariant checking is enabled.
poset_path fiber_space_path(bool xauto_access) const
The path to the fiber space for section spaces on this schema.
virtual void release_access(bool xall=false) const
Release access. If xall is true, release all levels of access. Otherwise, release one level of access...
poset_state_handle & fiber_schema()
The fiber schema for section spaces on this schema (mutable version).
virtual void delete_link(pod_index_type xgreater, pod_index_type xlesser)
Delete the link with between xgreater and xlesser Redefined here only to trap attempts to delete a li...
T::table_dofs_type & table_dofs(T &x0)
The table dofs pod type for x0 (mutable version).
int_type pod_index_type
The plain old data index type.
A 2D implementation of abstract_product_structure.
virtual scoped_index member_index_ub() const
The upper bound on the member_index;.
c_string fiber_space_path
The fiber schema space path.
sec_rep_descriptor _rep
The representation for section spaces on this schema.
std::string evaluation_subposet_name() const
The name of the evaluation subposet.
A client handle for a poset member which has been prepared for use as a schema for a section space...
subposet & multivalued()
The multivalued subposet for section spaces on this schema.
bool contains(pod_type xid) const
True, if this contains an id space with id xid.
virtual bool is_jim(pod_index_type xmbr_hub_id, bool xin_current_version=true) const
True if the member with hub id xmbr_hub_id is a jim in the current version (xin_current_version == tr...
virtual bool is_ancestor_of(const any *other) const
True if other conforms to this.
virtual void delete_member(pod_index_type xmbr_hub_id)
Delete the member with hub id xmbr_hub_id. Warning: this routine does not delete links; it will leave...
void attach_to_state(const namespace_poset *xns, const poset_path &xpath, bool xauto_access=true)
Attach to the state specified by path xpath in the namespace xns.
virtual pod_index_type get_ext_id(pod_index_type xint_id, const std::string &xid_space_name, bool xauto_access) const
Translates xint_id to an external id using the equivalence map with name xid_space_name.
virtual void get_read_access() const
Get read access to the state associated with this.
poset * _fiber_space
The fiber space for section spaces on this schema.
virtual bool is_atom(pod_index_type xmbr_hub_id) const
True if the member with hub id xmbr_hub_id covers the bottom.
virtual void initialize_standard_members()
Creates the members common to every poset (i.e. _top and _bottom).
Namespace for the fiber_bundles component of the sheaf system.
SHEAF_DLL_SPEC pod_index_type invalid_pod_index()
The invalid pod index value.
virtual void attach_to_state(pod_index_type xbase_space_id, pod_index_type xfiber_schema_id)=0
Attach to the state in host() with component ids xbase_id and xfiber_schema_id.
void update_hub_id_space(bool xauto_access)
Extends the hub id space to match extension of the base space.
void enable_invariant_check() const
Enable invariant checking.
bool state_is_not_read_accessible() const
True if this is attached and if the state is accessible for read or if access control is disabled...
virtual bool invariant() const
Class invariant.
A client handle for a poset member which has been prepared for use as a schema.
bool contains_hub(const std::string &xname, pod_type xid) const
True if the space with name xname contains an id equivalent to xid in the unglued hub id space...
virtual int version_ct() const
The number of versions currently defined.
poset_powerset_state & powerset() const
The set of subposets of this poset.
pod_type hub_pod() const
The current unglued hub id in the iteration. synonym for unglued_hub_pod().
base_space_poset & base_space()
The base space for section spaces on this schema.
A description for a section representation scheme.
pod_type hub_pod() const
The pod value of this mapped to the unglued hub id space.
base_space_poset * _base_space
The base space for section spaces on this schema.