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

#include <TGo4Task.h>

+ Inheritance diagram for TGo4Task:

Public Member Functions

 TGo4Task (const char *name, Bool_t blockingmode, Bool_t autostart=kFALSE, Bool_t autocreate=kTRUE, Bool_t ismaster=kFALSE)
 
virtual ~TGo4Task ()
 
virtual void Start ()
 
virtual void Stop ()
 
virtual void Quit ()
 
virtual void KillMain ()
 
virtual void RestartMain ()
 
virtual void Terminate (Bool_t termapp=kTRUE)
 
virtual void TerminateFast ()
 
virtual void ExecuteString (const char *command)
 
Bool_t IsMaster ()
 
void SetOwner (TGo4TaskOwner *owner)
 
virtual TGo4TaskHandlerGetTaskHandler ()
 
virtual TGo4BufferQueueGetCommandQueue (const char *task=0)
 
virtual TGo4BufferQueueGetStatusQueue (const char *task=0)
 
virtual TGo4BufferQueueGetDataQueue (const char *task=0)
 
void AddUserCommand (TGo4Command *com)
 
void AddUserCommandList (TGo4CommandProtoList *comlist)
 
TGo4StatusNextStatus (Bool_t wait=kTRUE)
 
TObject * NextObject (Bool_t wait=kTRUE)
 
virtual TGo4CommandNextCommand ()
 
void SendObject (TObject *obj, const char *receiver=0)
 
virtual void SendStatus (TGo4Status *stat, const char *receiver=0)
 
virtual void SendStatusBuffer ()
 
TMutex * GetStatusBufferMutex ()
 
void SendStatusMessage (Int_t level, Bool_t printout, const char *text,...)
 
void UpdateStatusBuffer ()
 
virtual Int_t Initialization ()
 
virtual TGo4TaskStatusCreateStatus ()
 
Bool_t SubmitCommand (const char *name)
 
Bool_t SubmitEmergencyCommand (Go4EmergencyCommand_t val)
 
Bool_t SubmitEmergencyData (Go4EmergencyCommand_t val, const char *receiver=0)
 
Bool_t SubmitLocalCommand (TGo4Command *com)
 
Bool_t SubmitCommand (TGo4Command *com)
 
TGo4CommandMakeCommand (const char *name)
 
void WakeCommandQueue (Int_t id=0)
 
virtual Int_t StartWorkThreads ()
 
virtual Int_t StopWorkThreads ()
 
Bool_t IsWorkStopped ()
 
virtual void GetStatus ()
 
const char * GetCommanderName () const
 
TGo4MasterGetMaster ()
 
TGo4SlaveGetSlave ()
 
void SendStopBuffers (const char *taskname=0)
 
TBuffer * GetAbortBuffer ()
 
- Public Member Functions inherited from TGo4ThreadManager
 TGo4ThreadManager (const TGo4ThreadManager &right)
 
 TGo4ThreadManager (const char *name, Bool_t blockingmode=kTRUE, Bool_t autostart=kTRUE, Bool_t autocreate=kTRUE)
 
virtual ~TGo4ThreadManager ()
 
void SetTimer (TGo4AppControlTimer *ctrltimer)
 
TGo4ThreadHandlerGetWorkHandler () const
 
Bool_t BlockApp ()
 
Bool_t UnBlockApp (Int_t mode=0)
 
Bool_t IsInitDone () const
 
Bool_t IsTerminating () const
 
Bool_t IsTerminateApp () const
 
Bool_t IsAppBlocking () const
 
Bool_t IsBeingQuit () const
 
void SetBeingQuit (Bool_t on)
 
void Launch ()
 
- Public Member Functions inherited from TGo4CommandReceiver
 TGo4CommandReceiver ()
 
virtual ~TGo4CommandReceiver ()
 

Static Public Member Functions

static Int_t Get_fgiTERMID ()
 

Protected Member Functions

virtual
TGo4TaskHandlerCommandList
CreateCommandList ()
 
TGo4TaskHandlerCommandListGetPrototype ()
 
virtual void UpdateStatus (TGo4TaskStatus *state)
 
TGo4ObjectQueueGetLocalCommandQueue ()
 
