rad  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
rad::ThreadBaseActivity Class Referenceabstract

#include <activity.hpp>

Inheritance diagram for rad::ThreadBaseActivity:
scxml4cpp::Activity scxml4cpp::Activity rad::PthreadActivity rad::PthreadActivity rad::ThreadActivity rad::ThreadActivity MyTestDoActivityPthread MyTestDoActivityPthread exmalserver::ActivityMoving exmalserver::ActivityMoving MyTestDoActivity server::ActivityMoving server::ActivityMoving exmalserver::ActivityMoving exmalserver::ActivityMoving MyTestDoActivity server::ActivityMoving server::ActivityMoving

Public Member Functions

 ThreadBaseActivity (ThreadBaseActivity const &)=delete
 
void start () override
 
void stop () override
 
std::string GetName () const
 
int SetName (const std::string &name)
 
virtual pthread_t GetNativeHandle () const =0
 
 ThreadBaseActivity (ThreadBaseActivity const &)=delete
 
void start () override
 
void stop () override
 
std::string GetName () const
 
int SetName (const std::string &name)
 
virtual pthread_t GetNativeHandle () const =0
 
- Public Member Functions inherited from scxml4cpp::Activity
 Activity (const std::string &id)
 
virtual ~Activity ()
 
std::string getId () const
 
void setId (const std::string &id)
 
 Activity (const std::string &id)
 
virtual ~Activity ()
 
std::string getId () const
 
void setId (const std::string &id)
 
 Activity (const std::string &id)
 
virtual ~Activity ()
 
std::string getId () const
 
void setId (const std::string &id)
 
bool IsStopRequested () const
 To be implemented by child classes. More...
 
virtual bool IsThreadJoined () const =0
 
virtual void StartThread ()=0
 
virtual void JoinThread ()=0
 
bool IsStopRequested () const
 To be implemented by child classes. More...
 
virtual bool IsThreadJoined () const =0
 
virtual void StartThread ()=0
 
virtual void JoinThread ()=0
 

Detailed Description

Base class for different implementations of threaded activities.

It implements start(), stop() from scxml4cpp::Activity and provides IsStopRequested() which returns true if the activity implementation should stop and exit.

Implementations need to implement thread-specific methods:

This is a shared base for std::thread and pthread_t based threaded activities.

Note
that other perfectly valid options exist for interrupting the activity when it's time to stop. For example by using condition variables. This could be provided as a templated policy or a runtime provided implementation.

Constructor & Destructor Documentation

rad::ThreadBaseActivity::ThreadBaseActivity ( ThreadBaseActivity const &  )
delete
rad::ThreadBaseActivity::ThreadBaseActivity ( ThreadBaseActivity const &  )
delete

Member Function Documentation

std::string rad::ThreadBaseActivity::GetName ( ) const
Returns
The name of the do-activity thread.
std::string rad::ThreadBaseActivity::GetName ( ) const
Returns
The name of the do-activity thread.
virtual pthread_t rad::ThreadBaseActivity::GetNativeHandle ( ) const
pure virtual
Returns
Native thread handle.

Implemented in rad::ThreadActivity, rad::ThreadActivity, rad::PthreadActivity, and rad::PthreadActivity.

virtual pthread_t rad::ThreadBaseActivity::GetNativeHandle ( ) const
pure virtual
Returns
Native thread handle.

Implemented in rad::ThreadActivity, rad::ThreadActivity, rad::PthreadActivity, and rad::PthreadActivity.

bool rad::ThreadBaseActivity::IsStopRequested ( ) const
inline

To be implemented by child classes.

bool rad::ThreadBaseActivity::IsStopRequested ( ) const
inline

To be implemented by child classes.

virtual bool rad::ThreadBaseActivity::IsThreadJoined ( ) const
pure virtual
virtual bool rad::ThreadBaseActivity::IsThreadJoined ( ) const
pure virtual
virtual void rad::ThreadBaseActivity::JoinThread ( )
protectedpure virtual
virtual void rad::ThreadBaseActivity::JoinThread ( )
protectedpure virtual
int rad::ThreadBaseActivity::SetName ( const std::string &  name)

Set thread name.

Parameters
[in]namefor the thread. Maximum length is 15 characters (excluding null terminator).
Returns
error code or 0 if successful.
int rad::ThreadBaseActivity::SetName ( const std::string &  name)

Set thread name.

Parameters
[in]namefor the thread. Maximum length is 15 characters (excluding null terminator).
Returns
error code or 0 if successful.
void rad::ThreadBaseActivity::start ( )
overridevirtual
Note
Will stop() activity if it's running.

Implements scxml4cpp::Activity.

void rad::ThreadBaseActivity::start ( )
overridevirtual
Note
Will stop() activity if it's running.

Implements scxml4cpp::Activity.

virtual void rad::ThreadBaseActivity::StartThread ( )
protectedpure virtual
virtual void rad::ThreadBaseActivity::StartThread ( )
protectedpure virtual
void rad::ThreadBaseActivity::stop ( )
overridevirtual

Stop activity. If activity is already completed it does nothing.

Implements scxml4cpp::Activity.

void rad::ThreadBaseActivity::stop ( )
overridevirtual

Stop activity. If activity is already completed it does nothing.

Implements scxml4cpp::Activity.


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