#include <bit/record.h>
FOLDOC defines record as: "An ordered set of fields, usually stored contiguously. ... Some programming languages use the term to mean a type composed of fields of several other types (C calls this a "struct")."
In the context of the bit library, a record stores an ordered set of bit::Field types.
The Record class extends the RecordBase by providing storage for Field objects as well as providing the concept of a name and description strings.
Public Types | |
typedef BitPointer< Record > | pointer |
Convenience typedef to a smart pointer to bit::Record. | |
Public Member Functions | |
Record (std::string name="", size_t length_units=BITS, int offset=0, size_t offset_units=BITS, std::string descr="") | |
Default constructor. | |
virtual | ~Record () |
Destructor. | |
virtual size_t | length () const |
virtual size_t | length (size_t units) const |
virtual const std::string & | xml () |
virtual iterator | begin () |
virtual iterator | end () |
virtual size_t | subfields () |
virtual FieldBase::pointer | subfield (const std::string &s) |
virtual FieldBase::pointer | subfield (size_t i) |
virtual void | add_field (FieldBase::pointer field) |
virtual void | remove_field (FieldBase::pointer field) |
virtual void | remove_field (const std::string &name) |
virtual FieldBase::pointer | clone () |
virtual Container | container_type () |
Static Public Member Functions | |
static Record::pointer | create (std::string name="", size_t length_units=BITS, int offset=0, size_t offset_units=BITS, std::string descr="") |
Static method returns a smart pointer to a new Record object. | |
Protected Member Functions | |
virtual FieldBase::pointer | previous_field (FieldBase::pointer current_field) throw (exception::invalid_container_op) |
virtual FieldBase::pointer | next_field (FieldBase::pointer current_field) throw (exception::invalid_container_op) |
Protected Attributes | |
RecordStorage | m_subfields |
typedef BitPointer<Record> bit::Record::pointer |
bit::Record::Record | ( | std::string | name = "" , |
|
size_t | length_units = BITS , |
|||
int | offset = 0 , |
|||
size_t | offset_units = BITS , |
|||
std::string | descr = "" | |||
) |
bit::Record::~Record | ( | ) | [virtual] |
Destructor.
Record::pointer bit::Record::create | ( | std::string | name = "" , |
|
size_t | length_units = BITS , |
|||
int | offset = 0 , |
|||
size_t | offset_units = BITS , |
|||
std::string | descr = "" | |||
) | [static] |
Static method returns a smart pointer to a new Record object.
References Record().
Referenced by clone(), and bit::xml_read_record().
size_t bit::Record::length | ( | ) | const [virtual] |
Implements bit::FieldBase.
References bit::BITS, bit::RecordStorage::field_set, bit::RecordBase::m_length_units, m_subfields, and WHOLE_UNITS.
size_t bit::Record::length | ( | size_t | units | ) | const [virtual] |
const std::string & bit::Record::xml | ( | ) | [virtual] |
Implements bit::FieldBase.
References bit::RecordStorage::begin(), bit::RecordStorage::end(), bit::RecordBase::m_length_units, bit::RecordBase::m_name, bit::RecordBase::m_offset, bit::RecordBase::m_offset_units, m_subfields, bit::RecordBase::m_type, bit::FieldBase::m_xml, bit::FieldType::type(), bit::TYPE_NONE, and bit::FieldType::xml().
FieldBase::iterator bit::Record::begin | ( | ) | [virtual] |
FieldBase::iterator bit::Record::end | ( | ) | [virtual] |
size_t bit::Record::subfields | ( | ) | [virtual] |
FieldBase::pointer bit::Record::subfield | ( | const std::string & | s | ) | [virtual] |
FieldBase::pointer bit::Record::subfield | ( | size_t | i | ) | [virtual] |
void bit::Record::add_field | ( | FieldBase::pointer | field | ) | [virtual] |
void bit::Record::remove_field | ( | FieldBase::pointer | field | ) | [virtual] |
References m_subfields, and bit::RecordStorage::remove_field().
void bit::Record::remove_field | ( | const std::string & | name | ) | [virtual] |
FieldBase::pointer bit::Record::clone | ( | ) | [virtual] |
virtual Container bit::Record::container_type | ( | ) | [inline, virtual] |
FieldBase::pointer bit::Record::previous_field | ( | FieldBase::pointer | current_field | ) | throw (exception::invalid_container_op) [protected, virtual] |
Reimplemented from bit::FieldBase.
References m_subfields, and bit::RecordStorage::previous_field().
FieldBase::pointer bit::Record::next_field | ( | FieldBase::pointer | current_field | ) | throw (exception::invalid_container_op) [protected, virtual] |
RecordStorage bit::Record::m_subfields [protected] |
Referenced by add_field(), begin(), end(), length(), next_field(), previous_field(), remove_field(), subfield(), subfields(), and xml().