TwiceAsNice  2019-02-18
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
Basda::IoSwitchServiceWorker Class Reference

#include <IoSwitchServiceWorker.h>

Inheritance diagram for Basda::IoSwitchServiceWorker:
Inheritance graph
Collaboration diagram for Basda::IoSwitchServiceWorker:
Collaboration graph

Classes

struct  AsynchronousIoDevice
 
struct  DeviceAsyncImpl
 

Public Member Functions

 IoSwitchServiceWorker (const Nice::JointPtr &_config, const std::string &name, const std::vector< AnalogIODevicePtr > &devices)
 
virtual ~IoSwitchServiceWorker ()
 
virtual void init ()
 
virtual void deinit ()
 
virtual void activate ()
 
virtual void deactivate ()
 
virtual void work ()
 
virtual void idleOffline ()
 wait for a state change. More...
 
virtual void idleOnline ()
 wait for a state change. More...
 
virtual void terminate ()
 schedule EXIT as the next target state. More...
 
 IoSwitchServiceWorker (const Nice::JointPtr &_config, const std::string &name, const std::vector< AnalogIODevicePtr > &devices)
 
virtual ~IoSwitchServiceWorker ()
 
virtual void init ()
 
virtual void deinit ()
 
virtual void activate ()
 
virtual void deactivate ()
 
virtual void work ()
 
virtual void idleOffline ()
 wait for a state change. More...
 
virtual void idleOnline ()
 wait for a state change. More...
 
virtual void terminate ()
 schedule EXIT as the next target state. More...
 
 IoSwitchServiceWorker (const Nice::JointPtr &_config, const std::string &name, const std::vector< AnalogIODevicePtr > &devices)
 
virtual ~IoSwitchServiceWorker ()
 
virtual void init ()
 
virtual void deinit ()
 
virtual void activate ()
 
virtual void deactivate ()
 
virtual void work ()
 
virtual void idleOffline ()
 wait for a state change. More...
 
virtual void idleOnline ()
 wait for a state change. More...
 
virtual void terminate ()
 schedule EXIT as the next target state. More...
 
- Public Member Functions inherited from Basda::ServiceWorker
const Nice::JointPtrconfig ()
 
Nice::JointPtr cfg ()
 
Nice::JointPtr var ()
 
virtual const std::string & name ()
 
virtual WorkerThreadPtr worker ()
 
virtual Nice::Monitormonitor ()
 
virtual void lock ()
 
virtual void unlock ()
 
bool stateIsSettled ()
 
bool stateHasChanged ()
 
void changeState (Basda::ServiceState _state)
 change state to a new state If the state is the current state, or a negative state, do nothing. Otherwise change the "next" state in the state machine and notify all threads. More...
 
bool tryChangeState (Basda::ServiceState _state, const Nice::Time &_timeout=Nice::Time::seconds(0.0))
 change state to a new state More...
 
void waitForState (Basda::ServiceState _state)
 wait (indefinitely) until the worker has reached a spcifici state More...
 
bool timedWaitForState (Basda::ServiceState _state, const Nice::Time &_timeout)
 wait (indefinitely) until the worker has reached a specific state More...
 
bool changeStateOnlyFromTo (Basda::ServiceState _from, Basda::ServiceState _to)
 wait (indefinitely) until the worker has reached a spcifici state More...
 
Basda::ServiceState state ()
 
Basda::ServiceState stateNow ()
 
Basda::ServiceState stateNext ()
 
Basda::ServiceState stateLast ()
 
bool isTransit ()
 
bool isTerminated ()
 
const Nice::JointPtrconfig ()
 
Nice::JointPtr cfg ()
 
Nice::JointPtr var ()
 
virtual const std::string & name ()
 
virtual WorkerThreadPtr worker ()
 
virtual Nice::Monitormonitor ()
 
virtual void lock ()
 
virtual void unlock ()
 
bool stateIsSettled ()
 
bool stateHasChanged ()
 
void changeState (Basda::ServiceState _state)
 
bool tryChangeState (Basda::ServiceState _state, const Nice::Time &_timeout=Nice::Time::seconds(0.0))
 
void waitForState (Basda::ServiceState _state)
 
bool timedWaitForState (Basda::ServiceState _state, const Nice::Time &_timeout)
 
