SheafSystem  0.0.0.0
sheaf::attributes_record Class Referenceabstract

An abstract wrapper/adapter for attributes records. Intended for transferring data between the kernel and the i/o subsystem. More...

#include <attributes_record.h>

Inheritance diagram for sheaf::attributes_record:
sheaf::variable_length_record sheaf::record sheaf::any sheaf::dof_tuple_class_names_record sheaf::dof_tuple_col_bounds_record sheaf::dof_tuple_domain_offsets_record sheaf::dof_tuple_schema_ids_record sheaf::dof_tuple_schema_versions_record sheaf::dof_tuple_types_record sheaf::id_space_names_record sheaf::member_class_names_record sheaf::member_names_record sheaf::poset_general_record sheaf::subposet_names_record sheaf::table_dof_tuple_record

Public Types

typedef char * hdf_buf_type
 The type of hdf buffer. More...
 

Public Member Functions

 attributes_record (const attributes_record &xother)
 Copy constructor. More...
 
virtual attributes_recordclone () const
 Virtual constructor; makes a new instance of the same type as this. More...
 
virtual ~attributes_record ()
 Destructor. More...
 
virtual bool invariant () const
 Class invariant. More...
 
virtual bool is_ancestor_of (const any *other) const
 Conformance test; true if other conforms to this. More...
 
 attributes_record (poset_scaffold &xscaffold)
 Creates an instance with type map xtype_map. More...
 
void internalize (hdf_buf_type *xhdf_buffer)
 Converts the record from external to internal form. More...
 
void externalize (hdf_buf_type *xhdf_buffer)
 Converts the record from internal to external form. More...
 
- Public Member Functions inherited from sheaf::variable_length_record
 variable_length_record (const variable_length_record &xother)
 Copy constructor. More...
 
virtual ~variable_length_record ()
 Destructor. More...
 
 variable_length_record (const poset_scaffold &xscaffold)
 Creates an instance with type map xtype_map. More...
 
void * buf () const
 The buffer. More...
 
size_t buf_ub () const
 The size of the buffer, in bytes. More...
 
- Public Member Functions inherited from sheaf::record
 record (const record &xother)
 Copy constructor. More...
 
virtual ~record ()
 Destructor. More...
 
 record (const poset_scaffold &xscaffold)
 Creates an instance with type map xtype_map. More...
 
record_index external_index () const
 The external index of this record. More...
 
void put_external_index (const record_index &xindex)
 Sets the index of this record to xindex. More...
 
poset_scaffoldscaffold ()
 The scaffold for the poset associated with this record (mutable version). More...
 
const poset_scaffoldscaffold () const
 The scaffold for the poset associated with this record (const version). More...
 
poset_data_type_maptype_map ()
 The data type map used to convert data for this record (mutable version). More...
 
const poset_data_type_maptype_map () const
 The data type map used to convert data for this record (const version). More...
 
- Public Member Functions inherited from sheaf::any
bool is_same_type (const any *other) const
 True if other is the same type as this. More...
 
virtual ~any ()
 Destructor. More...
 
bool invariant_check () const
 True if invariant checking is enabled. More...
 
void enable_invariant_check () const
 Enable invariant checking. More...
 
void disable_invariant_check () const
 Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing invariant checking during multi-phase initialization. More...
 
int disable_invariance_check_request_depth () const
 Number of times disable_invariant_check has been called without matching call to enable_invariant_check. More...
 

Protected Member Functions

void transfer_HDF_to_external_buffer (hdf_buf_type *xbuf)
 Initializes the external buffer from xbuf. More...
 
void transfer_external_buffer_to_HDF (hdf_buf_type *xbuf)
 Initializes the HDF buffer xbuf from the external buffer. More...
 
virtual void transfer_internal_buffer_to_poset ()=0
 Initializes scaffold from the internal buffer. More...
 
virtual void transfer_poset_to_internal_buffer ()=0
 Initializes the internal buffer from the scaffold. More...
 
void convert_external_buffer_to_internal_buffer ()
 Converts the external buffer to internal form and places the result in the internal buffer. More...
 
void convert_internal_buffer_to_external_buffer ()
 Converts the internal buffer to external form and places the result in the external buffer. More...
 
- Protected Member Functions inherited from sheaf::variable_length_record
void put_buf (const void *xbuf, size_t xub)
 Sets the buffer to xbuf. More...
 
bool delete_buffer ()
 True if this allocated the buffer and the dtor should delete it. More...
 
void put_delete_buffer (bool xval)
 Sets delete_buffer to value xval. More...
 
void * item (size_t xoffset) const
 Pointer to record item beginning at offset xoffset. More...
 
bool is_internal () const
 True if the internal buffer has been initialized. More...
 
void put_is_internal (bool xis_internal)
 Sets is_internal to xis_internal. More...
 
bool is_external () const
 True if the external buffer has been initialized. More...
 
void put_is_external (bool xis_external)
 Sets is_external to xis_external. More...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 

Protected Attributes

std::string _str_buf
 The internal/external buffer. More...
 

Detailed Description

An abstract wrapper/adapter for attributes records. Intended for transferring data between the kernel and the i/o subsystem.

Definition at line 43 of file attributes_record.h.

Member Typedef Documentation

◆ hdf_buf_type

The type of hdf buffer.

Definition at line 50 of file attributes_record.h.

Constructor & Destructor Documentation

◆ attributes_record() [1/2]

sheaf::attributes_record::attributes_record ( const attributes_record xother)

Copy constructor.

Not Implemented.

Postcondition

