Each instance of this class represents a FESA-Class (XML-Design-Document). More...
#include <AbstractDeviceClass.h>
Public Member Functions | |
AbstractDeviceClass (const std::string &fesaClassName, const std::string &version) | |
Constructor. | |
virtual | ~AbstractDeviceClass () |
Destructor. | |
virtual AbstractDeviceFactory * | getDeviceFactory () |
returns the abstract device factory of the class | |
virtual const std::string & | getName () |
returns the name of the class as string | |
virtual const std::string & | getVersion () |
returns the version of the class as string | |
virtual void | initialize ()=0 |
Initialization of the class. Is pure virtual. Implementation is done at a lower level. | |
virtual void | specificInit ()=0 |
Custom initialization of the class. | |
virtual const AbstractServiceLocator * | getServiceLocator () |
virtual boost::shared_ptr < OnDemandProducer > | getOnDemandEventProducer (const std::string &onDemandEventSourceName) const |
Protected Types | |
typedef const std::string | OnDemandEventSourceName |
typedef std::map < OnDemandEventSourceName, boost::shared_ptr < OnDemandProducer > > | OnDemandEventProducerCollection |
Protected Member Functions | |
void | addOnDemandEventProducer (const std::string &onDemandEventSourceName, boost::shared_ptr< OnDemandProducer > &producer) |
Allows the concrete device class to add OD-producers, according to the concrete class-design. | |
Protected Attributes | |
std::string | name_ |
name of the abstract device class | |
std::string | version_ |
version of the abstract device class | |
AbstractDeviceFactory * | deviceFactory_ |
reference to the device factory | |
std::vector < AbstractDeviceClass * > | relatedClassCol_ |
list of classes related to this one by means of composition relationship.If the device class doesn't define any composition relationship, this collection is empty | |
AbstractDeviceClass * | baseClass_ |
Defines the base class from which this device class inherits. If the device class does not define any inheritance relationship, the baseClass_ attribute is NULL. | |
const AbstractServiceLocator * | serviceLocator_ |
OnDemandEventProducerCollection | onDemandEventProducerCol_ |
service to trigger the different on-demand-event sources of this class |
Each instance of this class represents a FESA-Class (XML-Design-Document).
Definition at line 27 of file AbstractDeviceClass.h.
typedef std::map<OnDemandEventSourceName,boost::shared_ptr<OnDemandProducer> > fesa::AbstractDeviceClass::OnDemandEventProducerCollection [protected] |
Definition at line 112 of file AbstractDeviceClass.h.
typedef const std::string fesa::AbstractDeviceClass::OnDemandEventSourceName [protected] |
Definition at line 111 of file AbstractDeviceClass.h.
fesa::AbstractDeviceClass::AbstractDeviceClass | ( | const std::string & | fesaClassName, | |
const std::string & | version | |||
) |
Constructor.
name | of the fesa-class | |
version | of the fesa-class |
Definition at line 9 of file AbstractDeviceClass.cpp.
References FesaErrorServiceLocatorWasNotCreated, fesa::AbstractServiceLocatorFactory::getInstance(), fesa::AbstractServiceLocatorFactory::getServiceLocator(), name_, and serviceLocator_.
fesa::AbstractDeviceClass::~AbstractDeviceClass | ( | ) | [virtual] |
Destructor.
Definition at line 22 of file AbstractDeviceClass.cpp.
References baseClass_, and relatedClassCol_.
void fesa::AbstractDeviceClass::addOnDemandEventProducer | ( | const std::string & | onDemandEventSourceName, | |
boost::shared_ptr< OnDemandProducer > & | producer | |||
) | [protected] |
Allows the concrete device class to add OD-producers, according to the concrete class-design.
Definition at line 38 of file AbstractDeviceClass.cpp.
References onDemandEventProducerCol_.
AbstractDeviceFactory * fesa::AbstractDeviceClass::getDeviceFactory | ( | ) | [inline, virtual] |
returns the abstract device factory of the class
Definition at line 121 of file AbstractDeviceClass.h.
References deviceFactory_.
Referenced by fesa::RTController::createRTActionConfig(), fesa::FesaDeviceServer::decodeIOPoint(), fesa::ServiceLocatorServerSplitImplementation::getDevice(), fesa::ServiceLocatorRealtimeSplitImplementation::getDevice(), fesa::ServiceLocatorUnsplitImplementation::getDevice(), fesa::ServiceLocatorServerSplitImplementation::getDeviceCollection(), fesa::ServiceLocatorRealtimeSplitImplementation::getDeviceCollection(), fesa::ServiceLocatorUnsplitImplementation::getDeviceCollection(), fesa::ServiceLocatorServerSplitImplementation::getGlobalDevice(), fesa::ServiceLocatorRealtimeSplitImplementation::getGlobalDevice(), fesa::ServiceLocatorUnsplitImplementation::getGlobalDevice(), fesa::AbstractServerDeviceClass::initialize(), fesa::AbstractRTDeviceClass::initialize(), fesa::ClassElement::loadDeviceElements(), fesa::ServiceLocatorServerSplitImplementation::synchronizeSettingFields(), fesa::ServiceLocatorRealtimeSplitImplementation::synchronizeSettingFields(), and fesa::ServiceLocatorUnsplitImplementation::synchronizeSettingFields().
const std::string & fesa::AbstractDeviceClass::getName | ( | ) | [inline, virtual] |
returns the name of the class as string
Definition at line 126 of file AbstractDeviceClass.h.
References name_.
Referenced by fesa::RTController::createRTActionConfig(), fesa::ServerAction< DeviceType, DataType, FilterType >::execute(), fesa::ClassElement::getClassName(), fesa::RTController::initialize(), fesa::FesaDeviceServer::monitorOn(), fesa::AbstractServerAction::notify(), and fesa::AbstractServerDeviceClass::printConfig().
boost::shared_ptr< OnDemandProducer > fesa::AbstractDeviceClass::getOnDemandEventProducer | ( | const std::string & | onDemandEventSourceName | ) | const [virtual] |
Definition at line 48 of file AbstractDeviceClass.cpp.
References FesaErrorOnDemandEventProducerNotFound, and onDemandEventProducerCol_.
const AbstractServiceLocator * fesa::AbstractDeviceClass::getServiceLocator | ( | ) | [virtual] |
Definition at line 33 of file AbstractDeviceClass.cpp.
References serviceLocator_.
const std::string & fesa::AbstractDeviceClass::getVersion | ( | ) | [inline, virtual] |
returns the version of the class as string
Definition at line 131 of file AbstractDeviceClass.h.
References version_.
Referenced by fesa::AbstractServerDeviceClass::printConfig().
virtual void fesa::AbstractDeviceClass::initialize | ( | ) | [pure virtual] |
Initialization of the class. Is pure virtual. Implementation is done at a lower level.
Implemented in fesa::AbstractRTDeviceClass, and fesa::AbstractServerDeviceClass.
virtual void fesa::AbstractDeviceClass::specificInit | ( | ) | [pure virtual] |
Custom initialization of the class.
Referenced by fesa::AbstractServerDeviceClass::initialize(), fesa::AbstractRTDeviceClass::initialize(), fesa::ServiceLocatorRealtimeSplitImplementation::runClassSpecificInitRT(), fesa::ServiceLocatorUnsplitImplementation::runClassSpecificInitRT(), fesa::ServiceLocatorServerSplitImplementation::runClassSpecificInitServer(), and fesa::ServiceLocatorUnsplitImplementation::runClassSpecificInitServer().
AbstractDeviceClass* fesa::AbstractDeviceClass::baseClass_ [protected] |
Defines the base class from which this device class inherits. If the device class does not define any inheritance relationship, the baseClass_ attribute is NULL.
Definition at line 107 of file AbstractDeviceClass.h.
Referenced by fesa::AbstractServerDeviceClass::getProperty(), fesa::AbstractServerDeviceClass::printConfig(), and ~AbstractDeviceClass().
reference to the device factory
Definition at line 95 of file AbstractDeviceClass.h.
Referenced by getDeviceFactory().
std::string fesa::AbstractDeviceClass::name_ [protected] |
name of the abstract device class
Definition at line 85 of file AbstractDeviceClass.h.
Referenced by AbstractDeviceClass(), fesa::AbstractRTDeviceClass::addDiagnosticRTActionInfo(), fesa::AbstractRTDeviceClass::addDiagnosticSchedulingUnitInfo(), fesa::AbstractServerDeviceClass::configurePropertiesActions(), getName(), fesa::AbstractServerDeviceClass::printConfig(), fesa::AbstractRTDeviceClass::~AbstractRTDeviceClass(), and fesa::AbstractServerDeviceClass::~AbstractServerDeviceClass().
service to trigger the different on-demand-event sources of this class
Definition at line 117 of file AbstractDeviceClass.h.
Referenced by addOnDemandEventProducer(), and getOnDemandEventProducer().
std::vector<AbstractDeviceClass*> fesa::AbstractDeviceClass::relatedClassCol_ [protected] |
list of classes related to this one by means of composition relationship.If the device class doesn't define any composition relationship, this collection is empty
Definition at line 101 of file AbstractDeviceClass.h.
Referenced by fesa::AbstractServerDeviceClass::printConfig(), ~AbstractDeviceClass(), and fesa::AbstractServerDeviceClass::~AbstractServerDeviceClass().
const AbstractServiceLocator* fesa::AbstractDeviceClass::serviceLocator_ [protected] |
Definition at line 109 of file AbstractDeviceClass.h.
Referenced by AbstractDeviceClass(), and getServiceLocator().
std::string fesa::AbstractDeviceClass::version_ [protected] |
version of the abstract device class
Definition at line 90 of file AbstractDeviceClass.h.
Referenced by getVersion(), and fesa::AbstractServerDeviceClass::printConfig().