GSI Object Oriented Online Offline (Go4) GO4-6.4.0
Loading...
Searching...
No Matches
TGo4CommandRunnable Class Reference

Runnable responsible for command exchange between transport (socket) and buffer (queue) In receiver mode, commands are received from transport, checked if sync or not, the command receiver of system (client) commands is set to the clienttask, sync commands are executed directly, async commands are passed to the queue in not receiver mode, runnables waits for the queue and sends all commands from the queue over the transport. More...

#include <TGo4CommandRunnable.h>

+ Inheritance diagram for TGo4CommandRunnable:

Public Member Functions

 TGo4CommandRunnable (const char *name, TGo4ThreadManager *man, TGo4TaskHandler *hand, Bool_t receivermode=kTRUE)
 
virtual ~TGo4CommandRunnable ()
 
Int_t Run (void *ptr) override
 The working function which runs in the thread.
 
- Public Member Functions inherited from TGo4TaskHandlerRunnable
 TGo4TaskHandlerRunnable (const char *name, TGo4ThreadManager *man, TGo4TaskHandler *hand, Bool_t receivermode=kTRUE)
 
virtual ~TGo4TaskHandlerRunnable ()
 
TGo4TaskHandlerGetTaskHandler ()
 
- Public Member Functions inherited from TGo4Runnable
 TGo4Runnable (const char *name, TGo4ThreadManager *man)
 
 TGo4Runnable (const TGo4Runnable &right)
 
virtual ~TGo4Runnable ()
 
TGo4ThreadGetThread () const
 
TGo4ThreadManagerGetThreadManager () const
 
void SetThread (TGo4Thread *gthread)
 

Private Member Functions

 TGo4CommandRunnable ()
 
void RedirectIO ()
 for error in socket: redirect std::cout/std::cerr to dummy buffer to avoid trouble if client is running in dying QProcess
 

Private Attributes

TGo4CommandInvokerfxInvoker {nullptr}
 client mode: link to external (static) invoker singleton, that is used to execute the async commands before the command queue server mode: not used
 

Additional Inherited Members

- Protected Member Functions inherited from TGo4TaskHandlerRunnable
Bool_t CheckStopBuffer (TBuffer *buf, Int_t *result=nullptr)
 Test if buffer contains a message to stop this runnable.
 
Bool_t CheckTransportOpen ()
 Test if socket transport exists and is open.
 
- Protected Member Functions inherited from TGo4Runnable
 TGo4Runnable ()
 
virtual Int_t PostRun (void *ptr)
 Function which is called once after the Run()method on threadstop.
 
virtual Int_t PreRun (void *ptr)
 Function which is called once before the Run() method on threadstart.
 
virtual void ThreadCatch (TGo4Exception &ex)
 catch for exceptions occurring in workfunc
 
virtual void UnexpectedCatch ()
 catch for all unexpected exceptions happening in workfunc
 
- Protected Attributes inherited from TGo4TaskHandlerRunnable
Bool_t fbReceiverMode {kFALSE}
 flag indicating operation mode of runnable, depending on client or server mode of task handler
 
TGo4BufferQueuefxBufferQueue {nullptr}
 Link to external buffer queue.
 
TGo4TaskHandlerfxTaskHandler {nullptr}
 link to external task handler (for server mode) 1 1
 
TGo4SocketfxTransport {nullptr}
 link to external inter-tasl transport channel
 
- Protected Attributes inherited from TGo4Runnable
TGo4ThreadfxGo4Thread {nullptr}
 Backlink to thread which runs this.
 
TGo4ThreadManagerfxManager {nullptr}
 The threadmanager which is responsible for our thread.
 

Detailed Description

Runnable responsible for command exchange between transport (socket) and buffer (queue) In receiver mode, commands are received from transport, checked if sync or not, the command receiver of system (client) commands is set to the clienttask, sync commands are executed directly, async commands are passed to the queue in not receiver mode, runnables waits for the queue and sends all commands from the queue over the transport.

Definition at line 33 of file TGo4CommandRunnable.h.

Constructor & Destructor Documentation

◆ TGo4CommandRunnable() [1/2]

◆ ~TGo4CommandRunnable()

TGo4CommandRunnable::~TGo4CommandRunnable ( )
virtual

Definition at line 41 of file TGo4CommandRunnable.cxx.

◆ TGo4CommandRunnable() [2/2]

TGo4CommandRunnable::TGo4CommandRunnable ( )
private

Member Function Documentation

◆ RedirectIO()

void TGo4CommandRunnable::RedirectIO ( )
private

for error in socket: redirect std::cout/std::cerr to dummy buffer to avoid trouble if client is running in dying QProcess

Definition at line 199 of file TGo4CommandRunnable.cxx.

Referenced by Run().

◆ Run()

Field Documentation

◆ fxInvoker

TGo4CommandInvoker* TGo4CommandRunnable::fxInvoker {nullptr}
private

client mode: link to external (static) invoker singleton, that is used to execute the async commands before the command queue server mode: not used

Definition at line 54 of file TGo4CommandRunnable.h.

Referenced by TGo4CommandRunnable().


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