void SetMaster (Bool_t on=kTRUE)
 
void SetWorkIsStopped (Bool_t on)
 

Protected Attributes

TMutex * fxStatusMutex
 
TBuffer * fxStatusBuffer
 
- Protected Attributes inherited from TGo4ThreadManager
Bool_t fbInitDone
 
Bool_t fbTerminating
 
Bool_t fbTerminateApplication
 
Bool_t fbAppBlocking
 
Bool_t fbAutoCreate
 
Bool_t fbAutoStart
 
Int_t fbBeingQuit
 
TGo4AppControlTimerfxBlocker
 
TGo4ThreadHandlerfxWorkHandler
 

Private Member Functions

void SetMaster (TGo4Master *m)
 
void SetSlave (TGo4Slave *s)
 

Private Attributes

TGo4TaskHandlerCommandListfxCommandPrototype
 
TGo4ObjectQueuefxLocalCommandQueue
 
Bool_t fbCommandMaster
 
TString fxCommanderName
 
TGo4MasterfxMaster
 
TGo4SlavefxSlave
 
TGo4TaskOwnerfxOwner
 
Bool_t fbWorkIsStopped
 
TBuffer * fxStopBuffer
 
TBuffer * fxQuitBuffer
 
TBuffer * fxAbortBuffer
 

Static Private Attributes

static const Int_t fgiTERMID =999
 

Friends

class TGo4LocalCommandRunnable
 
class TGo4Slave
 
class TGo4TaskOwner
 

Additional Inherited Members

- Public Types inherited from TGo4ThreadManager
enum  { fguTEXTLENGTH = 256 }
 
- Static Public Attributes inherited from TGo4ThreadManager
static const Long_t fglTIMERPERIOD = 200
 

Detailed Description

Definition at line 35 of file TGo4Task.h.

Constructor & Destructor Documentation

TGo4Task::TGo4Task ( const char *  name,
Bool_t  blockingmode,
Bool_t  autostart = kFALSE,
Bool_t  autocreate = kTRUE,
Bool_t  ismaster = kFALSE 
)
TGo4Task::~TGo4Task ( )
virtual

Member Function Documentation

void TGo4Task::AddUserCommand ( TGo4Command com)

Add a user command object to the existing command list. This can be done on the fly. Command receiver name of user command must match "Analysis", "AnalysisClient", or the name of the user analysis to be executed on the remote side.

Definition at line 219 of file TGo4Task.cxx.

References TGo4CommandProtoList::AddCommand(), and fxCommandPrototype.

void TGo4Task::AddUserCommandList ( TGo4CommandProtoList comlist)

Add a user command list to the existing command list. This can be done on the fly. Commands of the user list are added to the existing command list.

Definition at line 224 of file TGo4Task.cxx.

References fxCommandPrototype.

TGo4TaskHandlerCommandList * TGo4Task::CreateCommandList ( )
protectedvirtual

factory method for command list; overridden by implementation

Reimplemented in TGo4ExampleServer.

Definition at line 518 of file TGo4Task.cxx.

Referenced by Initialization(), and TGo4Task().

TGo4TaskStatus * TGo4Task::CreateStatus ( )
virtual

create a status object with information on the current (slave) task. this object may be sent to the master or may be used to restore current status by memento mechanism

Reimplemented in TGo4ClientTask, and TGo4ExampleClient.

Definition at line 416 of file TGo4Task.cxx.

References UpdateStatus().

Referenced by GetStatus(), and UpdateStatusBuffer().

void TGo4Task::ExecuteString ( const char *  command)
virtual

Execute string command. Uses gInterpreter by default. May be overridden to evaluate go4 command strings in subclass.

Definition at line 147 of file TGo4Task.cxx.

References TGo4Slave::ExecuteString(), and fxSlave.

Referenced by TGo4ComExecLine::ExeCom().

Int_t TGo4Task::Get_fgiTERMID ( )
static
TBuffer* TGo4Task::GetAbortBuffer ( )
inline

Use preallocated abort buffer to stop remote socket wait from taskhandler itself

Definition at line 268 of file TGo4Task.h.

References fxAbortBuffer.

const char* TGo4Task::GetCommanderName ( ) const
inline

