fesa-core  5.0.1
fesa::FieldStringArray Class Reference

Field template class for string arrays. More...

#include <FieldStringArray.h>

Inheritance diagram for fesa::FieldStringArray:
fesa::AbstractField

Public Types

typedef const char * value_type
 data type stored in the field string array
 

Public Member Functions

 FieldStringArray (const FieldConfig &fieldConfig, DataStore *pDataStore, std::size_t arrayLength, std::size_t stringLength)
 Constructor. More...
 
void getMaxSize (uint32_t &size1, uint32_t &size2)
 retrieve the size of the array More...
 
- Public Member Functions inherited from fesa::AbstractField
virtual ~AbstractField ()
 destructor
 
AbstractMultiplexingManagergetMultiplexingManager ()
 
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
 Method to get the size of the field-value object. The template of the field-value class depends on the field type. More...
 
void initializeDimensions (const boost::shared_ptr< FieldElement > &fieldElement)
 used to initialize dimensions of the field from the instance document 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 setSize (FieldValueArray2D< char > &fieldValue, std::size_t size) const
 
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...
 
FieldValueArray2D< char > * getFieldValue (int32_t slot)
 Get the field's value for a given slot. More...
 
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...
 
void getValueToStore (int32_t slot, std::string &value) const
 
void setFieldValue (FieldValueArray2D< char > &fieldValue, const char **values, std::size_t count)
 
const char * getStringPointer (const FieldValueArray2D< char > &fieldValue, std::size_t index) const
 
const char ** getStringPointers (const FieldValueArray2D< char > &fieldValue, std::size_t &count) const
 
void setStringValue (FieldValueArray2D< char > &fieldValue, const char *value, std::size_t index)
 
const std::string getString (const FieldValueArray2D< char > &fieldValue, std::size_t index) const
 
const std::vector< std::string > getStringVector (const FieldValueArray2D< char > &fieldValue) const
 
void setStringValues (FieldValueArray2D< char > &fieldValue, const std::vector< std::string > &values)
 
void setStringValue (FieldValueArray2D< char > &fieldValue, const std::string &value, std::size_t index)
 
- 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)
 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 maxSize1_
 first dimension of the array
 
std::size_t maxSize2_
 second dimension of the array. More...
 
FieldValueArray2D< char > * fieldValue_
 value of the field
 
std::map< const void
*, std::vector< const char * > > 
pointers_
 
Mutex pointersMutex_
 
- 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
 
AbstractMultiplexingManagermultiplexingManager_
 multiplexing manager of the field
 
DataStoredataStore_
 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()
 

Detailed Description

Field template class for string arrays.

Constructor & Destructor Documentation

fesa::FieldStringArray::FieldStringArray ( const FieldConfig fieldConfig,
DataStore pDataStore,
std::size_t  arrayLength,
std::size_t  stringLength 
)

Constructor.

Parameters
nameof the field, field category, multiplexing criterion, pointer to DataStore

Member Function Documentation

void fesa::FieldStringArray::checkMaxDimension ( std::size_t  size) const
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

Exceptions
FesaException
void fesa::FieldStringArray::copyValue ( uint32_t  slot,
const std::string &  str 
)
protectedvirtual

this method puts in the slot the value passed by parameter in the corresponding format

Parameters
slotto put the value
valvalue to put

Implements fesa::AbstractField.

FieldValueArray2D< char > * fesa::FieldStringArray::getFieldValue ( int32_t  slot)
protectedvirtual

Get the field's value for a given slot.

Parameters
slotThe slot to get the field's value from
Returns
The field's value

Implements fesa::AbstractField.

std::size_t fesa::FieldStringArray::getFieldValueSize ( ) const
protectedvirtual

Method to get the size of the field-value object. The template of the field-value class depends on the field type.

Returns
the size in bytes of the field value object.

Implements fesa::AbstractField.

void fesa::FieldStringArray::getMaxSize ( uint32_t &  size1,
uint32_t &  size2 
)

retrieve the size of the array

Parameters
size1first dimension of the array
size2second dimension of the array
const std::string fesa::FieldStringArray::getString ( const FieldValueArray2D< char > &  fieldValue,
std::size_t  index 
) const
protected

Returns the string at the given index.

const char * fesa::FieldStringArray::getStringPointer ( const FieldValueArray2D< char > &  fieldValue,
std::size_t  index 
) const
protected

Returns a pointer to the string at the given index.

const char ** fesa::FieldStringArray::getStringPointers ( const FieldValueArray2D< char > &  fieldValue,
std::size_t &  count 
) const
protected

Returns an array of pointers to the strings of the given fieldValue.

const std::vector< std::string > fesa::FieldStringArray::getStringVector ( const FieldValueArray2D< char > &  fieldValue) const
protected

Returns all the string of the filedValue

void fesa::FieldStringArray::getValueToStore ( int32_t  slot,
std::string &  str 
) const
protectedvirtual
Returns
the value of the pending buffer as a string

Implements fesa::AbstractField.

void fesa::FieldStringArray::initializeDimensions ( const boost::shared_ptr< FieldElement > &  fieldElement)
protectedvirtual

used to initialize dimensions of the field from the instance document

Parameters
fieldElementthat contains the values for the field

Reimplemented from fesa::AbstractField.

void fesa::FieldStringArray::setFieldValue ( FieldValueArray2D< char > &  fieldValue,
const char **  values,
std::size_t  count 
)
protected

Copies the given strings to the fieldValue.

Parameters
fieldValuethe destination field value
valuesthe strings to copy
countnumber of strings to copy
void fesa::FieldStringArray::setFieldValueAddress ( char *  pFV,
bool  initFieldsFlag 
)
protectedvirtual

Maps an address in shared memory or on the heap to the field value member of the field class.

Parameters
pFVpointer to a field value.

Implements fesa::AbstractField.

void fesa::FieldStringArray::setSize ( FieldValueArray2D< char > &  fieldValue,
std::size_t  size 
) const
protected

Checks and sets the current size of fieldValue.

Parameters
fieldValue
size
Exceptions
FesaExceptionif size is greater than the maximum size of this field.
void fesa::FieldStringArray::setStringValue ( FieldValueArray2D< char > &  fieldValue,
const char *  value,
std::size_t  index 
)
protected

Copies the given string to the fieldValue at the given index.

void fesa::FieldStringArray::setStringValue ( FieldValueArray2D< char > &  fieldValue,
const std::string &  value,
std::size_t  index 
)
protected

Copies the given string to the fieldValue at the given index.

void fesa::FieldStringArray::setStringValues ( FieldValueArray2D< char > &  fieldValue,
const std::vector< std::string > &  values 
)
protected

Copies all the given strings to the fieldValue.

Member Data Documentation

std::size_t fesa::FieldStringArray::maxSize2_
protected

second dimension of the array.

Maximum size of a string

std::map<const void*, std::vector<const char*> > fesa::FieldStringArray::pointers_
mutableprotected

Maps slots (by their address) to a vector of c-style strings.

Mutex fesa::FieldStringArray::pointersMutex_
protected

Protects access to the pointers_ map.


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