fesa-core
7.0.0
|
This class extends the AbstractEventSource class to provide a mechanism that allows clients to trigger real-time actions in a server or a RT action The sending action puts a message in the message queue. The OnDemandEventSource class reads this message from the queue and fires an RT event. More...
#include <OnDemandEventSource.h>
Public Member Functions | |||
OnDemandEventSource (const std::string &name, const std::string &className, const boost::shared_ptr< OnDemandConsumer > &eventConsumer, const boost::shared_ptr< Diagnostics > &diagnostics) | |||
Constructor. More... | |||
void | enable () | ||
Enable the event source activity (for all of the related events)
| |||
Public Member Functions inherited from fesa::AbstractEventSource | |||
virtual void | disable () | ||
Disable the event source activity (for all of the related events)
| |||
bool | isEnabled () const | ||
Check if the source is enabled. | |||
void | printConfig (FesaStream &fesaStream) const | ||
Print the event source configuration. More... | |||
void | printState (std::ostream &stream, double elapsedTime) const | ||
Print the event source state. More... | |||
virtual | ~AbstractEventSource () | ||
Destructor. | |||
const std::string & | getName () const | ||
Retrieve the name of the event source. More... | |||
EventSourceType | getType () const | ||
Retrieve the type of the event source. More... | |||
uint32_t | getEvtSrcPriority () const | ||
Retrieve the priority of the thread in which the event source runs. More... | |||
uint32_t | getEvtSrcID () const | ||
Retrieve the event source's thread ID. More... | |||
bool | hasConcreteEvent (const std::string &eventName) const | ||
Checks if the event name given exists in the list of events triggered by this event source. | |||
Public Member Functions inherited from fesa::Thread | |||
virtual | ~Thread () | ||
Destructor. | |||
void | setDetachState (int32_t state) | ||
Modify the detach state of the thread. More... | |||
void | start (bool blockingMode, const std::string &threadName, bool permanent=true) | ||
virtual void | stop () | ||
Stop the thread. | |||
int | join (void **status) | ||
bool | isRunning () const | ||
Check if the thread is running. More... | |||
pthread_t | getID () const | ||
Get the process ID. More... | |||
int32_t | getPriority () const | ||
Get the priority of the thread. More... | |||
cpu_set_t | getAffinity () const | ||
Get the affinity of the thread. | |||
void | setPriority (int32_t priority) | ||
Set the priority of the thread. More... | |||
void | setAffinity (cpu_set_t affinity) | ||
Set the affinity of the thread. More... | |||
ThreadType | getThreadType () const | ||
Public Member Functions inherited from fesa::HasMetrics | |||
HasMetrics (const std::string &componentName) | |||
Additional Inherited Members | |
Static Public Member Functions inherited from fesa::Thread | |
static void | AdjustProcessScheduling () |
The process priority can only be adjusted in the main thread. It needs to be adjusted to the maximal thread priority since it sets the limit of the thread priorities of this process. More... | |
static std::string | getThreadName (pthread_t threadId) |
Get the name of the thread by its id. More... | |
static std::string | getCurrentThreadName () |
static void | registerThreadIdName (pthread_t threadId, const std::string &threadName) |
Associate a thread id with a name. More... | |
static void | registerThreadId (pthread_t threadId, Thread *thread) |
Associate a thread id with a name. More... | |
static Thread * | current () |
Returns the Thread object associated with the current thread. | |
static Thread * | getById (pthread_t id) |
Returns the Thread object associated with the given id. Throws FesaException if the id is unknown. More... | |
static const std::set< const Thread * > | getThreads () |
Protected Member Functions inherited from fesa::AbstractEventSource | |
AbstractEventSource (const std::string &eventSourceName, EventSourceType type, const std::string &className, const boost::shared_ptr< Diagnostics > &diagnostics) | |
Constructor. More... | |
void | run () |
In a continuous loop, the source will wait for new events, and post them to the scheduler whenever they occur. All exceptions from underlying methods will be cought and logged at this level. This method is blocking. | |
virtual void | addEvent (const boost::shared_ptr< fesa::EventElement > &eventElement, const boost::shared_ptr< LogicalEvent > &logicalEvent) |
Add an event to the event map of this source. More... | |
Protected Member Functions inherited from fesa::HasMetrics | |
template<typename T > | |
void | registerMetric (const std::string &name, T &value) |
template<typename T > | |
void | registerMetric (const std::string &name, boost::atomic< T > &value) |
Protected Attributes inherited from fesa::AbstractEventSource | |
DiagnosticsDefs::DiagStateCounter | firedEventCount_ |
number of event fired by this event-source. | |
Protected Attributes inherited from fesa::Thread | |
bool | isRunning_ |
true if the thread is running | |
bool | hasFinished_ |
true if the thread has finished. | |
bool | joinHasFinished_ |
if true, a call to pthread_join has completed and a further pthread_cancel / pthread_join call is unsafe | |
bool | permanent_ |
pthread_t | tid_ |
Id of this thread. | |
This class extends the AbstractEventSource class to provide a mechanism that allows clients to trigger real-time actions in a server or a RT action The sending action puts a message in the message queue. The OnDemandEventSource class reads this message from the queue and fires an RT event.
fesa::OnDemandEventSource::OnDemandEventSource | ( | const std::string & | name, |
const std::string & | className, | ||
const boost::shared_ptr< OnDemandConsumer > & | eventConsumer, | ||
const boost::shared_ptr< Diagnostics > & | diagnostics | ||
) |
Constructor.
name | The name of the event source |
className | The FESA class the event source belongs to |
eventConsumer | Consumer of on-demand messages associated with on-demand events |
diagnostics | The diagnostics object to be used for logging in event sources |