bool changeStateOnlyFromTo (Basda::ServiceState _from, Basda::ServiceState _to)
 
Basda::ServiceState state ()
 
Basda::ServiceState stateNow ()
 
Basda::ServiceState stateNext ()
 
Basda::ServiceState stateLast ()
 
bool isTransit ()
 
bool isTerminated ()
 

Static Public Member Functions

static std::string COMMAND_REREAD_PORT_STATES_PROPERTY_NAME ()
 
static std::string WORK_INTERVAL_PROPERTY_NAME ()
 
static std::string TO_ONLINE_INTERVAL_PROPERTY_NAME ()
 
static std::string COMMAND_REREAD_PORT_STATES_PROPERTY_NAME ()
 
static std::string WORK_INTERVAL_PROPERTY_NAME ()
 
static std::string TO_ONLINE_INTERVAL_PROPERTY_NAME ()
 
static std::string COMMAND_REREAD_PORT_STATES_PROPERTY_NAME ()
 
static std::string WORK_INTERVAL_PROPERTY_NAME ()
 
static std::string TO_ONLINE_INTERVAL_PROPERTY_NAME ()
 

Private Member Functions

void rereadPortStates (const Nice::Completion &)
 
void installWorkIntervalProperty ()
 
void rereadPortStates (const Nice::Completion &)
 
void installWorkIntervalProperty ()
 
void rereadPortStates (const Nice::Completion &)
 
void installWorkIntervalProperty ()
 

Private Attributes

std::vector< AsynchronousIoDevicedevices_
 

Additional Inherited Members

- Protected Types inherited from Basda::ServiceWorker
typedef void(ServiceWorker::* ServiceWorkerMemFn) ()
 
typedef Branch BranchTable[6][6]
 
typedef IceUtil::Handle< WorkerThreadWorkerThreadPtr
 
typedef void(ServiceWorker::* ServiceWorkerMemFn) ()
 
typedef Branch BranchTable[6][6]
 
typedef IceUtil::Handle< WorkerThreadWorkerThreadPtr
 
- Protected Member Functions inherited from Basda::ServiceWorker
 ServiceWorker (const Nice::JointPtr &_jointPtr)
 ctor More...
 
virtual ~ServiceWorker ()
 dtor Does nothing (in this base class) More...
 
void triggerState (const Basda::ServiceStateMachine &_state)
 change state to a new state More...
 
void sendStateStatus (const std::string &_action, int _percent)
 
void setState (Basda::ServiceState _next)
 
virtual void waitForNewState ()
 
virtual bool timedWaitForNewState (const Nice::Time &_timeout)
 
virtual void preinit ()
 
virtual void abort ()
 does nothing. More...
 
virtual void stop ()
 does nothing. More...
 
virtual void packin ()
 schedule ONLINE as the next target state. More...
 
virtual void errorOffline ()
 set the target state to OFFLINE. More...
 
virtual void errorStandby ()
 set the target state to OFFLINE. More...
 
virtual void errorOnline ()
 set the target state to OFFLINE. More...
 
virtual void errorWorking ()
 set the target state to OFFLINE. More...
 
virtual void idleStandby ()
 wait for a state change. More...
 
 ServiceWorker (const Nice::JointPtr &_jointPtr)
 
virtual ~ServiceWorker ()
 
void triggerState (const Basda::ServiceStateMachine &_state)
 
void sendStateStatus (const std::string &_action, int _percent)
 
void setState (Basda::ServiceState _next)
 
virtual void waitForNewState ()
 
virtual bool timedWaitForNewState (const Nice::Time &_timeout)
 
virtual void preinit ()
 
virtual void abort ()
 
virtual void stop ()
 
virtual void packin ()
 
virtual void errorOffline ()
 
virtual void errorStandby ()
 
virtual void errorOnline ()
 
virtual void errorWorking ()
 
virtual void idleStandby ()
 
- Protected Attributes inherited from Basda::ServiceWorker
Nice::JointPtr m_config
 
Nice::PropertyPtr m_state
 
std::string m_name
 
- Static Protected Attributes inherited from Basda::ServiceWorker
static BranchTable s_stateTable
 A table which tells which state should go via which intermediate state to a target state. The 6 states are SHUTDOWN, OFFLINE, STANDBY, ONLINE, WORKING and ERROR. The principles are that. More...
 