Definition at line 35 of file attributes_record.cc.

References clone(), and invariant().

Referenced by is_ancestor_of().

◆ ~attributes_record()

sheaf::attributes_record::~attributes_record ( )
virtual

Destructor.

Definition at line 81 of file attributes_record.cc.

References invariant().

Referenced by clone().

◆ attributes_record() [2/2]

sheaf::attributes_record::attributes_record ( poset_scaffold xscaffold)

Creates an instance with type map xtype_map.

Postcondition

Definition at line 160 of file attributes_record.cc.

References internalize(), and invariant().

Member Function Documentation

◆ clone()

◆ convert_external_buffer_to_internal_buffer()

void sheaf::attributes_record::convert_external_buffer_to_internal_buffer ( )
protected

◆ convert_internal_buffer_to_external_buffer()

void sheaf::attributes_record::convert_internal_buffer_to_external_buffer ( )
protected

◆ externalize()

void sheaf::attributes_record::externalize ( hdf_buf_type xhdf_buffer)

◆ internalize()

void sheaf::attributes_record::internalize ( hdf_buf_type xhdf_buffer)

Converts the record from external to internal form.

Precondition
Postcondition

Definition at line 182 of file attributes_record.cc.

References convert_external_buffer_to_internal_buffer(), externalize(), sheaf::variable_length_record::is_external(), sheaf::variable_length_record::is_internal(), sheaf::record::scaffold(), transfer_HDF_to_external_buffer(), and transfer_internal_buffer_to_poset().

Referenced by attributes_record(), and sheaf::attributes_record_set::internalize().

◆ invariant()

◆ is_ancestor_of()

◆ transfer_external_buffer_to_HDF()

void sheaf::attributes_record::transfer_external_buffer_to_HDF ( hdf_buf_type xbuf)
protected

Initializes the HDF buffer xbuf from the external buffer.

Precondition
  • xbuf != 0
Hack:
the hdf type H5T_C_S1 with len set to H5T_VARIABLE hides the hdf variable length data type hvl_t, so this class doesn't quite fit the structure provided by base class variable_length_record. Make it work anyway. See also attributes_record_set::create_dataset.
Postcondition

Definition at line 287 of file attributes_record.cc.

References sheaf::variable_length_record::buf(), sheaf::variable_length_record::is_external(), and transfer_internal_buffer_to_poset().

Referenced by externalize(), and transfer_HDF_to_external_buffer().

◆ transfer_HDF_to_external_buffer()

void sheaf::attributes_record::transfer_HDF_to_external_buffer ( hdf_buf_type xbuf)
protected

Initializes the external buffer from xbuf.

Precondition
  • xbuf != 0
Hack:
the hdf type H5T_C_S1 with len set to H5T_VARIABLE hides the hdf variable length data type hvl_t, so this class doesn't quite fit the structure provided by base class variable_length_record. Make it work anyway. See also attributes_record_set::create_dataset.
Postcondition
  • !is_internal()

Definition at line 253 of file attributes_record.cc.

References sheaf::variable_length_record::buf(), sheaf::variable_length_record::buf_ub(), sheaf::variable_length_record::is_external(), sheaf::variable_length_record::is_internal(), sheaf::variable_length_record::put_buf(), sheaf::variable_length_record::put_is_external(), sheaf::variable_length_record::put_is_internal(), and transfer_external_buffer_to_HDF().

Referenced by externalize(), and internalize().

◆ transfer_internal_buffer_to_poset()

void sheaf::attributes_record::transfer_internal_buffer_to_poset ( )
protectedpure virtual

◆ transfer_poset_to_internal_buffer()

Member Data Documentation

◆ _str_buf

std::string sheaf::attributes_record::_str_buf
protected

The internal/external buffer.

Definition at line 137 of file attributes_record.h.

Referenced by convert_external_buffer_to_internal_buffer(), convert_internal_buffer_to_external_buffer(), sheaf::table_dof_tuple_record::transfer_internal_buffer_to_poset(), sheaf::subposet_names_record::transfer_internal_buffer_to_poset(), sheaf::id_space_names_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_schema_ids_record::transfer_internal_buffer_to_poset(), sheaf::member_class_names_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_col_bounds_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_schema_versions_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_types_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_class_names_record::transfer_internal_buffer_to_poset(), sheaf::dof_tuple_domain_offsets_record::transfer_internal_buffer_to_poset(), sheaf::member_names_record::transfer_internal_buffer_to_poset(), sheaf::poset_general_record::transfer_internal_buffer_to_poset(), sheaf::table_dof_tuple_record::transfer_poset_to_internal_buffer(), sheaf::id_space_names_record::transfer_poset_to_internal_buffer(), sheaf::subposet_names_record::transfer_poset_to_internal_buffer(), sheaf::dof_tuple_domain_offsets_record::transfer_poset_to_internal_buffer(), sheaf::member_class_names_record::transfer_poset_to_internal_buffer(), sheaf::dof_tuple_types_record::transfer_poset_to_internal_buffer(), sheaf::dof_tuple_schema_versions_record::transfer_poset_to_internal_buffer(), sheaf::dof_tuple_class_names_record::transfer_poset_to_internal_buffer(), sheaf::dof_tuple_schema_ids_record::transfer_poset_to_internal_buffer(), sheaf::dof_tuple_col_bounds_record::transfer_poset_to_internal_buffer(), sheaf::member_names_record::transfer_poset_to_internal_buffer(), and sheaf::poset_general_record::transfer_poset_to_internal_buffer().


The documentation for this class was generated from the following files: