ifw-ccf 5.0.2
|
Publisher Thread MPTK Thread implementation (see also ifw::ccf::mptk::Thread). More...
#include <pubThread.hpp>
Public Member Functions | |
PubThread (const std::string &thread_name, ifw::ccf::mptk::MessageBus &message_bus, const double period=0.1) | |
virtual | ~PubThread () |
void | Initialise () |
Initialise this thread (object). | |
virtual void | UserLogic () |
Use logic invoked periodically (ifw::ccf::mptk::Thread). | |
void | SetProcThrOutputQ (std::shared_ptr< ifw::ccf::common::FrameQueue > &queue) |
Set reference to the Output Queue of this Processing Thread. | |
ifw::ccf::common::FrameQueue & | GetProcThrOutputQ () |
Get reference to the Output Queue of this Processing Thread. | |
void | SetStatus (const ifw::ccf::PubStatus status) |
Set the Publishing Status of this Publisher Thread. | |
ifw::ccf::PubStatus | GetStatus () const |
Return Publishing Status of this Publisher Thread. | |
void | AddPublisher (ifw::ccf::common::PubBase &pub_obj) |
uint8_t | NbOfPublishers () const |
const ifw::ccf::common::PubBase & | GetPublisher (const uint16_t nb) const |
Get the reference to a specific Data Publisher registered in this Publisher Thread (object). | |
ifw::ccf::common::PubBase & | GetPublisher () |
Get the reference to the internal publisher object. | |
const std::list< ifw::ccf::common::PubBase * > & | GetPublishers () const |
Get the list of internal Data Publisher (objects). | |
void | SetParentProcThreadName (const std::string &parent_proc_thread_name) |
Set the name of the parent Processing Thread in the object. | |
const std::string & | GetParentProcThreadName () const |
Return the name of the parent Processing Thread from the object. | |
ifw::ccf::common::FrameStatistics & | GetFrameStat () |
Get reference to frame handling statistics. | |
![]() | |
Thread (const std::string &thread_name, MessageBus &message_bus, const double period=0.1) | |
Constructor method, setting up the internal members. | |
virtual | ~Thread () |
void | SetPriority (const int prio=-1) |
If invoked, it will run the thread in real-time mode with the given priority [0; 99]. | |
std::string | GetName () const |
Return the thread Name. | |
void | Run () |
Method to invoke the user provided business logic of the thread. The method executes internally a loop. | |
void | Start () |
Start the thread execution. | |
void | Stop () |
Stop the thread execution. | |
void | Pause () |
Pause the thread execution. | |
void | Continue () |
Continue a paused thread execution. | |
double | GetDrift () const |
bool | GetExecFlag () |
Check the Thread Execution Flag. The Thread Execution Flag shall be called regularly in the thread, at least during every internal cycle (of LogicUser()). The behavior is as follows: THREAD_EXEC_RUNNING: Return immediately with true. THREAD_EXEC_PAUSED: Wait internally for flag to change to THREAD_EXEC_RUN/_STOP. TRHEAD_EXEC_STOPPED: Return immediately with false. Thread LogicUser() shall return. | |
ThreadExecControl | GetExecFlag () const |
Return the value of the Thread Execution Flag. | |
bool | Terminated () |
Returns true if thread no longer running. | |
MessageBus & | MsgBus () |
Get acces to the MessageBus associated with this thread object. | |
std::string | ToString () const |
Generate ASCII output providing a status of the object. | |
![]() | |
Base () | |
~Base () | |
const std::string & | GetClassName () const |
Return the allocated name of the class. | |
Static Public Member Functions | |
static void | SetStatusAll (const ifw::ccf::PubStatus status) |
Set the Publishing Status of all Publisher Threads running. | |
![]() | |
static ifw::ccf::mptk::Manager & | Mptk () |
Return reference to internal MPTK instance (singleton). | |
Additional Inherited Members | |
![]() | |
enum | ThreadExecControl { THREAD_EXEC_STOPPED = 1 , THREAD_EXEC_RUNNING , THREAD_EXEC_PAUSED } |
Thread execution control/status. More... | |
![]() | |
static std::map< std::string, Thread * > | s_thread_registry |
![]() | |
void | SetClassName (const std::string &class_name) |
Set the name of the class in question. | |
Publisher Thread MPTK Thread implementation (see also ifw::ccf::mptk::Thread).
ifw::ccf::control::PubThread::PubThread | ( | const std::string & | thread_name, |
ifw::ccf::mptk::MessageBus & | message_bus, | ||
const double | period = 0.1 ) |
See ifw::ccf::mptk::Thread. Expects name of the type: "Proc::<name>"!
|
virtual |
void ifw::ccf::control::PubThread::AddPublisher | ( | ifw::ccf::common::PubBase & | pub_obj | ) |
Register a new Data Publisher in the Publisher Thread. Note: For the moment only one Data Publisher is supported.
ifw::ccf::common::FrameStatistics & ifw::ccf::control::PubThread::GetFrameStat | ( | ) |
Get reference to frame handling statistics.
const std::string & ifw::ccf::control::PubThread::GetParentProcThreadName | ( | ) | const |
Return the name of the parent Processing Thread from the object.
ifw::ccf::common::FrameQueue & ifw::ccf::control::PubThread::GetProcThrOutputQ | ( | ) |
Get reference to the Output Queue of this Processing Thread.
ifw::ccf::common::PubBase & ifw::ccf::control::PubThread::GetPublisher | ( | ) |
Get the reference to the internal publisher object.
const ifw::ccf::common::PubBase & ifw::ccf::control::PubThread::GetPublisher | ( | const uint16_t | nb | ) | const |
Get the reference to a specific Data Publisher registered in this Publisher Thread (object).
const std::list< ifw::ccf::common::PubBase * > & ifw::ccf::control::PubThread::GetPublishers | ( | ) | const |
Get the list of internal Data Publisher (objects).
ifw::ccf::PubStatus ifw::ccf::control::PubThread::GetStatus | ( | ) | const |
Return Publishing Status of this Publisher Thread.
void ifw::ccf::control::PubThread::Initialise | ( | ) |
Initialise this thread (object).
uint8_t ifw::ccf::control::PubThread::NbOfPublishers | ( | ) | const |
Return the number of internal Data Publishers. Note: For the moment only one Data Publisher is supported.
void ifw::ccf::control::PubThread::SetParentProcThreadName | ( | const std::string & | parent_proc_thread_name | ) |
Set the name of the parent Processing Thread in the object.
void ifw::ccf::control::PubThread::SetProcThrOutputQ | ( | std::shared_ptr< ifw::ccf::common::FrameQueue > & | queue | ) |
Set reference to the Output Queue of this Processing Thread.
void ifw::ccf::control::PubThread::SetStatus | ( | const ifw::ccf::PubStatus | status | ) |
Set the Publishing Status of this Publisher Thread.
|
static |
Set the Publishing Status of all Publisher Threads running.
|
virtual |
Use logic invoked periodically (ifw::ccf::mptk::Thread).
Reimplemented from ifw::ccf::mptk::Thread.