Constructor & Destructor Documentation

◆ IoSwitchServiceWorker() [1/3]

Basda::IoSwitchServiceWorker::IoSwitchServiceWorker ( const Nice::JointPtr _config,
const std::string &  name,
const std::vector< AnalogIODevicePtr > &  devices 
)

◆ ~IoSwitchServiceWorker() [1/3]

Basda::IoSwitchServiceWorker::~IoSwitchServiceWorker ( )
virtual

◆ IoSwitchServiceWorker() [2/3]

Basda::IoSwitchServiceWorker::IoSwitchServiceWorker ( const Nice::JointPtr _config,
const std::string &  name,
const std::vector< AnalogIODevicePtr > &  devices 
)

◆ ~IoSwitchServiceWorker() [2/3]

virtual Basda::IoSwitchServiceWorker::~IoSwitchServiceWorker ( )
virtual

◆ IoSwitchServiceWorker() [3/3]

Basda::IoSwitchServiceWorker::IoSwitchServiceWorker ( const Nice::JointPtr _config,
const std::string &  name,
const std::vector< AnalogIODevicePtr > &  devices 
)

◆ ~IoSwitchServiceWorker() [3/3]

virtual Basda::IoSwitchServiceWorker::~IoSwitchServiceWorker ( )
virtual

Member Function Documentation

◆ activate() [1/3]

void Basda::IoSwitchServiceWorker::activate ( )
virtual

Implements Basda::ServiceWorker.

◆ activate() [2/3]

virtual void Basda::IoSwitchServiceWorker::activate ( )
virtual

Implements Basda::ServiceWorker.

◆ activate() [3/3]

virtual void Basda::IoSwitchServiceWorker::activate ( )
virtual

Implements Basda::ServiceWorker.

◆ COMMAND_REREAD_PORT_STATES_PROPERTY_NAME() [1/3]

static std::string Basda::IoSwitchServiceWorker::COMMAND_REREAD_PORT_STATES_PROPERTY_NAME ( )
inlinestatic

◆ COMMAND_REREAD_PORT_STATES_PROPERTY_NAME() [2/3]

static std::string Basda::IoSwitchServiceWorker::COMMAND_REREAD_PORT_STATES_PROPERTY_NAME ( )
inlinestatic

◆ COMMAND_REREAD_PORT_STATES_PROPERTY_NAME() [3/3]

static std::string Basda::IoSwitchServiceWorker::COMMAND_REREAD_PORT_STATES_PROPERTY_NAME ( )
inlinestatic

◆ deactivate() [1/3]

void Basda::IoSwitchServiceWorker::deactivate ( )
virtual

Implements Basda::ServiceWorker.

◆ deactivate() [2/3]

virtual void Basda::IoSwitchServiceWorker::deactivate ( )
virtual

Implements Basda::ServiceWorker.

◆ deactivate() [3/3]

virtual void Basda::IoSwitchServiceWorker::deactivate ( )
virtual

Implements Basda::ServiceWorker.

◆ deinit() [1/3]

virtual void Basda::IoSwitchServiceWorker::deinit ( )
virtual

Implements Basda::ServiceWorker.

◆ deinit() [2/3]

virtual void Basda::IoSwitchServiceWorker::deinit ( )
virtual

Implements Basda::ServiceWorker.

◆ deinit() [3/3]

void Basda::IoSwitchServiceWorker::deinit ( )
virtual

Implements Basda::ServiceWorker.

◆ idleOffline() [1/3]

virtual void Basda::IoSwitchServiceWorker::idleOffline ( )
virtual

wait for a state change.


Reimplemented from Basda::ServiceWorker.

◆ idleOffline() [2/3]

virtual void Basda::IoSwitchServiceWorker::idleOffline ( )
virtual

wait for a state change.


Reimplemented from Basda::ServiceWorker.

◆ idleOffline() [3/3]

void Basda::IoSwitchServiceWorker::idleOffline ( )
virtual

wait for a state change.


Reimplemented from Basda::ServiceWorker.

◆ idleOnline() [1/3]

virtual void Basda::IoSwitchServiceWorker::idleOnline ( )
virtual

