GSI Object Oriented Online Offline (Go4)  GO4-5.3.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
TGo4TaskHandlerRunnable Class Referenceabstract

#include <TGo4TaskHandlerRunnable.h>

+ Inheritance diagram for TGo4TaskHandlerRunnable:

Public Member Functions

 TGo4TaskHandlerRunnable (const char *name, TGo4ThreadManager *man, TGo4TaskHandler *hand, Bool_t receivermode=kTRUE)
 
virtual ~TGo4TaskHandlerRunnable ()
 
virtual Int_t Run (void *ptr)=0
 
TGo4TaskHandlerGetTaskHandler ()
 
- Public Member Functions inherited from TGo4Runnable
 TGo4Runnable (const TGo4Runnable &right)
 
 TGo4Runnable (const char *name, TGo4ThreadManager *man)
 
virtual ~TGo4Runnable ()
 
void SetThread (TGo4Thread *gthread)
 
TGo4ThreadGetThread () const
 
TGo4ThreadManagerGetThreadManager () const
 

Protected Member Functions

Bool_t CheckStopBuffer (TBuffer *buf, Int_t *result=0)
 
Bool_t CheckTransportOpen ()
 
- Protected Member Functions inherited from TGo4Runnable
 TGo4Runnable ()
 
virtual Int_t PreRun (void *ptr)
 
virtual Int_t PostRun (void *ptr)
 
virtual void ThreadCatch (TGo4Exception &ex)
 
virtual void UnexpectedCatch ()
 

Protected Attributes

TGo4SocketfxTransport
 
TGo4TaskHandlerfxTaskHandler
 
Bool_t fbReceiverMode
 
TGo4BufferQueuefxBufferQueue
 
- Protected Attributes inherited from TGo4Runnable
TGo4ThreadManagerfxManager
 
TGo4ThreadfxGo4Thread
 

Private Member Functions

 TGo4TaskHandlerRunnable ()
 

Detailed Description

This is the abstract interface for all runnables associated with the taskhandler class interface

Definition at line 31 of file TGo4TaskHandlerRunnable.h.

Constructor & Destructor Documentation

TGo4TaskHandlerRunnable::TGo4TaskHandlerRunnable ( const char *  name,
TGo4ThreadManager man,
TGo4TaskHandler hand,
Bool_t  receivermode = kTRUE 
)

Definition at line 25 of file TGo4TaskHandlerRunnable.cxx.

References fbReceiverMode, and fxTaskHandler.

TGo4TaskHandlerRunnable::~TGo4TaskHandlerRunnable ( )
virtual

Definition at line 32 of file TGo4TaskHandlerRunnable.cxx.

TGo4TaskHandlerRunnable::TGo4TaskHandlerRunnable ( )
private

Member Function Documentation

Bool_t TGo4TaskHandlerRunnable::CheckStopBuffer ( TBuffer *  buf,
Int_t *  result = 0 
)
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 TGo4StatusRunnable::Run(), TGo4DataRunnable::Run(), and TGo4CommandRunnable::Run().

Bool_t TGo4TaskHandlerRunnable::CheckTransportOpen ( )
protected

Test if socket transport exists and is open. If not open, sleep a while to avoid deadlooping of Run()

Definition at line 68 of file TGo4TaskHandlerRunnable.cxx.

References fxTransport, TGo4TaskHandler::Get_fguPORTWAITTIME(), TGo4Socket::IsOpen(), and TGo4Thread::Sleep().

Referenced by TGo4StatusRunnable::Run(), TGo4DataRunnable::Run(), and TGo4CommandRunnable::Run().

TGo4TaskHandler * TGo4TaskHandlerRunnable::GetTaskHandler ( )
virtual Int_t TGo4TaskHandlerRunnable::Run ( void *  ptr)
pure virtual

The working function which runs in the thread

Implements TGo4Runnable.

Implemented in TGo4CommandRunnable, TGo4DataRunnable, and TGo4StatusRunnable.

Member Data Documentation

Bool_t TGo4TaskHandlerRunnable::fbReceiverMode
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 TGo4StatusRunnable::Run(), TGo4DataRunnable::Run(), TGo4CommandRunnable::Run(), and TGo4TaskHandlerRunnable().

TGo4BufferQueue* TGo4TaskHandlerRunnable::fxBufferQueue
protected
TGo4TaskHandler* TGo4TaskHandlerRunnable::fxTaskHandler
protected
TGo4Socket* TGo4TaskHandlerRunnable::fxTransport
protected

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