fesa-core  4.3.1
fesa::AbstractDevice Class Reference

This class represents an abstraction of the underlying device by defining the common fields of the FESA class devices (instance device and global one). More...

#include <AbstractDevice.h>

Inheritance diagram for fesa::AbstractDevice:
fesa::DataStore fesa::GlobalDevice

Public Member Functions

virtual ~AbstractDevice ()
 destructor
 
std::string getMainMuxCriterion () const
 Returns the main multiplexing criterion of the device.
 
std::string getTimingDomain () const
 Returns the timing domain that the device belongs to.
 
std::string getAccelerator () const
 Returns the accelerator that the device belongs to.
 
std::string getAcceleratorZone () const
 Returns the accelerator zone that the device belongs to.
 
std::string getDescription () const
 Returns the device's description.
 
bool isLoggable () const
 Returns the flag that indicates if the device trace is logged.
 
void setLoggable (bool loggable)
 Set the flag that indicates if the device trace is logged.
 
bool isMultiplexed () const
 
virtual void initialize ()
 initializes the device
 
virtual boost::shared_ptr
< DeviceInstantiationData
getInstantiationData () const
 getter for the member-variable instantiationData_
 
- Public Member Functions inherited from fesa::DataStore
 DataStore ()
 Constructor.
 
virtual ~DataStore ()
 destructor
 
virtual const std::string & getName () const
 Get the name of the data store.
 
boost::optional< int64_t > getId () const
 
FaultSeverity::FaultSeverity getStatus (const MultiplexingContext *context, std::vector< const char * > &faultDescriptions) const
 Get the status of the data store. More...
 
const std::vector
< AbstractField * > & 
getFieldCollection () const
 Retrieve the collection of fields. More...
 
const std::vector
< AbstractField * > & 
getPersistentFieldsCollection () const
 Method to retrieve the setting field collection of that data store. More...
 
AbstractFieldgetField (const std::string &name) const
 Retrieves a pointer to a concrete field. More...
 
std::size_t getMemorySizeToAllocate (bool multiProcess) const
 Returns the size of the shared fields of this object.
 
void mapMemory (char *p, bool multiProcess, bool initializeFields)
 Maps shared fields and attributes to memory. More...
 
void registerFaultField (AbstractField *field)
 Register a fault field in the data store. More...
 

Public Attributes

ConfigFieldString name
 Configuration field containing the device's name.
 
ConfigFieldString description
 Configuration field containing the device's description.
 
ConfigFieldString acceleratorZone
 Configuration field containing the device's accelerator zone.
 
ConfigFieldString accelerator
 Configuration field containing the device's accelerator.
 
ConfigFieldString timingDomain
 Configuration field containing the device's timing domain.
 
ConfigFieldString mainMuxCriterion
 Configuration field containing the device's main multiplexing criterion.
 

Protected Member Functions

 AbstractDevice (const boost::shared_ptr< DeviceInstantiationData > &instantiationData)
 Initializes the common device fields. More...
 
 AbstractDevice ()
 Constructor to simplify Mocking.
 
void initializeOtherFieldValues (const boost::shared_ptr< DataStoreElement > &dataStoreElement)
 
virtual std::size_t getSizeOfAdditionalFields () const
 Get the size related to non-Fesa-type fields. More...
 
virtual void mapAdditionalFields (char *p)
 Map the non-Fesa-type fields. More...
 
- Protected Member Functions inherited from fesa::DataStore
void initializeFieldDefaultValues (const boost::shared_ptr< DataStoreElement > &dataStoreElement)
 initializes all fields of this device with default-values from the instantiation-file More...
 
void initializeFieldDimensions (const boost::shared_ptr< DataStoreElement > &dataStoreElement)
 initializes all fields of this data-store with the dimensions, defined in the instantiation-file More...
 
void restoreFromElement (PersistanceDataStoreElement &element)
 this method restores the data store with the element passed as a parameter More...
 
virtual void registerField (AbstractField *field)
 Registers a new field in the current field collection. More...
 
void registerRelatedField (AbstractField *mainField, AbstractField *relatedField)
 Registers a related field of a field. Initializing the dimensions of the field will initialize the dimensions of its related field with the same value. This is a unidirectional relation. A related field cannot be the main field of another field. More...
 

Additional Inherited Members

- Protected Attributes inherited from fesa::DataStore
std::vector< AbstractField * > fields_
 field collection containing all fields of the data store
 
std::vector< AbstractField * > persistentFields_
 setting collection containing all the persistent fields
 
std::map< AbstractField
*, AbstractField * > 
relatedFields_
 maps a field to its related field. Used for example by history fields, so that initializing dimensions of the main field also initializes dimensions of the related field. This is a unidirectional relation. Bidirectional relations are forbidden as they may produce infinite loops.
 
RWLockpRWLock_
 read-write lock used to lock data store during synchronization of setting fields
 

Detailed Description

This class represents an abstraction of the underlying device by defining the common fields of the FESA class devices (instance device and global one).

Constructor & Destructor Documentation

fesa::AbstractDevice::AbstractDevice ( const boost::shared_ptr< DeviceInstantiationData > &  instantiationData)
protected

Initializes the common device fields.

Constructor

Parameters
instantiationDatadevice-specific data comming from the instance-file

Member Function Documentation

std::size_t fesa::AbstractDevice::getSizeOfAdditionalFields ( ) const
protectedvirtual

Get the size related to non-Fesa-type fields.

Returns
The size related to specific non-Fesa-type fields

Reimplemented from fesa::DataStore.

void fesa::AbstractDevice::initializeOtherFieldValues ( const boost::shared_ptr< DataStoreElement > &  dataStoreElement)
protectedvirtual

Extension point called at the end of initializeFieldDefaultValues. Can be used by child classes to initialize fields which are not initialized by initializeFieldDefaultValues.

Reimplemented from fesa::DataStore.

bool fesa::AbstractDevice::isMultiplexed ( ) const
Returns
true if the device is multiplexed
void fesa::AbstractDevice::mapAdditionalFields ( char *  p)
protectedvirtual

Map the non-Fesa-type fields.

Parameters
Pointerto the allocated memory

Reimplemented from fesa::DataStore.


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