Definition at line 251 of file TGo4Task.h.

References fxCommanderName.

Referenced by Initialization(), SubmitLocalCommand(), and TGo4Task().

virtual TGo4BufferQueue* TGo4Task::GetCommandQueue ( const char *  task = 0)
inlinevirtual
virtual TGo4BufferQueue* TGo4Task::GetDataQueue ( const char *  task = 0)
inlinevirtual

Reimplemented in TGo4ClientTask, and TGo4ServerTask.

Definition at line 105 of file TGo4Task.h.

Referenced by NextObject(), SendObject(), SendStopBuffers(), and SubmitEmergencyData().

TGo4ObjectQueue* TGo4Task::GetLocalCommandQueue ( )
inlineprotected

Definition at line 288 of file TGo4Task.h.

References fxLocalCommandQueue.

Referenced by TGo4LocalCommandRunnable::Run(), and SubmitLocalCommand().

TGo4Master* TGo4Task::GetMaster ( )
inline

Definition at line 253 of file TGo4Task.h.

References fxMaster.

Referenced by TGo4TaskHandlerAbortException::Handle().

TGo4TaskHandlerCommandList * TGo4Task::GetPrototype ( )
protected

get pointer to currently valid command list

Definition at line 155 of file TGo4Task.cxx.

References fxCommandPrototype.

TGo4Slave* TGo4Task::GetSlave ( )
inline
void TGo4Task::GetStatus ( )
virtual

Send current status information of the task to the master; may be re-implemented by application subclass of TGo4Task

Definition at line 557 of file TGo4Task.cxx.

References TGo4BufferQueue::AddBufferFromObject(), CreateStatus(), TGo4Log::Debug(), and GetStatusQueue().

TMutex* TGo4Task::GetStatusBufferMutex ( )
inline

Access to the mutex of status buffer. To be locked outside any command, otherwise deadlocking possible

Definition at line 154 of file TGo4Task.h.

References fxStatusMutex.

Referenced by TGo4AnalysisMainRunnable::Run().

virtual TGo4BufferQueue* TGo4Task::GetStatusQueue ( const char *  task = 0)
inlinevirtual

Reimplemented in TGo4ClientTask, and TGo4ServerTask.

Definition at line 103 of file TGo4Task.h.

Referenced by GetStatus(), NextStatus(), SendStatus(), SendStatusBuffer(), and SendStopBuffers().

virtual TGo4TaskHandler* TGo4Task::GetTaskHandler ( )
inlinevirtual

Reimplemented in TGo4ClientTask, and TGo4ServerTask.

Definition at line 99 of file TGo4Task.h.

Referenced by TGo4AnalysisProxy::GetRole(), SendStopBuffers(), UpdateStatus(), and WakeCommandQueue().

Int_t TGo4Task::Initialization ( )
virtual

Overrides the ThreadManager Initialization; is used to setup the client connections on demand; checks for fbConnectRequest flag

Reimplemented from TGo4ThreadManager.

Reimplemented in TGo4ClientTask.

Definition at line 376 of file TGo4Task.cxx.

References TGo4Master::CreateCommandList(), CreateCommandList(), TGo4Log::Debug(), TGo4ThreadManager::fbInitDone, fxCommandPrototype, fxMaster, fxSlave, TGo4ThreadManager::fxWorkHandler, GetCommanderName(), TGo4ThreadManager::Initialization(), TGo4Slave::Initialization(), and TGo4ThreadHandler::Start().

Referenced by TGo4ClientTask::Initialization(), and TGo4AnalysisProxy::TGo4AnalysisProxy().

Bool_t TGo4Task::IsMaster ( )
inline
Bool_t TGo4Task::IsWorkStopped ( )
inline

Definition at line 242 of file TGo4Task.h.

References fbWorkIsStopped.

Referenced by TGo4ServerTask::SetCurrentTask().

void TGo4Task::KillMain ( )
virtual

Kill the main thread; method to be called from command, should be overridden in user implementation

Definition at line 121 of file TGo4Task.cxx.

References fxSlave, and TGo4Slave::KillMain().

Referenced by TGo4CommandRunnable::Run().

TGo4Command * TGo4Task::MakeCommand ( const char *  name)

