|
virtual void | initialize () |
| Override in a derived class to initialize the connections from the given command line arguments. Do not forget to call this base function also.
|
|
virtual void | addOptions (po::options_description &desc) |
| Override in a derived class to add the command line arguments. Do not forget to call this base function also.
|
|
virtual void | handleExternalSignal (EMessageTypes) |
| Will get called for every signal message on the monitoring connection. Can be overridden in a derived class. Empty by default.
|
|
virtual void | handleInput () |
| Will get called for every message on the input connection. Can be overridden in a derived class. Calls handleIncomingData by default.
|
|
virtual void | handleOutput () |
| Will get called for every message on the output connection. Can be overridden in a derived class. Calls handleIncomingData by default.
|
|
virtual void | handleTimeout () |
| Will get called on a timeout. Can be overridden in a derived class. Empty by default.
|
|
virtual void | fillMonitoringJSON (std::stringstream &buffer) const |
| Using the connections, fill up a buffer with the content to be monitored.
|
|
bool | terminated () const |
| Check if the main loop will be exited on next occasion. Can be set via the "m_terminate" flag.
|
|
void | resetTimer () |
| Helper function to reset the start time and the remaining time.
|
|
void | pollEvent (bool pollOnInput) |
| Poll until a single event is retreived.
|
|
|
std::shared_ptr< ZMQParent > | m_parent |
| Pointer to the ZMQParent to be used as base for all connections.
|
|
std::unique_ptr< AInputConnection > | m_input |
| Pointer to the input connection. Should be set in initialize.
|
|
std::unique_ptr< AOutputConnection > | m_output |
| Pointer to the output connection. Should be set in initialize.
|
|
std::unique_ptr< ZMQSimpleConnection > | m_monitor |
| Pointer to the monitoring connection. Should be set in initialize.
|
|
bool | m_terminate = false |
| Can be set by functions to terminate the main loop at the next possibility.
|
|
unsigned int | m_timeout = 0 |
| If set to a value != 0, will call handleTimeout with this frequency (in seconds).
|
|
bool | m_monitorHasPriority = false |
| Flag to break out of the polling loop to check for monitoring messages. Except for the finalcollector you probably do not want this.
|
|
template<class AInputConnection, class AOutputConnection>
class Belle2::ZMQStandardApp< AInputConnection, AOutputConnection >
Generic base class for all standalone ZMQ applications.
It always consists of three connections, two of them are given as template parameters: the input and the output connection. By default, the main loop listens on the output and monitoring socket(s) while the output is not ready and also listens on the input if the output is ready.
Before starting the main loop, the virtual initialize() function should be called. When the input socket receives a message, the virtual "handleInput" function is called (defaults to handleIncomingData of the connection). When the output socket receives a message, the virtual "handleOutput" function is called (defaults to handleIncomingData of the connection). When the monitoring receives a signal message, the virtual "handleExternalSignal" function is called (defaults to nothing). When the timeout is set to a value other than 0, the virtual handleTimeout function is called with the given frequency (defaults to nothing).
Be reimplementing those four functions (or parts of them), the behaviour can be customized.
Definition at line 46 of file ZMQApp.h.