fesa-core
7.0.0
|
FieldArray template class for arrays of various numeric types and structure types. More...
#include <FieldArray.h>
Public Types | |
typedef T | value_type |
data type stored in the field array | |
Public Member Functions | |
FieldArray (const FieldConfig &fieldConfig, DataStore *pDataStore, std::size_t size) | |
Constructor. More... | |
~FieldArray () | |
destructor | |
std::size_t | getMaxSize () const |
retrieve the size of the array More... | |
Public Member Functions inherited from fesa::AbstractField | |
virtual | ~AbstractField () |
destructor | |
AbstractMultiplexingManager * | getMultiplexingManager () |
uint32_t | getMuxDepth () const |
bool | isMultiplexed () const |
const std::string & | getName () const |
FieldCategory | getType () const |
bool | isPersistent () const |
bool | isShared () const |
virtual std::string | getAsString (const MultiplexingContext *context) const =0 |
Method to retrieve the value of the field converted to string. More... | |
std::string | getAttributeAsStringByName (const std::string &attribute, MultiplexingContext *context=NULL) |
Method to retrieve the struct attribute value converted to string. More... | |
Protected Member Functions | |
std::size_t | getFieldValueSize () const |
std::size_t | getFieldValueAlignment () const |
std::size_t | getFieldValueDataOffset () const |
virtual void | initializeDimensions (const boost::shared_ptr< FieldElement > &fieldElement) |
used to initialize dimensions of the field from the instance document More... | |
virtual void | setFieldValueAddress (char *pFV, bool initFieldsFlag) |
Maps an address in shared memory or on the heap to the field value member of the field class. More... | |
void | checkMaxDimension (std::size_t size) const |
this method checks whether the size passed by parameter is within the max size of the array. If it is not, the method throws a FesaException More... | |
void | checkIndexBounds (const FieldValueArray< T > &fieldValue, std::size_t index) const |
FieldValueArray< T > * | getFieldValue (int32_t slot) |
Get the field's value for a given slot. More... | |
virtual void | copyValue (uint32_t slot, const std::string &str) |
this method puts in the slot the value passed by parameter in the corresponding format More... | |
virtual void | getValueToStore (int32_t slot, std::string &str) const |
void | setFieldValue (FieldValueArray< T > &fieldValue, const T *val, std::size_t size) |
template<typename RandomAccessIterator > | |
void | setFieldValue (FieldValueArray< T > &fieldValue, RandomAccessIterator first, RandomAccessIterator last) |
void | setCellValue (FieldValueArray< T > &fieldValue, const T &val, std::size_t index) |
const T & | getCellRef (const FieldValueArray< T > &fieldValue, std::size_t index) const |
Protected Member Functions inherited from fesa::AbstractField | |
virtual void | initializeDefaultValue (const std::string &value) |
Initialize the default value with a value provided in the instantiation file. More... | |
void | setMultiplexingManager (AbstractMultiplexingManager *muxManager) |
changes the multiplexing manager of the field. More... | |
void | setDataIntegrity (DataIntegrity dataIntegrity) |
changes the data integrity value of the field | |
void | restore (const PersistanceFieldElement &fieldElement, bool ignoreInvalidValues) |
gives the value to the field from the field element This method should be used to populate the fields at instantiation More... | |
void | store (PersistanceFieldElement &fieldElement) |
Used to persist fields. More... | |
AbstractField (const FieldConfig &fieldConfig, DataStore *dataStore) | |
Constructor. More... | |
template<typename T > | |
T * | getSlotPointer (void *baseAddress, std::size_t slot) |
template<typename T > | |
const T * | getSlotPointer (const void *baseAddress, std::size_t slot) const |
virtual void | getAttributeValueToStore (int32_t slot, const std::string &attribute, std::string &str) |
template<typename T > | |
void | validateValue (const T &value) const |
template<typename T > | |
void | validateValues (const T *values, const std::size_t count) const |
void | setMultiplexed (bool multiplexed) |
changes the multiplexing status | |
Protected Attributes | |
std::size_t | maxSize_ |
maximum size of the array | |
FieldValueArray< T > * | fieldValue_ |
value of field in the first slot | |
Protected Attributes inherited from fesa::AbstractField | |
std::string | name_ |
name of the field | |
FieldCategory | fieldCategory_ |
category of the field (Acquisition, Generic, Setting or Configuration) | |
bool | multiplexed_ |
true if the field is multiplexed | |
bool | shared_ |
flag that indicates whether field is shared byt RT and Server | |
bool | persistent_ |
flag that indicates whether field is persistent | |
DataIntegrity | buffer_ |
type of buffer of the field | |
AbstractMultiplexingManager * | multiplexingManager_ |
multiplexing manager of the field | |
DataStore * | dataStore_ |
The data store this field belongs to. | |
std::size_t | valueSize_ |
size of the value | |
Additional Inherited Members | |
Static Public Attributes inherited from fesa::AbstractField | |
static const std::size_t | INVALID_SIZE = std::numeric_limits<std::size_t>::max() |
FieldArray template class for arrays of various numeric types and structure types.
fesa::FieldArray< T >::FieldArray | ( | const FieldConfig & | fieldConfig, |
DataStore * | pDataStore, | ||
std::size_t | size | ||
) |
Constructor.
name | of the field, field category, multiplexing criterion, pointer to DataStore |
size | of the array |
|
protected |
Ensures that index is within the current size of the given fieldValue.
FesaException | if index is out of bounds. |
|
protected |
this method checks whether the size passed by parameter is within the max size of the array. If it is not, the method throws a FesaException
FesaException |
|
protectedvirtual |
this method puts in the slot the value passed by parameter in the corresponding format
slot | to put the value |
val | value to put |
Implements fesa::AbstractField.
Reimplemented in fesa::FieldFunctionList.
|
protected |
Returns a reference to the fieldValue's cell at the given index.
|
protectedvirtual |
Get the field's value for a given slot.
slot | The slot to get the field's value from |
Implements fesa::AbstractField.
|
protectedvirtual |
Returns the alignment requirement of a FieldValue instantiated by this AbstractField object.
Implements fesa::AbstractField.
|
protectedvirtual |
Returns the offset from the beginning of the field value object to the data contained in the field value.
Implements fesa::AbstractField.
|
protectedvirtual |
Returns the size (in bytes) of a field value instantiated by this AbstractField object. This includes the FieldValue object itself, and any additional space needed for data storage.
Implements fesa::AbstractField.
std::size_t fesa::FieldArray< T >::getMaxSize | ( | ) | const |
retrieve the size of the array
|
protectedvirtual |
Implements fesa::AbstractField.
Reimplemented in fesa::FieldFunctionList.
|
protectedvirtual |
used to initialize dimensions of the field from the instance document
fieldElement | that contains the values for the field |
Reimplemented from fesa::AbstractField.
Reimplemented in fesa::FieldFunctionList.
|
protected |
Copies val to the fieldValue's cell at the given index.
|
protected |
Copies the given values to the fieldValue.
fieldValue | the destination fieldValue |
val | the values to copy |
size | number of values to copy |
|
protected |
Copies the given values to the fieldValue, from first (included) to last (excluded). Given iterators must support random access.
fieldValue | the destination fieldValue |
first | Iterator pointing to the first value to copy (included) |
last | Iterator pointing to the last value to copy (excluded) |
|
protectedvirtual |
Maps an address in shared memory or on the heap to the field value member of the field class.
pFV | pointer to a field value. |
Implements fesa::AbstractField.
Reimplemented in fesa::FieldFunctionList, and fesa::FieldFunction.