20 #ifndef MEMBER_RECORD_H 21 #define MEMBER_RECORD_H 23 #ifndef SHEAF_DLL_SPEC_H 24 #include "SheafSystem/sheaf_dll_spec.h" 28 #include "SheafSystem/block.h" 32 #include "SheafSystem/std_bitset.h" 36 #include "SheafSystem/std_limits.h" 39 #ifndef VARIABLE_LENGTH_RECORD_H 40 #include "SheafSystem/variable_length_record.h" 46 class member_record_set;
47 class poset_dof_iterator;
87 bool is_resident()
const;
100 typedef std::bitset<std::numeric_limits<pod_index_type>::digits> toc_type;
105 enum toc_bit_field_type
120 HAS_TOC_SUBPOSET_IDS,
127 SUBPOSET_BITS_END = std::numeric_limits<pod_index_type>::digits - 1,
128 LAST_BIT = SUBPOSET_BITS_END
211 void new_equivalence_iterator();
216 void delete_equivalence_iterator();
221 bool has_equivalence_iterator()
const;
300 void externalize(
const scoped_index& xmbr_id, hvl_t* xhdf_buffer);
307 void transfer_member_to_internal_buffer(
const scoped_index& xmbr_id);
312 void clear_internal_buffer();
317 void transfer_member_to_toc(
const scoped_index& xmbr_id);
322 void transfer_interval_to_private_data(
const scoped_index& xmbr_id);
327 void transfer_member_to_dof_tuple_ids(
const scoped_index& xmbr_id);
332 void transfer_interval_to_dof_tuple_ids(
const scoped_index& xmbr_id);
337 void transfer_member_to_lower_cover(
const scoped_index& xmbr_id);
342 void transfer_member_to_upper_cover(
const scoped_index& xmbr_id);
347 void transfer_member_to_subposet_ids(
const scoped_index& xmbr_id);
352 void transfer_member_to_eqv_ids(
const scoped_index& xmbr_id);
357 void transfer_member_to_names(
const scoped_index& xmbr_id);
362 void transfer_interval_to_class_names(
const scoped_index& xmbr_id);
368 void convert_internal_buffer_to_external_buffer();
373 virtual void initialize_external_buffer();
378 void externalize_toc(
size_t& xnext_field_offset);
383 void externalize_private_data_ct(
size_t& xnext_field_offset);
388 void externalize_private_data(
size_t& xnext_field_offset);
393 void externalize_dof_tuple_ids_ct(
size_t& xnext_field_offset);
398 void externalize_dof_tuple_ids(
size_t& xnext_field_offset);
403 void externalize_lower_cover_ct(
size_t& xnext_field_offset);
408 void externalize_lower_cover(
size_t& xnext_field_offset);
413 void externalize_upper_cover_ct(
size_t& xnext_field_offset);
418 void externalize_upper_cover(
size_t& xnext_field_offset);
423 void externalize_subposet_ids_ct(
size_t& xnext_field_offset);
428 void externalize_subposet_ids(
size_t& xnext_field_offset);
433 void externalize_eqv_ids(
size_t& xnext_field_offset);
438 void transfer_external_buffer_to_HDF(hvl_t* xbuf);
449 void internalize(hvl_t* xhdf_buffer,
const scoped_index& xmbr_id);
456 void transfer_HDF_to_external_buffer(hvl_t* xbuf);
462 void convert_external_buffer_to_internal_buffer();
467 void internalize_toc(
size_t& xnext_field_offset);
472 void internalize_private_data_ct(
size_t& xnext_field_offset);
477 void internalize_private_data(
size_t& xnext_field_offset);
482 void internalize_dof_tuple_ids_ct(
size_t& xnext_field_offset);
487 void internalize_dof_tuple_ids(
size_t& xnext_field_offset);
492 void internalize_lower_cover_ct(
size_t& xnext_field_offset);
497 void internalize_lower_cover(
size_t& xnext_field_offset);
502 void internalize_upper_cover_ct(
size_t& xnext_field_offset);
507 void internalize_upper_cover(
size_t& xnext_field_offset);
512 void internalize_subposet_ids_ct(
size_t& xnext_field_offset);
517 void internalize_subposet_ids(
size_t& xnext_field_offset);
522 void internalize_eqv_ids(
size_t& xnext_field_offset);
527 void transfer_internal_buffer_to_member(
const scoped_index& xmbr_id);
532 void transfer_toc_to_member(
const scoped_index& xmbr_id);
537 void transfer_private_data_to_interval(
const scoped_index& xmbr_id);
542 void transfer_dof_tuple_ids_to_interval(
const scoped_index& xmbr_id);
547 void transfer_dof_tuple_ids_to_member(
const scoped_index& xmbr_id);
557 void transfer_lower_cover_to_member(
const scoped_index& xmbr_id);
562 void transfer_upper_cover_to_member(
const scoped_index& xmbr_id);
572 void transfer_subposet_ids_to_member(
const scoped_index& xmbr_id);
577 void transfer_eqv_ids_to_member(
const scoped_index& xmbr_id);
582 void transfer_names_to_member(
const scoped_index& xmbr_id);
616 virtual bool invariant()
const;
621 virtual bool is_ancestor_of(
const any* other)
const;
627 #endif // ifndef MEMBER_RECORD_H A client handle for a general, abstract partially order set.
The general variable length record wrapper/adapter for transferring data between the kernel and the i...
Abstract implementation of crg_interval for an interval of implicit cover relation graph members...
Abstract base class with useful features for all objects.
A record_set containing records of type member_record.
A record buffer for transferring member data between the kernel and the i/o subsystem.
Struct representing the closed interval [_begin, _end].
An index within the external ("client") scope of a given id space.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
int_type pod_index_type
The plain old data index type.
Namespace for the sheaves component of the sheaf system.
An iterator over members of an id equivalence class.