seven bits

bit::Record Class Reference
["Record Definitions"]

#include <bit/record.h>

Inheritance diagram for bit::Record:

bit::RecordBase bit::FieldBase

List of all members.


Detailed Description

bit::Record is a tree of bit::Field and bit::Record types sorted by their starting bit positions.

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.

Author:
Rick L. Vinyard, Jr.

Public Types

typedef BitPointer< Recordpointer
 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

Member Typedef Documentation

typedef BitPointer<Record> bit::Record::pointer

Convenience typedef to a smart pointer to bit::Record.

Reimplemented from bit::RecordBase.


Constructor & Destructor Documentation

bit::Record::Record ( std::string  name = "",
size_t  length_units = BITS,
int  offset = 0,
size_t  offset_units = BITS,
std::string  descr = "" 
)

Default constructor.

References bit::RecordBase::set_name().

Referenced by create().

bit::Record::~Record (  )  [virtual]

Destructor.


Member Function Documentation

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]

Returns:
the length of this object in it's length units

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]

Reimplemented from bit::FieldBase.

References bit::FieldBase::length().

const std::string & bit::Record::xml (  )  [virtual]

FieldBase::iterator bit::Record::begin (  )  [virtual]

Reimplemented from bit::FieldBase.

References bit::RecordStorage::begin(), and m_subfields.

FieldBase::iterator bit::Record::end (  )  [virtual]

Reimplemented from bit::FieldBase.

References bit::RecordStorage::end(), and m_subfields.

size_t bit::Record::subfields (  )  [virtual]

Reimplemented from bit::FieldBase.

References m_subfields, and bit::RecordStorage::subfields().

FieldBase::pointer bit::Record::subfield ( const std::string &  s  )  [virtual]

Reimplemented from bit::FieldBase.

References m_subfields, and bit::RecordStorage::subfield().

FieldBase::pointer bit::Record::subfield ( size_t  i  )  [virtual]

Reimplemented from bit::FieldBase.

References m_subfields, and bit::RecordStorage::subfield().

void bit::Record::add_field ( FieldBase::pointer  field  )  [virtual]

void bit::Record::remove_field ( FieldBase::pointer  field  )  [virtual]

void bit::Record::remove_field ( const std::string &  name  )  [virtual]

FieldBase::pointer bit::Record::clone (  )  [virtual]

Implements bit::FieldBase.

References create(), and bit::RecordBase::m_type.

virtual Container bit::Record::container_type (  )  [inline, virtual]

Implements bit::FieldBase.

References bit::RECORD.

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]

Reimplemented from bit::FieldBase.

References m_subfields, and bit::RecordStorage::next_field().


Member Data Documentation


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

Generated on Mon Nov 3 10:50:01 2008 for bit by doxygen 1.5.6