20 #include "SheafSystem/table_dof_tuple_record.h" 22 #include "SheafSystem/arg_list.h" 23 #include "SheafSystem/array_poset_dof_map.h" 24 #include "SheafSystem/assert_contract.h" 25 #include "SheafSystem/namespace_poset.h" 26 #include "SheafSystem/namespace_poset_member.h" 27 #include "SheafSystem/primitive_type.h" 28 #include "SheafSystem/std_limits.h" 29 #include "SheafSystem/std_sstream.h" 57 ensure(is_same_type(result));
79 result = result && attributes_record::invariant();
85 disable_invariant_check();
89 enable_invariant_check();
158 ensure(&(
scaffold()) == &xscaffold);
227 if(
scaffold().internal_schema().table_dof_ct() > 0)
234 for(
int i=0; i<largs.ct(); ++i)
237 if(largi.
type() == NAMESPACE_RELATIVE_MEMBER_INDEX)
241 else if(largi.
type() == NAMESPACE_RELATIVE_SUBPOSET_INDEX)
260 release_prerequisites(lposet);
294 for(
int i=0; i<largs.
ct(); ++i)
297 if(largi.
type() == NAMESPACE_RELATIVE_MEMBER_INDEX)
301 else if(largi.
type() == NAMESPACE_RELATIVE_SUBPOSET_INDEX)
307 stringstream lstream;
308 lstream <<
"Table_dof_tuple:" << endl << largs;
336 sheaf::table_dof_tuple_record::
365 lns->member_poset(lprereq_id).release_access();
375 ensure(unexecutable(all prerequisites have been release));
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...
primitive_value value
The value of the argument.
virtual void transfer_internal_buffer_to_poset()
Initializes scaffold from the internal buffer.
arg_type & arg(int xi)
The xi-th arg.
poset_scaffold & scaffold()
The scaffold for the poset associated with this record (mutable version).
A wrapper/adapter for the table dof tuple record. Intended for transferring data between the kernel a...
void convert_record_id_to_subposet_id(void *xbuf)
Converts namespace relative record id at location xbuf to namespace relative subposet id at location ...
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...
virtual table_dof_tuple_record * clone() const
Virtual constructor; makes a new instance of the same type as this.
A client handle for a general, abstract partially order set.
The internal argument type.
A client handle for a member of a namespace poset.
Abstract base class with useful features for all objects.
A whitespace separated list of arguments. Insertion operaters are used to insert arguments into the l...
pod_index_type poset_prereq_id(int xi) const
The id of the xi-th prerequisite poset for the poset associated with this namespace member...
std::string _str_buf
The internal/external buffer.
bool is_external() const
True if this has a corresponding member in a name space, but is not yet attached to a state...
virtual bool invariant() const
Class invariant.
bool is_internal() const
True if the internal buffer has been initialized.
void convert_record_id_to_member_id(void *buf)
Converts namespace relative record id at location xbuf to namespace relative member id at location xb...
unsigned int ct() const
The number of arguments.
virtual void transfer_poset_to_internal_buffer()
Initializes the internal buffer from the scaffold.
virtual bool is_ancestor_of(const any *other) const
Conformance test; true if other conforms to this.
void put_is_internal(bool xis_internal)
Sets is_internal to xis_internal.
virtual std::string name() const
The name of this poset.
SHEAF_DLL_SPEC void max(const vd &x0, vd_value_type &xresult, bool xauto_access)
Maximum component of x0, pre-allocated version.
primitive_type type() const
The type of the argument.
poset_state_handle & structure()
The handle for the poset being transferred. (Name chosen to void name conflict with class poset...
virtual void detach_from_state()
Detach this handle from its state, if any.
namespace_poset * name_space() const
The namespace this poset resides in.
virtual void put_dof_tuple(const void *xbuf, size_t xbuflen)
Copies the entire dof tuple from xbuf into internal storage.
schema_poset_member & internal_schema()
The schema of the poset in internal namespace (mutable version).
int_type pod_index_type
The plain old data index type.
virtual void get_dof_tuple(void *xbuf, size_t xbuflen) const
Copies the entire dof tuple from internal storage into xbuf.
A poset specific collection of data converters, various buffers and other data used while transferrin...
bool is_external() const
True if the external buffer has been initialized.
table_dof_tuple_record(const table_dof_tuple_record &xother)
Copy constructor.
An abstract wrapper/adapter for attributes records. Intended for transferring data between the kernel...
void convert_subposet_id_to_record_id(void *xbuf)
Converts namespace relative subposet id at location xbuf to namespace relative record id at location ...
An array representation of abstract class poset_dof_map.
void new_state(namespace_poset &xns, const poset_path &xpath, const schema_poset_member &xschema, array_poset_dof_map &xdof_map)
Creates a new poset state with schema xschema and table dof map xdof_map, attaches this to the state ...
SHEAF_DLL_SPEC bool is_valid(pod_index_type xpod_index)
True if an only if xpod_index is valid.
virtual ~table_dof_tuple_record()
Destructor.
const int PREREQ_IDS_UB
Number of prerequisites ids. Must be consistent with PREREQ_ID_*_INDEX below.
virtual array_poset_dof_map & table_dof_map(bool xrequire_write_access=false)
The map from table dof client_ids to table dof values for this poset (mutable version) ...
void put_is_external(bool xis_external)
Sets is_external to xis_external.
void convert_member_id_to_record_id(void *buf)
Converts namespace relative member id at location xbuf to namespace relative record id at location xb...