Method using internal command prototype list to produce a clone of the specified command

Definition at line 523 of file TGo4Task.cxx.

References fxCommandPrototype, and TGo4CommandProtoList::MakeCommand().

Referenced by SubmitCommand().

TGo4Command * TGo4Task::NextCommand ( )
virtual
TObject * TGo4Task::NextObject ( Bool_t  wait = kTRUE)

Delivers next object from data queue. Encapsulates the queue wait and the object streaming. Streamer is decoupled from queue wait and sets global lockguard. If wait=kFALSE, queue will be polled once instead of condition wait.

Definition at line 199 of file TGo4Task.cxx.

References GetDataQueue(), TGo4Queue::IsEmpty(), IsMaster(), and TGo4BufferQueue::WaitObjectFromBuffer().

Referenced by TGo4DisplayDrawerTimer::Notify(), and TGo4ControllerRunnable::Run().

TGo4Status * TGo4Task::NextStatus ( Bool_t  wait = kTRUE)

Delivers next status object from status queue. Encapsulates the queue wait and the object streaming. Streamer is decoupled from queue wait and sets global lockguard. If wait=kFALSE, queue will be polled once instead of condition wait.

Definition at line 161 of file TGo4Task.cxx.

References TGo4Log::Debug(), GetStatusQueue(), TGo4Queue::IsEmpty(), IsMaster(), and TGo4BufferQueue::WaitObjectFromBuffer().

Referenced by TGo4DisplayLoggerTimer::Notify(), and TGo4LoggingRunnable::Run().

void TGo4Task::Quit ( )
virtual

Quit the client; method to be called from command object, may be overridden in user implementation

Reimplemented in TGo4ClientTask, and TGo4ServerTask.

Definition at line 116 of file TGo4Task.cxx.

References fxSlave, and TGo4TaskOwner::Quit().

Referenced by TGo4ComQuit::ExeCom(), TGo4TaskOwner::Quit(), and TGo4ClientTask::Quit().

void TGo4Task::RestartMain ( )
virtual

Restart the main thread; method to be called from command, should be overridden in user implementation

Definition at line 126 of file TGo4Task.cxx.

References fxSlave, and TGo4Slave::RestartMain().

Referenced by TGo4CommandRunnable::Run().

void TGo4Task::SendObject ( TObject *  obj,
const char *  receiver = 0 
)

Send object via data channel to the master. Master name may be specified, if more than one master is connected. By default, object is send to current active task

Definition at line 235 of file TGo4Task.cxx.

References TGo4BufferQueue::AddBufferFromObject(), TGo4Log::Debug(), GetDataQueue(), IsMaster(), and SendStatusMessage().

Referenced by TGo4Slave::SendObject().

void TGo4Task::SendStatus ( TGo4Status stat,
const char *  receiver = 0 
)
virtual

Send status object via status channel to the master. Master name may be specified, if more than one master is connected. By default, object is send to all connected tasks

Reimplemented in TGo4ServerTask.

Definition at line 259 of file TGo4Task.cxx.

References TGo4BufferQueue::AddBufferFromObject(), TGo4Log::Debug(), GetStatusQueue(), and IsMaster().

Referenced by TGo4ServerTask::SendStatus(), TGo4Slave::SendStatus(), and SendStatusMessage().

void TGo4Task::SendStatusBuffer ( )
virtual

Send internal status buffer to the master(s).

Reimplemented in TGo4ServerTask.

Definition at line 276 of file TGo4Task.cxx.

References TGo4BufferQueue::AddBuffer(), TGo4Log::Debug(), fxStatusBuffer, fxStatusMutex, GetStatusQueue(), and IsMaster().

Referenced by TGo4WatchRunnable::Run(), and TGo4Slave::SendStatusBuffer().

void TGo4Task::SendStatusMessage ( Int_t  level,
Bool_t  printout,
const char *  text,
  ... 
)

Send message string in a status object to the gui. Will be displayed in status window. Level indicates info, warning or error. Message text may begin with name of receiver for message, followed by "::". If no receiver is defined, all connected masters will receive message (default).

Definition at line 285 of file TGo4Task.cxx.

