fw4spl
|
Service type for the construction of an object and associated services from an XML-based description. More...
#include <IXMLParser.hpp>
Public Member Functions | |
virtual bool | isA (const std::string &type) const override |
FWSERVICES_API void | setObjectConfig (::fwRuntime::ConfigurationElement::csptr _cfgElem) |
virtual FWSERVICES_API void | createConfig (::fwTools::Object::sptr _obj) |
virtual FWSERVICES_API void | startConfig () |
virtual FWSERVICES_API void | updateConfig () |
virtual FWSERVICES_API void | stopConfig () |
virtual FWSERVICES_API void | destroyConfig () |
Public Member Functions inherited from fwServices::IService | |
FWSERVICES_API void | registerInput (const ::fwData::Object::csptr &obj, const std::string &key, const bool autoConnect=false, const bool optional=false) |
Register an input object for this service. More... | |
FWSERVICES_API void | registerInOut (const ::fwData::Object::sptr &obj, const std::string &key, const bool autoConnect=false, const bool optional=false) |
Register an in/out object for this service. More... | |
FWSERVICES_API void | setConfiguration (const ::fwRuntime::ConfigurationElement::sptr _cfgElement) |
Affect the configuration, using a generic XML like structure. More... | |
FWSERVICES_API void | setConfiguration (const Config &_configuration) |
Set the configuration. More... | |
FWSERVICES_API void | setConfiguration (const ConfigType &ptree) |
Affect the configuration, using a boost property tree. More... | |
FWSERVICES_API void | configure () |
Invoke configuring() if m_globalState == STOPPED. Invoke reconfiguring() if m_globalState == STARTED. Does nothing otherwise. More... | |
FWSERVICES_API SharedFutureType | start () |
Invoke starting() if m_globalState == STOPPED. Does nothing otherwise. More... | |
FWSERVICES_API SharedFutureType | stop () |
Invoke stopping() if m_globalState == STARTED. Does nothing otherwise. Stops all observations. More... | |
FWSERVICES_API SharedFutureType | update () |
Invoke updating() if m_globalState == STARTED. Does nothing otherwise. More... | |
FWSERVICES_API SharedFutureType | swap (::fwData::Object::sptr _obj) |
Associate the service to another object. More... | |
FWSERVICES_API SharedFutureType | swapKey (const KeyType &_key,::fwData::Object::sptr _obj) |
Associate the service to another object. More... | |
FWSERVICES_API GlobalStatus | getStatus () const noexcept |
Return the global process status. More... | |
FWSERVICES_API bool | isStarted () const noexcept |
Test if the service is started or not. More... | |
FWSERVICES_API bool | isStopped () const noexcept |
Test if the service is stopped or not. More... | |
FWSERVICES_API ConfigurationStatus | getConfigurationStatus () const noexcept |
Return the configuration process status. More... | |
FWSERVICES_API UpdatingStatus | getUpdatingStatus () const noexcept |
Return the update process status. More... | |
FWSERVICES_API::fwRuntime::ConfigurationElement::sptr | getConfiguration () const |
Return the configuration, in an xml format read using runtime library. More... | |
FWSERVICES_API ConfigType | getConfigTree () const |
Return the configuration, in an boost property tree. | |
FWSERVICES_API::fwData::Object::sptr | getObject () |
Return the object associated to service. More... | |
template<class DATATYPE > | |
std::shared_ptr< DATATYPE > | getObject () |
Return the object associated to service. The object is casted. More... | |
FWSERVICES_API const InputMapType & | getInputs () const |
Return the inputs map associated to service. More... | |
FWSERVICES_API const InOutMapType & | getInOuts () const |
Return the inouts map associated to service. More... | |
FWSERVICES_API const OutputMapType & | getOutputs () const |
Return the outouts map associated to service. More... | |
FWSERVICES_API std::vector< ::fwData::Object::csptr > | getObjects () const |
Return the objects associated to service. More... | |
template<class DATATYPE > | |
std::shared_ptr< const DATATYPE > | getInput (const KeyType &key) const |
Return the input object at the given key. Asserts if the data is not of the right type. More... | |
template<class DATATYPE > | |
std::shared_ptr< DATATYPE > | getInOut (const KeyType &key) const |
Return the inout object at the given key. Asserts if the data is not of the right type. More... | |
template<class DATATYPE > | |
std::shared_ptr< DATATYPE > | getOutput (const KeyType &key) const |
Return the output object at the given key. Asserts if the data is not of the right type. More... | |
template<class DATATYPE > | |
std::shared_ptr< const DATATYPE > | getInput (const KeyType &keybase, size_t index) const |
Return the input object at the given key. Asserts if the data is not of the right type. More... | |
template<class DATATYPE > | |
std::shared_ptr< DATATYPE > | getInOut (const KeyType &keybase, size_t index) const |
Return the inout object at the given key. Asserts if the data is not of the right type. More... | |
template<class DATATYPE > | |
std::shared_ptr< DATATYPE > | getOutput (const KeyType &keybase, size_t index) const |
Return the output object at the given key. Asserts if the data is not of the right type. More... | |
FWSERVICES_API void | setOutput (const ::fwServices::IService::KeyType &key, const ::fwData::Object::sptr &object, size_t index=0) |
Register an output object at a given key in the OSR, replacing it if it already exists. More... | |
size_t | getKeyGroupSize (const KeyType &keybase) const |
Return the number of key in a group of keys. More... | |
FWSERVICES_API void | setWorker (std::shared_ptr< ::fwThread::Worker > worker) |
Initializes m_associatedWorker and associates this worker to all service slots. | |
FWSERVICES_API std::shared_ptr< ::fwThread::Worker > | getWorker () const |
Returns associate worker. | |
virtual FWSERVICES_API KeyConnectionsType | getObjSrvConnections () const |
Returns proposals to connect service slots to associated object signals, this method is used for obj/srv auto connection. More... | |
FWSERVICES_API bool | hasObjectId (const KeyType &_key) const |
Return true if the object with the given key has an identifier. More... | |
FWSERVICES_API IdType | getObjectId (const KeyType &_key) const |
Return the id of the object, throw if it is not found. | |
FWSERVICES_API void | setObjectId (const KeyType &_key, const IdType &_id) |
Set the id of an object key. | |
Public Member Functions inherited from fwTools::Object | |
Public Member Functions inherited from fwCore::BaseObject | |
Public Member Functions inherited from fwCom::HasSlots | |
std::shared_ptr< SlotBase > | slot (const Slots::SlotKeyType &key) const |
template<typename SlotType > | |
std::shared_ptr< SlotType > | slot (const Slots::SlotKeyType &key) const |
template<typename F , typename A > | |
std::shared_ptr< Slot< typename::fwCom::util::convert_function_type< F >::type > > | newSlot (const Slots::SlotKeyType &key, F f, A a) |
Public Member Functions inherited from fwCom::HasSignals | |
std::shared_ptr< SignalBase > | signal (const Signals::SignalKeyType &key) const |
template<typename SignalType > | |
std::shared_ptr< SignalType > | signal (const Signals::SignalKeyType &key) const |
template<typename SignalType > | |
std::shared_ptr< SignalType > | newSignal (const Signals::SignalKeyType &key) |
Static Public Member Functions | |
static bool | isTypeOf (const std::string &type) |
Static Public Member Functions inherited from fwServices::IService | |
static bool | isTypeOf (const std::string &type) |
static const std::string & | leafClassname () |
return object's classname without its namespace, i.e. BaseObject | |
static const std::string & | classname () |
return object's classname without its namespace, i.e. BaseObject | |
Static Public Member Functions inherited from fwTools::Object | |
static bool | isTypeOf (const std::string &type) |
static const std::string & | classname () |
return full object's classname with its namespace, i.e. fwCore::BaseObject | |
Static Public Member Functions inherited from fwCore::BaseObject | |
static bool | isTypeOf (const std::string &type) |
static const std::string & | leafClassname () |
return object's classname without its namespace, i.e. BaseObject | |
static const std::string & | classname () |
return object's classname without its namespace, i.e. BaseObject | |
Public Attributes | |
::fwRuntime::ConfigurationElement::csptr | m_cfg |
Protected Member Functions | |
FWSERVICES_API | IXMLParser () |
Constructor. Does nothing. | |
virtual FWSERVICES_API | ~IXMLParser () |
Destructor. Does nothing. | |
virtual FWSERVICES_API void | starting () override |
Does nothing. | |
virtual FWSERVICES_API void | stopping () override |
Does nothing. | |
virtual FWSERVICES_API void | configuring () override |
Does nothing. | |
virtual FWSERVICES_API void | updating () override |
Parse the XML configuration. More... | |
Protected Member Functions inherited from fwServices::IService | |
FWSERVICES_API | IService () |
IService constructor. More... | |
virtual FWSERVICES_API | ~IService () |
IService desctructor. More... | |
virtual void | swapping () |
Swap the service from associated object to another object. More... | |
virtual void | swapping (const KeyType &key) |
Swap the service from an associated object to another object. The key in parameter indicates allows to retrieve the new data with getInput(), getInOut() or getOutput(). If you need the old object, you need to keep a shared pointer on it inside your service implementation. More... | |
virtual FWSERVICES_API void | reconfiguring () |
Reconfigure the service activity when is started. More... | |
virtual FWSERVICES_API void | info (std::ostream &_sstream) |
Write information in a stream. More... | |
virtual FWSERVICES_API KeyConnectionsMap | getAutoConnections () const |
Returns proposals to connect service slots to associated objects signals, this method is used for obj/srv auto connection. | |
Protected Member Functions inherited from fwTools::fwID | |
FWTOOLS_API bool | hasID () const |
Return true if the object has an id set. More... | |
FWTOOLS_API IDType | getID (Policy policy=GENERATE) const |
Returns the id of the object. If it is not set and the policy value is. More... | |
virtual FWTOOLS_API void | setID (IDType newID) |
Set a newID for the object, (newID must not exist in fwID), the oldest one is released. More... | |
FWTOOLS_API void | resetID () |
Release the id for the object. More... | |
fwID () | |
Constructor : does nothing. | |
Protected Member Functions inherited from fwCom::HasSlots | |
HasSlots (const HasSlots &) | |
Copy constructor forbidden. | |
HasSlots & | operator= (const HasSlots &) |
Copy operator forbidden. | |
Protected Member Functions inherited from fwCom::HasSignals | |
HasSignals (const HasSignals &) | |
Copy constructor forbidden. | |
HasSignals & | operator= (const HasSignals &) |
Copy operator forbidden. | |
Friends | |
template<class , class , class > | |
class | ::fwTools::ClassFactory |
class | ::fwTools::Factory |
Demangling methods | |
virtual const std::string & | getLeafClassname () const override |
return object's classname without its namespace, i.e. BaseObject | |
virtual const std::string & | getClassname () const override |
return full object's classname with its namespace, i.e. fwCore::BaseObject | |
static const std::string & | leafClassname () |
return object's classname without its namespace, i.e. BaseObject | |
static const std::string & | classname () |
return object's classname without its namespace, i.e. BaseObject | |
Additional Inherited Members | |
Public Types inherited from fwServices::IService | |
enum | AccessType : std::uint8_t { INPUT, OUTPUT, INOUT } |
typedef ::boost::property_tree::ptree | ConfigType |
typedef std::string | IdType |
typedef std::string | KeyType |
typedef std::map< KeyType, std::weak_ptr< const ::fwData::Object > > | InputMapType |
typedef std::map< KeyType, std::weak_ptr< ::fwData::Object > > | InOutMapType |
typedef std::map< KeyType, std::shared_ptr< ::fwData::Object > > | OutputMapType |
enum | GlobalStatus { STARTED, STARTING, SWAPPING, STOPPED, STOPPING } |
Defines all possible global status for a service, including transitions. More... | |
enum | UpdatingStatus { UPDATING, NOTUPDATING } |
Defines all possible status for an update process. More... | |
enum | ConfigurationStatus { CONFIGURING, CONFIGURED, UNCONFIGURED } |
Defines all possible status for a configuration process. More... | |
typedef ::fwCom::Signal< void()> | StartedSignalType |
typedef ::fwCom::Signal< void()> | UpdatedSignalType |
typedef ::fwCom::Signal< void()> | StoppedSignalType |
typedef std::shared_future< void > | SharedFutureType |
Slot to call start method. | |
typedef std::packaged_task< void()> | PackagedTaskType |
Slot to call start method. | |
typedef std::future< void > | UniqueFutureType |
Slot to call start method. | |
typedef ::fwCom::Slot< SharedFutureType()> | StartSlotType |
Slot to call start method. | |
typedef ::fwCom::Slot< SharedFutureType()> | StopSlotType |
Slot to call start method. | |
typedef ::fwCom::Slot< SharedFutureType()> | UpdateSlotType |
Slot to call start method. | |
typedef ::fwCom::Slot< SharedFutureType(::fwData::Object::sptr)> | SwapSlotType |
Slot to call start method. | |
typedef ::fwCom::Slot< SharedFutureType(const KeyType &,::fwData::Object::sptr)> | SwapKeySlotType |
Slot to call start method. | |
typedef ::fwCom::helper::SigSlotConnection::KeyConnectionsType | KeyConnectionsType |
Returns proposals to connect service slots to associated object signals, this method is used for obj/srv auto connection. More... | |
Public Types inherited from fwCom::HasSlots | |
typedef std::shared_ptr< HasSlots > | sptr |
typedef std::shared_ptr< const HasSlots > | csptr |
Public Types inherited from fwCom::HasSignals | |
typedef std::shared_ptr< HasSignals > | sptr |
typedef std::shared_ptr< const HasSignals > | csptr |
Static Public Attributes inherited from fwServices::IService | |
static FWSERVICES_API const std::string | s_DEFAULT_OBJECT = "defaultObject" |
static FWSERVICES_APIconst::fwCom::Slots::SlotKeyType | s_STARTED_SIG = "started" |
static FWSERVICES_APIconst::fwCom::Slots::SlotKeyType | s_UPDATED_SIG = "updated" |
static FWSERVICES_APIconst::fwCom::Slots::SlotKeyType | s_STOPPED_SIG = "stopped" |
static FWSERVICES_APIconst::fwCom::Slots::SlotKeyType | s_START_SLOT = "start" |
Slot to call start method. | |
static FWSERVICES_APIconst::fwCom::Slots::SlotKeyType | s_STOP_SLOT = "stop" |
Slot to call start method. | |
static FWSERVICES_APIconst::fwCom::Slots::SlotKeyType | s_UPDATE_SLOT = "update" |
Slot to call start method. | |
static FWSERVICES_APIconst::fwCom::Slots::SlotKeyType | s_SWAP_SLOT = "swap" |
Slot to call start method. | |
static FWSERVICES_APIconst::fwCom::Slots::SlotKeyType | s_SWAPKEY_SLOT = "swapKey" |
Slot to call start method. | |
Protected Types inherited from fwTools::fwID | |
enum | Policy { EMPTY = 1, GENERATE, MUST_EXIST } |
typedef std::string | IDType |
Static Protected Member Functions inherited from fwTools::fwID | |
static bool | isTypeOf (const std::string &type) |
static FWTOOLS_API bool | exist (IDType _id) |
static FWTOOLS_API std::shared_ptr< ::fwTools::Object > | getObject (IDType requestID) |
Retrieve the object attached to the given id. Return a null sptr if no correspondence exist. More... | |
static const std::string & | leafClassname () |
return object's classname without its namespace, i.e. BaseObject | |
static const std::string & | classname () |
return object's classname without its namespace, i.e. BaseObject | |
Protected Attributes inherited from fwServices::IService | |
::fwRuntime::ConfigurationElement::sptr | m_configuration |
Configuration element used to configure service internal state using a generic XML like structure TODO Make this const, we are not supposed to edit that ! | |
::fwData::Object::wptr | m_associatedObject |
associated object of service More... | |
StartSlotType::sptr | m_slotStart |
Slot to call start method. | |
StopSlotType::sptr | m_slotStop |
Slot to call stop method. | |
UpdateSlotType::sptr | m_slotUpdate |
Slot to call update method. | |
SwapSlotType::sptr | m_slotSwap |
Slot to call swap method. | |
SwapKeySlotType::sptr | m_slotSwapKey |
Slot to call swap method. | |
std::shared_ptr< ::fwThread::Worker > | m_associatedWorker |
Associated worker. | |
Protected Attributes inherited from fwTools::Object | |
std::shared_ptr< ::fwTools::UUID > | m_uuid |
UUID used to identify the object, notably for serialization. | |
Protected Attributes inherited from fwCom::HasSlots | |
Slots | m_slots |
Protected Attributes inherited from fwCom::HasSignals | |
Signals | m_signals |
Service type for the construction of an object and associated services from an XML-based description.
This includes (data) object attributes initialization as well as XML declared service creation, attachment and configuration. As each specific (data) object has a specific structure (attributes), it must be specialized for each one. Such a service is used by the factory New(::fwRuntime::ConfigurationElement::sptr ) method.
The updating() method of this base class parses the XML description: each object named XML children corresponds to a field added to the object (see fwTools::Object). The New(::fwRuntime::ConfigurationElement::sptr ) method on the related child is invoked, therefore allowing to build tree like composite object which services.
Definition at line 36 of file IXMLParser.hpp.
|
overrideprotectedvirtual |
Parse the XML configuration.
Implements fwServices::IService.
Reimplemented in dataReg::parser::TransferFunction, dataReg::parser::Composite, dataReg::parser::List, dataReg::parser::GenericField, dataReg::parser::TransformationMatrix3D, and dataReg::parser::Object.
Definition at line 34 of file IXMLParser.cpp.
References fwServices::IService::m_configuration, and SLM_ASSERT.