20 #include "SheafSystem/poset_general_record.h" 22 #include "SheafSystem/assert_contract.h" 23 #include "SheafSystem/namespace_poset.h" 24 #include "SheafSystem/poset.h" 25 #include "SheafSystem/poset_bounds.h" 26 #include "SheafSystem/std_sstream.h" 184 scaffold().structure().state_is_read_write_accessible() :
186 require(
scaffold().name_space()->state_is_read_accessible());
195 lstream << boolalpha;
209 lstream >> lskip_name >> ltype_id;
212 lstream >> lskip_name >> lmember_ct;
215 lstream >> lskip_name >> ldof_tuple_ct;
218 lstream >> lskip_name >> lrow_dof_tuple_type;
221 lstream >> lskip_name >> lis_versioned;
226 lstream >> lskip_name >> lsubposet_ct;
231 lstream >> lskip_name >> ltoc_type;
233 int ldof_tuple_id_type;
234 lstream >> lskip_name >> ldof_tuple_id_type;
237 lstream >> lskip_name >> loffset_type;
242 lstream >> lskip_name >> lschema_poset_ext_id_pod;
245 lstream >> lskip_name >> lschema_member_ext_id_pod;
248 lstream >> lskip_name >> lbase_space_ext_id_pod;
251 lstream >> lskip_name >> lfiber_schema_ext_id_pod;
254 lstream >> lskip_name >> llocal_schema_ext_id_pod;
257 lstream >> lskip_name >> lschema_version;
261 bool llb_is_singleton;
262 lstream >> lskip_name >> llb_is_singleton;
265 lstream >> lskip_name >> llb_id;
268 lstream >> lskip_name >> lub_id;
287 lschema_member_ext_id_pod,
288 lbase_space_ext_id_pod,
289 lfiber_schema_ext_id_pod,
290 llocal_schema_ext_id_pod);
323 ensure(
scaffold().internal_schema().is_attached());
324 ensure(
scaffold().transfer_schema().is_attached());
325 ensure(
scaffold().external_schema().is_attached());
339 require(
scaffold().structure().state_is_read_accessible());
343 stringstream lstream;
345 lstream << boolalpha;
347 lstream <<
"General attributes:" << endl;
352 lstream <<
"type_id: " 356 lstream <<
"member_ct: " 359 lstream <<
"row_dof_tuple_ct: " 363 lstream <<
"row_dof_tuple_type: " 367 lstream <<
"is_versioned: " 373 lstream <<
"subposet_ct: " 379 lstream <<
"toc_converter: " 383 lstream <<
"dof_tuple_id_converter: " 387 lstream <<
"offset_converter: " 403 lschema_poset_ext_id,
404 lschema_member_ext_id,
406 lfiber_schema_ext_id,
407 llocal_schema_ext_id);
409 lstream <<
"schema_poset_ext_id: " << lschema_poset_ext_id << endl;
410 lstream <<
"schema_member_ext_id: " << lschema_member_ext_id << endl;
411 lstream <<
"base_space_ext_id: " << lbase_space_ext_id << endl;
412 lstream <<
"fiber_schema_ext_id: " << lfiber_schema_ext_id << endl;
413 lstream <<
"local_schema_ext_id: " << llocal_schema_ext_id << endl;
421 lstream <<
"lb_is_singleton: " << lb_is_singleton << endl;
449 lstream <<
"ub_id: " << TOP_INDEX << endl;
primitive_type row_dof_tuple_type() const
The type of row dofs defined by this. Synonym for dof_tuple_type(false).
virtual ~poset_general_record()
Destructor.
virtual schema_poset_member * new_schema_handle(const std::string &xid_space_name, pod_index_type xschema_member_ext_id, pod_index_type xbase_space_ext_id, pod_index_type xfiber_schema_ext_id, pod_index_type xlocal_schema_ext_id)
Creates a member handle of the type appropriate for members of this when used as a schema...
namespace_poset * name_space() const
The name space of this poset.
void put_member_record_type_aliases(int xtoc_index, int xdof_tuple_id_index, int xoffset_index)
Sets the member record specific data types.
bool lb_is_singleton() const
True if the lower bound contains a single member.
int version(bool xunalias=true) const
The (possibly aliased) version of this component. The version of the host used when evaluating proper...
poset_scaffold & scaffold()
The scaffold for the poset associated with this record (mutable version).
virtual int member_ct() const
The number of members of this poset.
virtual bool invariant() const
Class invariant.
poset_data_type_map & type_map()
The data type map used to convert data for this record (mutable version).
The default name space; a poset which contains other posets as members.
virtual bool invariant() const
Class invariant.
A client handle for a general, abstract partially order set.
virtual poset_general_record * clone() const
Virtual constructor; makes a new instance of the same type as this.
std::vector< subposet * > & subposets()
Buffer for subposet handles (mutable version).
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.
bool & is_versioned()
True if poset has more than one version (mutable version).
poset_general_record(const poset_general_record &xother)
Copy constructor.
virtual pod_type pod(pod_type xid) const
The pod index in this space equivalent to xid in the hub id space.
virtual poset_type type_id() const
Identifier for the type of this poset.
Abstract base class with useful features for all objects.
pod_index_type get_int_id(pod_index_type xext_id, const std::string &xid_space_name, bool xauto_access) const
Translates xext_id to an internal id using the equivalence map with name xid_space_name.
virtual schema_poset_member & schema()
The schema for this poset (mutable version).
hid_t internal_index() const
The primitives poset member index for the internal type.
std::string _str_buf
The internal/external buffer.
virtual void transfer_internal_buffer_to_poset()
Initializes member with index xmbr_id from the internal buffer.
primitive_type
Type ids for sheaf primitives.
virtual bool is_ancestor_of(const any *other) const
Conformance test; true if other conforms to this.
data_converter * offset_converter() const
The data converter for implementation type offset.
bool is_internal() const
True if the internal buffer has been initialized.
size_type row_dof_tuple_ct() const
The number of row_dof_tuples of this poset.
A wrapper/adapter for the poset general attributes record. Intended for transferring data between the...
schema_poset_member & external_schema()
The schema of the poset in external namespace (mutable version).
poset_bounds & row_bounds()
The bounds for the rows in this transaction (mutable version).
void put_is_internal(bool xis_internal)
Sets is_internal to xis_internal.
void disable_invariant_check() const
Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing inv...
SHEAF_DLL_SPEC void max(const vd &x0, vd_value_type &xresult, bool xauto_access)
Maximum component of x0, pre-allocated version.
void initialize_schema_for_read(schema_poset_member *xext_schema, int xschema_version)
Initialize internal, transfer, and external schema for read transactions.
poset_state_handle & structure()
The handle for the poset being transferred. (Name chosen to void name conflict with class poset...
virtual void transfer_poset_to_internal_buffer()
Initializes the internal buffer from the member with index xmbr_id.
member_index_space_type & member_id_space()
External to internal member index space for structure() (mutable version).
subposet_index_space_type & subposet_id_space()
External to internal subposet index map for powerset() (mutable version).
data_converter * toc_converter() const
The data converter for implementation type toc.
bool invariant_check() const
True if invariant checking is enabled.
pod_index_type pod_type
The "plain old data" storage type for this.
virtual void get_ext_ids(const std::string &xid_space_name, pod_index_type &xschema_poset_ext_id, pod_index_type &xschema_member_ext_id, pod_index_type &xbase_space_ext_id, pod_index_type &xfiber_schema_ext_id, pod_index_type &xlocal_schema_ext_id) const
Gets the external ids of this in the id space with name xid_space_name.
int_type pod_index_type
The plain old data index type.
data_converter * dof_tuple_id_converter() const
The data converter for implementation type dof_tuple_id.
A poset specific collection of data converters, various buffers and other data used while transferrin...
schema_poset_member & transfer_schema()
The schema for the restriction that is being read or written (mutable version)
pod_index_type lb_id() const
The index of the lower bound member, if the lower bound contains a single member. ...
bool is_external() const
True if the external buffer has been initialized.
An abstract wrapper/adapter for attributes records. Intended for transferring data between the kernel...
bool is_same_type(const any *other) const
True if other is the same type as this.
void enable_invariant_check() const
Enable invariant checking.
A client handle for a poset member which has been prepared for use as a schema.
virtual int version_ct() const
The number of versions currently defined.
void put_is_external(bool xis_external)
Sets is_external to xis_external.