References IsMaster(), TGo4Log::IsOutputEnabled(), TGo4Log::Message(), TGo4Log::OutputEnable(), and SendStatus().

Referenced by TGo4TaskManager::AddClient(), TGo4ClientTask::ConnectServer(), TGo4ComExecLine::ExeCom(), TGo4ComStart::ExeCom(), TGo4ComStop::ExeCom(), TGo4ServerTask::Quit(), TGo4ClientTask::Quit(), TGo4TaskHandlerCommand::RefuseCom(), TGo4WatchRunnable::Run(), SendObject(), TGo4Slave::SendStatusMessage(), and TGo4ServerTask::Shutdown().

void TGo4Task::SendStopBuffers ( const char *  taskname = 0)

Send message buffers with stop values into queues and via socket connections. Used in disconnect procedure to put taskhandler threads into suspend mode, i.e. wake them from socket receive or queue wait. For multiple client connection, taskname defines which client to stop.

Definition at line 581 of file TGo4Task.cxx.

References TGo4BufferQueue::AddBuffer(), fxStopBuffer, GetCommandQueue(), GetDataQueue(), GetStatusQueue(), GetTaskHandler(), TGo4TaskHandler::IsAborting(), and IsMaster().

Referenced by TGo4TaskManager::DisConnectClient(), TGo4ClientTask::DisconnectServer(), and TGo4ServerTask::RemoveClient().

void TGo4Task::SetMaster ( Bool_t  on = kTRUE)
inlineprotected

Definition at line 290 of file TGo4Task.h.

References fbCommandMaster.

Referenced by SetMaster(), SetOwner(), SetSlave(), and TGo4ExampleClient::TGo4ExampleClient().

void TGo4Task::SetMaster ( TGo4Master m)
private

Definition at line 87 of file TGo4Task.cxx.

References fxMaster, and SetMaster().

void TGo4Task::SetOwner ( TGo4TaskOwner owner)

Set owner object and switch automatically in master or slave mode, depending on owner type

Definition at line 99 of file TGo4Task.cxx.

References fxOwner, SetMaster(), and SetSlave().

Referenced by TGo4TaskOwner::SetTask(), and TGo4TaskOwner::~TGo4TaskOwner().

void TGo4Task::SetSlave ( TGo4Slave s)
private

Definition at line 93 of file TGo4Task.cxx.

References fxSlave, and SetMaster().

Referenced by SetOwner().

void TGo4Task::SetWorkIsStopped ( Bool_t  on)
inlineprotected

Definition at line 292 of file TGo4Task.h.

References fbWorkIsStopped.

Referenced by TGo4TaskOwner::StartWorkThreads(), and TGo4TaskOwner::StopWorkThreads().

void TGo4Task::Start ( )
virtual

General start method of client application to be called from remote command; should be re-implemented by application

Reimplemented in TGo4ExampleClient.

Definition at line 106 of file TGo4Task.cxx.

References fxSlave, and TGo4Slave::Start().

Referenced by TGo4ComStart::ExeCom().

Int_t TGo4Task::StartWorkThreads ( )
virtual

start the working threads of the task implementation; this method is used after the current connection has changed, to continue reading/writing the queues. To be overridden by the derived task.

Reimplemented in TGo4ExampleServer.

Definition at line 569 of file TGo4Task.cxx.

References fbWorkIsStopped, fxOwner, and TGo4TaskOwner::StartWorkThreads().

Referenced by TGo4ClientTask::DisconnectServer(), TGo4ServerTask::RemoveClient(), TGo4TaskManager::RemoveTaskHandler(), TGo4ServerTask::SetCurrentTask(), and TGo4ExampleServer::StartWorkThreads().

void TGo4Task::Stop ( )
virtual

General stop method of client application to be called from remote command; should be re-implemented by application

Reimplemented in TGo4ExampleClient.

Definition at line 111 of file TGo4Task.cxx.

References fxSlave, and TGo4Slave::Stop().

Referenced by TGo4ComStop::ExeCom().

Int_t TGo4Task::StopWorkThreads ( )
virtual

stop the working threads of the task implementation; this method is used before the current connection is changed to prevent reading/writing and waiting for the wrong queues. To be overridden by the derived task.