wait for a state change.


Reimplemented from Basda::ServiceWorker.

◆ idleOnline() [2/3]

virtual void Basda::IoSwitchServiceWorker::idleOnline ( )
virtual

wait for a state change.


Reimplemented from Basda::ServiceWorker.

◆ idleOnline() [3/3]

void Basda::IoSwitchServiceWorker::idleOnline ( )
virtual

wait for a state change.


Reimplemented from Basda::ServiceWorker.

◆ init() [1/3]

void Basda::IoSwitchServiceWorker::init ( )
virtual

Implements Basda::ServiceWorker.

◆ init() [2/3]

virtual void Basda::IoSwitchServiceWorker::init ( )
virtual

Implements Basda::ServiceWorker.

◆ init() [3/3]

virtual void Basda::IoSwitchServiceWorker::init ( )
virtual

Implements Basda::ServiceWorker.

◆ installWorkIntervalProperty() [1/3]

void Basda::IoSwitchServiceWorker::installWorkIntervalProperty ( )
private

◆ installWorkIntervalProperty() [2/3]

void Basda::IoSwitchServiceWorker::installWorkIntervalProperty ( )
private

◆ installWorkIntervalProperty() [3/3]

void Basda::IoSwitchServiceWorker::installWorkIntervalProperty ( )
private

◆ rereadPortStates() [1/3]

void Basda::IoSwitchServiceWorker::rereadPortStates ( const Nice::Completion )
private

◆ rereadPortStates() [2/3]

void Basda::IoSwitchServiceWorker::rereadPortStates ( const Nice::Completion )
private

◆ rereadPortStates() [3/3]

void Basda::IoSwitchServiceWorker::rereadPortStates ( const Nice::Completion )
private

◆ terminate() [1/3]

virtual void Basda::IoSwitchServiceWorker::terminate ( )
virtual

schedule EXIT as the next target state.


Reimplemented from Basda::ServiceWorker.

◆ terminate() [2/3]

void Basda::IoSwitchServiceWorker::terminate ( )
virtual

schedule EXIT as the next target state.


Reimplemented from Basda::ServiceWorker.

◆ terminate() [3/3]

virtual void Basda::IoSwitchServiceWorker::terminate ( )
virtual

schedule EXIT as the next target state.


Reimplemented from Basda::ServiceWorker.

◆ TO_ONLINE_INTERVAL_PROPERTY_NAME() [1/3]

static std::string Basda::IoSwitchServiceWorker::TO_ONLINE_INTERVAL_PROPERTY_NAME ( )
inlinestatic

◆ TO_ONLINE_INTERVAL_PROPERTY_NAME() [2/3]

static std::string Basda::IoSwitchServiceWorker::TO_ONLINE_INTERVAL_PROPERTY_NAME ( )
inlinestatic

◆ TO_ONLINE_INTERVAL_PROPERTY_NAME() [3/3]

static std::string Basda::IoSwitchServiceWorker::TO_ONLINE_INTERVAL_PROPERTY_NAME ( )
inlinestatic

◆ work() [1/3]

virtual void Basda::IoSwitchServiceWorker::work ( )
virtual

Implements Basda::ServiceWorker.

◆ work() [2/3]

void Basda::IoSwitchServiceWorker::work ( )
virtual

Implements Basda::ServiceWorker.

◆ work() [3/3]

virtual void Basda::IoSwitchServiceWorker::work ( )
virtual

Implements Basda::ServiceWorker.

◆ WORK_INTERVAL_PROPERTY_NAME() [1/3]

static std::string Basda::IoSwitchServiceWorker::WORK_INTERVAL_PROPERTY_NAME ( )
inlinestatic

◆ WORK_INTERVAL_PROPERTY_NAME() [2/3]

static std::string Basda::IoSwitchServiceWorker::WORK_INTERVAL_PROPERTY_NAME ( )
inlinestatic

◆ WORK_INTERVAL_PROPERTY_NAME() [3/3]

static std::string Basda::IoSwitchServiceWorker::WORK_INTERVAL_PROPERTY_NAME ( )
inlinestatic

Member Data Documentation

◆ devices_

std::vector< AsynchronousIoDevice > Basda::IoSwitchServiceWorker::devices_
private

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