seven bits

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

#include <bit/fieldvector.h>

Inheritance diagram for bit::FieldVector:

bit::Field bit::FieldBase

List of all members.


Detailed Description

A Field identifies a starting point and a length.

This class extends FieldBase by including a name and a description.

Author:
Rick L. Vinyard, Jr.

Public Types

typedef BitPointer< FieldVectorpointer

Public Member Functions

 FieldVector (std::string name="", size_t vector_size=0, size_t element_length=0, size_t element_length_units=BITS, int offset=0, size_t offset_units=BITS, std::string descr="")
 Contains a vector of fields.
virtual ~FieldVector ()
virtual const std::string & xml ()
size_t length () const
size_t length (size_t units) const
size_t element_length () const
size_t vector_size () const
void set_vector_size (size_t vector_size)
virtual iterator begin ()
virtual iterator end ()
virtual size_t subfields ()
 Returns the size of this vector.
virtual FieldBase::pointer subfield (const std::string &subfield_name)
 Subfield name must the unsigned integer index of the subfield element to return.
virtual FieldBase::pointer subfield (size_t i)
 The element index of the subfield to return.
virtual FieldBase::pointer clone ()
virtual Container container_type ()

Static Public Member Functions

static FieldVector::pointer create (std::string name="", size_t vector_size=0, size_t element_length=0, size_t element_length_units=BITS, int offset=0, size_t offset_units=BITS, std::string descr="")

Protected Types

typedef std::vector
< Element::pointer
Elements

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

size_t m_size
Elements m_elements

Classes

class  Element
 Element is an base element in a field vector. More...

Member Typedef Documentation

Reimplemented from bit::Field.

typedef std::vector<Element::pointer> bit::FieldVector::Elements [protected]


Constructor & Destructor Documentation

bit::FieldVector::FieldVector ( std::string  name = "",
size_t  vector_size = 0,
size_t  element_length = 0,
size_t  element_length_units = BITS,
int  offset = 0,
size_t  offset_units = BITS,
std::string  descr = "" 
)

Contains a vector of fields.

This class is provided to allow for efficient implementation of large arrays without allocating a field instance for each element of the vector.

Parameters:
name The base name of this vector
vector_size The number of elements of this vector
element_length The length of each element in units
offset The offset of the vector only, not of each element. After the initial offset the vector is considered to be packed.

References set_vector_size().

Referenced by create().

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


Member Function Documentation

FieldVector::pointer bit::FieldVector::create ( std::string  name = "",
size_t  vector_size = 0,
size_t  element_length = 0,
size_t  element_length_units = BITS,
int  offset = 0,
size_t  offset_units = BITS,
std::string  descr = "" 
) [static]

References FieldVector().

Referenced by clone(), and bit::xml_read_field().

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

size_t bit::FieldVector::length (  )  const [virtual]

Reimplemented from bit::Field.

References bit::Field::m_length, and m_size.

size_t bit::FieldVector::length ( size_t  units  )  const [virtual]

Reimplemented from bit::Field.

References bit::FieldBase::length().

size_t bit::FieldVector::element_length (  )  const

size_t bit::FieldVector::vector_size (  )  const

References m_size.

void bit::FieldVector::set_vector_size ( size_t  vector_size  ) 

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

Reimplemented from bit::FieldBase.

References end(), m_elements, and m_size.

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

Reimplemented from bit::FieldBase.

Referenced by begin().

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

Returns the size of this vector.

Reimplemented from bit::FieldBase.

References m_size.

FieldBase::pointer bit::FieldVector::subfield ( const std::string &  subfield_name  )  [virtual]

Subfield name must the unsigned integer index of the subfield element to return.

The index may be included in [], as in '[0]' or '[11]' or may simply be the numeric representation as in '0' or '11'.

Reimplemented from bit::FieldBase.

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

The element index of the subfield to return.

Reimplemented from bit::FieldBase.

References m_elements, and m_size.

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

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

Reimplemented from bit::Field.

References bit::FIELD_VECTOR.

FieldBase::pointer bit::FieldVector::previous_field ( FieldBase::pointer  current_field  )  throw (exception::invalid_container_op) [protected, virtual]

Reimplemented from bit::FieldBase.

References bit_dynamic_pointer_cast, and m_elements.

FieldBase::pointer bit::FieldVector::next_field ( FieldBase::pointer  current_field  )  throw (exception::invalid_container_op) [protected, virtual]

Reimplemented from bit::FieldBase.

References bit_dynamic_pointer_cast, m_elements, and m_size.


Member Data Documentation

size_t bit::FieldVector::m_size [protected]


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