GSI Object Oriented Online Offline (Go4) GO4-6.4.0
|
This is the abstract interface for all runnables associated with the taskhandler class. More...
#include <TGo4TaskHandlerRunnable.h>
Public Member Functions | |
TGo4TaskHandlerRunnable (const char *name, TGo4ThreadManager *man, TGo4TaskHandler *hand, Bool_t receivermode=kTRUE) | |
virtual | ~TGo4TaskHandlerRunnable () |
TGo4TaskHandler * | GetTaskHandler () |
Int_t | Run (void *ptr) override=0 |
The working function which runs in the thread. | |
![]() | |
TGo4Runnable (const char *name, TGo4ThreadManager *man) | |
TGo4Runnable (const TGo4Runnable &right) | |
virtual | ~TGo4Runnable () |
TGo4Thread * | GetThread () const |
TGo4ThreadManager * | GetThreadManager () const |
void | SetThread (TGo4Thread *gthread) |
Protected Member Functions | |
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. | |
![]() | |
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 | |
Bool_t | fbReceiverMode {kFALSE} |
flag indicating operation mode of runnable, depending on client or server mode of task handler | |
TGo4BufferQueue * | fxBufferQueue {nullptr} |
Link to external buffer queue. | |
TGo4TaskHandler * | fxTaskHandler {nullptr} |
link to external task handler (for server mode) 1 1 | |
TGo4Socket * | fxTransport {nullptr} |
link to external inter-tasl transport channel | |
![]() | |
TGo4Thread * | fxGo4Thread {nullptr} |
Backlink to thread which runs this. | |
TGo4ThreadManager * | fxManager {nullptr} |
The threadmanager which is responsible for our thread. | |
Private Member Functions | |
TGo4TaskHandlerRunnable () | |
This is the abstract interface for all runnables associated with the taskhandler class.
Definition at line 31 of file TGo4TaskHandlerRunnable.h.
TGo4TaskHandlerRunnable::TGo4TaskHandlerRunnable | ( | const char * | name, |
TGo4ThreadManager * | man, | ||
TGo4TaskHandler * | hand, | ||
Bool_t | receivermode = kTRUE ) |
Definition at line 25 of file TGo4TaskHandlerRunnable.cxx.
References TGo4Runnable::TGo4Runnable(), fbReceiverMode, fxTaskHandler, and fxTransport.
Referenced by TGo4CommandRunnable::TGo4CommandRunnable(), TGo4DataRunnable::TGo4DataRunnable(), and TGo4StatusRunnable::TGo4StatusRunnable().
|
virtual |
Definition at line 32 of file TGo4TaskHandlerRunnable.cxx.
|
private |
|
protected |
Test if buffer contains a message to stop this runnable.
This mechanism is used to properly put taskhandler threads into parking position when connection is discarded. Value of buffer is set to external variable result optionally.
Definition at line 41 of file TGo4TaskHandlerRunnable.cxx.
References TGo4Log::Debug(), TGo4BufferQueue::DecodeValueBuffer(), TGo4Runnable::GetThread(), kComAbortTask, kComCloseInput, and TGo4Thread::Stop().
Referenced by TGo4CommandRunnable::Run(), TGo4DataRunnable::Run(), and TGo4StatusRunnable::Run().
|
protected |
Test if socket transport exists and is open.
If not open, sleep a while to avoid deadlooping of Run()
Definition at line 63 of file TGo4TaskHandlerRunnable.cxx.
References fxTransport, TGo4TaskHandler::Get_fguPORTWAITTIME(), and TGo4Thread::Sleep().
Referenced by TGo4CommandRunnable::Run(), TGo4DataRunnable::Run(), and TGo4StatusRunnable::Run().
TGo4TaskHandler * TGo4TaskHandlerRunnable::GetTaskHandler | ( | ) |
Definition at line 36 of file TGo4TaskHandlerRunnable.cxx.
References fxTaskHandler.
|
overridepure virtual |
The working function which runs in the thread.
Implements TGo4Runnable.
Implemented in TGo4CommandRunnable, TGo4DataRunnable, and TGo4StatusRunnable.
|
protected |
flag indicating operation mode of runnable, depending on client or server mode of task handler
Definition at line 66 of file TGo4TaskHandlerRunnable.h.
Referenced by TGo4TaskHandlerRunnable(), TGo4CommandRunnable::Run(), TGo4DataRunnable::Run(), and TGo4StatusRunnable::Run().
|
protected |
Link to external buffer queue.
For object sending mode.
Definition at line 69 of file TGo4TaskHandlerRunnable.h.
Referenced by TGo4CommandRunnable::TGo4CommandRunnable(), TGo4DataRunnable::TGo4DataRunnable(), TGo4StatusRunnable::TGo4StatusRunnable(), TGo4CommandRunnable::Run(), TGo4DataRunnable::Run(), and TGo4StatusRunnable::Run().
|
protected |
link to external task handler (for server mode) 1 1
Definition at line 62 of file TGo4TaskHandlerRunnable.h.
Referenced by TGo4CommandRunnable::TGo4CommandRunnable(), TGo4DataRunnable::TGo4DataRunnable(), TGo4StatusRunnable::TGo4StatusRunnable(), TGo4TaskHandlerRunnable(), GetTaskHandler(), and TGo4CommandRunnable::Run().
|
protected |
link to external inter-tasl transport channel
Definition at line 57 of file TGo4TaskHandlerRunnable.h.
Referenced by TGo4CommandRunnable::TGo4CommandRunnable(), TGo4DataRunnable::TGo4DataRunnable(), TGo4StatusRunnable::TGo4StatusRunnable(), TGo4TaskHandlerRunnable(), CheckTransportOpen(), TGo4CommandRunnable::Run(), TGo4DataRunnable::Run(), and TGo4StatusRunnable::Run().