Reimplemented in TGo4ExampleServer.

Definition at line 575 of file TGo4Task.cxx.

References fbWorkIsStopped, fxOwner, and TGo4TaskOwner::StopWorkThreads().

Referenced by TGo4ClientTask::DisconnectServer(), TGo4ServerTask::RemoveClient(), TGo4ServerTask::SetCurrentTask(), TGo4ServerTask::Shutdown(), and TGo4ExampleServer::StopWorkThreads().

Bool_t TGo4Task::SubmitCommand ( const char *  name)

send command specified by name to the current client task

Definition at line 423 of file TGo4Task.cxx.

References kComKillMain, kComQuit, kComRestartMain, MakeCommand(), and SubmitEmergencyCommand().

Referenced by TGo4TaskHandlerAbortException::Handle(), TGo4ControllerRunnable::Run(), TGo4Master::SubmitCommand(), and WakeCommandQueue().

Bool_t TGo4Task::SubmitCommand ( TGo4Command com)

send given command to the current client task. Command object is deleted after this call internally!

Definition at line 496 of file TGo4Task.cxx.

References TGo4BufferQueue::AddBufferFromObject(), GetCommandQueue(), TGo4Command::IsLocal(), and SubmitLocalCommand().

Bool_t TGo4Task::SubmitEmergencyCommand ( Go4EmergencyCommand_t  val)

send emergency quit command to the current client task

Definition at line 452 of file TGo4Task.cxx.

References TGo4BufferQueue::AddBuffer(), TGo4BufferQueue::CreateValueBuffer(), fxQuitBuffer, GetCommandQueue(), and kComQuit.

Referenced by TGo4ServerTask::RemoveClient(), SubmitCommand(), and TGo4Master::SubmitEmergencyCommand().

Bool_t TGo4Task::SubmitEmergencyData ( Go4EmergencyCommand_t  val,
const char *  receiver = 0 
)

Send emergency command via data channel. For analysis server shutdown, to inform clients about disconnect

Definition at line 474 of file TGo4Task.cxx.

References TGo4BufferQueue::AddBuffer(), TGo4BufferQueue::CreateValueBuffer(), fxQuitBuffer, GetDataQueue(), and kComQuit.

Referenced by TGo4ServerTask::RemoveClient().

Bool_t TGo4Task::SubmitLocalCommand ( TGo4Command com)
void TGo4Task::Terminate ( Bool_t  termapp = kTRUE)
virtual

deletes the Manager instance via Control timer. If termap is true, also terminates the root Application

Reimplemented from TGo4ThreadManager.

Definition at line 131 of file TGo4Task.cxx.

References fxSlave, TGo4Slave::Terminate(), and TGo4ThreadManager::Terminate().

Referenced by TGo4Master::DisconnectSlave(), TGo4ClientTask::Initialization(), TGo4ServerTask::Quit(), and TGo4ClientTask::Quit().

void TGo4Task::TerminateFast ( )
virtual

Overwrites the Threadmanager TerminateFast to shutdown the objectserver properly

Reimplemented from TGo4ThreadManager.

Definition at line 139 of file TGo4Task.cxx.

References fxSlave, TGo4Slave::TerminateFast(), and TGo4ThreadManager::TerminateFast().

Referenced by TGo4TaskHandlerAbortException::Handle().

void TGo4Task::UpdateStatus ( TGo4TaskStatus state)
protectedvirtual
void TGo4Task::UpdateStatusBuffer ( )

Create status object and stream it into the status send buffer. To be executed from the main thread; buffer will be send by status thread.

Definition at line 322 of file TGo4Task.cxx.

References TGo4Slave::CreateStatus(), CreateStatus(), fxSlave, fxStatusBuffer, fxStatusMutex, IsMaster(), and main().

Referenced by TGo4WatchRunnable::Run(), and TGo4Slave::UpdateStatusBuffer().

void TGo4Task::WakeCommandQueue ( Int_t  id = 0)

Put dummy object into command queue to wake up user threads which might wait for a command. To be used in quit and restart methods. Id can set in such way that application can check the command id for special action, e.g. stop thread in case of termination.

Definition at line 543 of file TGo4Task.cxx.

