Simpatico  v1.10
List of all members | Public Member Functions | Protected Attributes
Util::FSArray< Data, Capacity > Class Template Reference

Detailed Description

template<typename Data, int Capacity>
class Util::FSArray< Data, Capacity >

A fixed capacity (static) contiguous array with a variable logical size.

An FSArray < Data, Capacity > is a wrapper for a statically allocated C array containing Capacity objects of type Data. An FSArray has both a Capacity that is set at compile time, which is the physical size of the underlying C array, and a logical size, which is the number of contiguous elements (from 0 to one less than its size) that contain valid data. The size is initialized to zero, and can only be increased only by the append() method, which adds a new element to the end of the array.

When compiled in debug mode (i.e., when NDEBUG is defined) the subcript operator [] checks that the index is less than the logical size, and not merely less than the capacity.

Definition at line 37 of file FSArray.h.

#include <FSArray.h>

Public Member Functions

 FSArray ()
 Constructor. More...
 
 FSArray (const FSArray< Data, Capacity > &other)
 Copy constructor. More...
 
FSArray< Data, Capacity > & operator= (const FSArray< Data, Capacity > &other)
 Assignment, element by element. More...
 
virtual ~FSArray ()
 Destructor. More...
 
int capacity () const
 Return physical capacity of array. More...
 
int size () const
 Return logical size of this array (i.e., number of elements). More...
 
void begin (ArrayIterator< Data > &iterator)
 Set an ArrayIterator to the beginning of this container. More...
 
void begin (ConstArrayIterator< Data > &iterator) const
 Set a ConstArrayIterator to the beginning of this container. More...
 
Data & operator[] (int i)
 Mimic C array subscripting. More...
 
const Data & operator[] (int i) const
 Mimic C array subscripting. More...
 
void append (const Data &data)
 Append data to the end of the array. More...
 
void clear ()
 Set logical size to zero. More...
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 Serialize to/from an archive. More...
 
int packedSize ()
 Packed size of FSArray in a MemoryArchive, in bytes. More...
 

Protected Attributes

Data data_ [Capacity]
 Array of Data elements. More...
 
int size_
 Logical size of array (number of elements used). More...
 

Constructor & Destructor Documentation

template<class Data , int Capacity>
Util::FSArray< Data, Capacity >::FSArray ( )
inline

Constructor.

Definition at line 148 of file FSArray.h.

template<class Data, int Capacity>
Util::FSArray< Data, Capacity >::FSArray ( const FSArray< Data, Capacity > &  other)

Copy constructor.

Parameters
otherthe FSArray to be copied.

Definition at line 158 of file FSArray.h.

References Util::FSArray< Data, Capacity >::data_, and Util::FSArray< Data, Capacity >::size_.

template<class Data , int Capacity>
Util::FSArray< Data, Capacity >::~FSArray ( )
virtual

Destructor.

Definition at line 193 of file FSArray.h.

Member Function Documentation

template<class Data, int Capacity>
FSArray< Data, Capacity > & Util::FSArray< Data, Capacity >::operator= ( const FSArray< Data, Capacity > &  other)

Assignment, element by element.

Capacity of LHS FSArray must be >= size of RHS FSArray.

Parameters
otherthe RHS FSArray

Definition at line 175 of file FSArray.h.

References Util::FSArray< Data, Capacity >::data_, and Util::FSArray< Data, Capacity >::size_.

template<class Data , int Capacity>
int Util::FSArray< Data, Capacity >::capacity ( ) const

Return physical capacity of array.

Definition at line 200 of file FSArray.h.

Referenced by Util::PointGroup::makeStar().

template<class Data , int Capacity>
int Util::FSArray< Data, Capacity >::size ( ) const

Return logical size of this array (i.e., number of elements).

Definition at line 207 of file FSArray.h.

References Util::FSArray< Data, Capacity >::size_.

Referenced by McMd::CfbEndBase::addEndAtom(), McMd::BondPotentialImpl< Interaction >::atomEnergy(), McMd::McPairPotentialImpl< Interaction >::atomEnergy(), McMd::DihedralPotentialImpl< Interaction >::atomEnergy(), McMd::AnglePotentialImpl< Interaction >::atomEnergy(), McMd::Generator::attemptPlaceAtom(), DdMd::PairList::build(), McMd::PairList::build(), McMd::McPairPotentialImpl< Interaction >::computeEnergy(), DdMd::PairPotentialImpl< Interaction >::computeEnergy(), McMd::Activate::deactivate(), McMd::CfbEndBase::deleteEndAtom(), McMd::McPairExternalPerturbation< PairInteraction, ExternalInteraction >::derivative(), McMd::McPairPerturbation< Interaction >::derivative(), McMd::getAtomAngles(), McMd::getAtomBonds(), McMd::getAtomDihedrals(), DdMd::Cell::getNeighbors(), McMd::ClusterIdentifier::initialize(), Util::PointGroup::makeStar(), McMd::McPairPotentialImpl< Interaction >::moleculeEnergy(), McMd::Sliplinker::move(), McMd::SliplinkerAll::move(), McMd::SliplinkerEnd::move(), McMd::GcSliplinkMove::move(), McMd::SliplinkMove::move(), DdMd::PairPotential::nPair(), McMd::Activate::reactivate(), McMd::StructureFactorPGrid::readParameters(), McMd::StructureFactorGrid::readParameters(), DdMd::StructureFactorGrid::readParameters(), McMd::IntraStructureFactorGrid::readParameters(), McMd::Crosslinker::sample(), McMd::McMuExchange::sample(), Tools::PairEnergy::sample(), McMd::McPairEnergyAverage::sample(), McMd::StructureFactorPGrid::save(), McMd::RingOctaRebridgeMove::scanBridge(), and McMd::GroupRebridgeBase::tetraEnergy().

template<class Data, int Capacity>
void Util::FSArray< Data, Capacity >::begin ( ArrayIterator< Data > &  iterator)

Set an ArrayIterator to the beginning of this container.

Parameters
iteratorArrayIterator, initialized on output.

Definition at line 216 of file FSArray.h.

References Util::FSArray< Data, Capacity >::data_, Util::ArrayIterator< Data >::setCurrent(), Util::ArrayIterator< Data >::setEnd(), and Util::FSArray< Data, Capacity >::size_.

template<class Data, int Capacity>
void Util::FSArray< Data, Capacity >::begin ( ConstArrayIterator< Data > &  iterator) const
template<class Data , int Capacity>
Data & Util::FSArray< Data, Capacity >::operator[] ( int  i)

Mimic C array subscripting.

Parameters
iarray index
Returns
reference to element i

Definition at line 236 of file FSArray.h.

References Util::FSArray< Data, Capacity >::data_, and Util::FSArray< Data, Capacity >::size_.

template<class Data , int Capacity>
const Data & Util::FSArray< Data, Capacity >::operator[] ( int  i) const

Mimic C array subscripting.

Parameters
iarray index
Returns
const reference to element i

Definition at line 247 of file FSArray.h.

References Util::FSArray< Data, Capacity >::data_, and Util::FSArray< Data, Capacity >::size_.

template<class Data, int Capacity>
void Util::FSArray< Data, Capacity >::append ( const Data &  data)
inline
template<class Data , int Capacity>
void Util::FSArray< Data, Capacity >::clear ( )
inline
template<class Data , int Capacity>
template<class Archive >
void Util::FSArray< Data, Capacity >::serialize ( Archive &  ar,
const unsigned int  version 
)
inline

Serialize to/from an archive.

Parameters
ararchive
versionarchive version id

Definition at line 279 of file FSArray.h.

References Util::FSArray< Data, Capacity >::data_, Util::FSArray< Data, Capacity >::size_, and UTIL_THROW.

template<typename Data , int Capacity>
int Util::FSArray< Data, Capacity >::packedSize ( )
inline

Packed size of FSArray in a MemoryArchive, in bytes.

Definition at line 295 of file FSArray.h.

Member Data Documentation

template<typename Data, int Capacity>
Data Util::FSArray< Data, Capacity >::data_[Capacity]
protected
template<typename Data, int Capacity>
int Util::FSArray< Data, Capacity >::size_
protected

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