References GetTaskHandler(), TGo4TaskHandler::IsAborting(), SubmitCommand(), and SubmitLocalCommand().

Referenced by TGo4ClientTask::DisconnectServer(), TGo4AnalysisClient::KillMain(), TGo4ServerTask::Quit(), TGo4AnalysisClient::RestartMain(), and TGo4ServerTask::Shutdown().

Friends And Related Function Documentation

friend class TGo4LocalCommandRunnable
friend

Definition at line 38 of file TGo4Task.h.

Referenced by TGo4Task().

friend class TGo4Slave
friend

Definition at line 39 of file TGo4Task.h.

friend class TGo4TaskOwner
friend

Definition at line 40 of file TGo4Task.h.

Member Data Documentation

Bool_t TGo4Task::fbCommandMaster
private

This flag indicates the main state of the task: either master (sends commands, receives data and status), or slave (receives commands and may send date and status)

Definition at line 315 of file TGo4Task.h.

Referenced by IsMaster(), and SetMaster().

Bool_t TGo4Task::fbWorkIsStopped
private

True if user work threads are stopped for connection change

Definition at line 330 of file TGo4Task.h.

Referenced by IsWorkStopped(), SetWorkIsStopped(), StartWorkThreads(), and StopWorkThreads().

const Int_t TGo4Task::fgiTERMID =999
staticprivate

Id number of dummy command that wakes the command queue on termination

Definition at line 343 of file TGo4Task.h.

Referenced by Get_fgiTERMID().

TBuffer* TGo4Task::fxAbortBuffer
private

this buffer is used for emergency socket aborting

Definition at line 340 of file TGo4Task.h.

Referenced by GetAbortBuffer(), and TGo4Task().

TString TGo4Task::fxCommanderName
private

remember name of localcommand thread

Definition at line 318 of file TGo4Task.h.

Referenced by GetCommanderName(), and TGo4Task().

TGo4TaskHandlerCommandList* TGo4Task::fxCommandPrototype
private

the command list which holds all command prototypes

Definition at line 307 of file TGo4Task.h.

Referenced by AddUserCommand(), AddUserCommandList(), GetPrototype(), Initialization(), MakeCommand(), TGo4Task(), and ~TGo4Task().

TGo4ObjectQueue* TGo4Task::fxLocalCommandQueue
private

queue for the server side local commands, submitted by the gui or cli

Definition at line 310 of file TGo4Task.h.

Referenced by GetLocalCommandQueue(), TGo4Task(), and ~TGo4Task().

TGo4Master* TGo4Task::fxMaster
private

0..1

Definition at line 321 of file TGo4Task.h.

Referenced by GetMaster(), Initialization(), and SetMaster().

TGo4TaskOwner* TGo4Task::fxOwner
private

0..1

Definition at line 327 of file TGo4Task.h.

Referenced by SetOwner(), StartWorkThreads(), StopWorkThreads(), and ~TGo4Task().

TBuffer* TGo4Task::fxQuitBuffer
private

this buffer is used for quit command

Definition at line 337 of file TGo4Task.h.

Referenced by SubmitEmergencyCommand(), SubmitEmergencyData(), TGo4Task(), and ~TGo4Task().

TGo4Slave* TGo4Task::fxSlave
private
TBuffer* TGo4Task::fxStatusBuffer
protected

Buffer containing the analysis status which is updated by the main thread

Definition at line 298 of file TGo4Task.h.

Referenced by TGo4ServerTask::SendStatusBuffer(), SendStatusBuffer(), TGo4Task(), UpdateStatusBuffer(), and ~TGo4Task().

TMutex* TGo4Task::fxStatusMutex
protected

Mutex protecting status buffer between main and watch thread.

Definition at line 295 of file TGo4Task.h.

Referenced by GetStatusBufferMutex(), TGo4ServerTask::SendStatusBuffer(), SendStatusBuffer(), TGo4Task(), UpdateStatusBuffer(), and ~TGo4Task().

TBuffer* TGo4Task::fxStopBuffer
private

this buffer is used for stop message for threads

Definition at line 334 of file TGo4Task.h.

Referenced by SendStopBuffers(), TGo4Task(), and ~TGo4Task().


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