Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

TGo4Task Class Reference

#include <TGo4Task.h>

Inheritance diagram for TGo4Task:

TGo4ThreadManager TGo4CommandReceiver TGo4ClientTask TGo4ServerTask TGo4ExampleClient TGo4ExampleServer List of all members.

Public Methods

 TGo4Task (const char *name, Bool_t blockingmode, Bool_t autostart=kFALSE, Bool_t autocreate=kTRUE, Bool_t ismaster=kFALSE)
virtual ~TGo4Task ()
virtual void Start ()
 General start method of client application to be called from remote command; should be re-implemented by application. More...

virtual void Stop ()
 General stop method of client application to be called from remote command; should be re-implemented by application. More...

virtual void Quit ()
 Quit the client; method to be called from command object, may be overridden in user implementation. More...

virtual void KillMain ()
 Kill the main thread; method to be called from command, should be overridden in user implementation. More...

virtual void RestartMain ()
 Restart the main thread; method to be called from command, should be overridden in user implementation. More...

virtual void Terminate (Bool_t termapp=kTRUE)
 deletes the Manager instance via Control timer. More...

virtual void TerminateFast ()
 Overwrites the Threadmanager TerminateFast to shutdown the objectserver properly. More...

virtual void ExecuteString (const Text_t *command)
 Execute string command. More...

Bool_t IsMaster ()
void SetOwner (TGo4TaskOwner *owner)
 Set owner object and switch automatically in master or slave mode, depending on owner type. More...

virtual TGo4TaskHandlerGetTaskHandler ()
virtual TGo4BufferQueueGetCommandQueue (const char *task=0)
virtual TGo4BufferQueueGetStatusQueue (const char *task=0)
virtual TGo4BufferQueueGetDataQueue (const char *task=0)
void AddUserCommand (TGo4Command *com)
 Add a user command object to the existing command list. More...

void AddUserCommandList (TGo4CommandProtoList *comlist)
 Add a user command list to the existing command list. More...

TGo4StatusNextStatus (Bool_t wait=kTRUE)
 Delivers next status object from status queue. More...

TObject * NextObject (Bool_t wait=kTRUE)
 Delivers next object from data queue. More...

virtual TGo4CommandNextCommand ()
 Delivers next command from command queue. More...

void SendObject (TObject *obj, const char *receiver=0)
 Send object via data channel to the master. More...

virtual void SendStatus (TGo4Status *stat, const char *receiver=0)
 Send status object via status channel to the master. More...

virtual void SendStatusBuffer ()
 Send internal status buffer to the master(s). More...

void SendStatusMessage (Int_t level, Bool_t printout, const char *text,...)
 Send message string in a status object to the gui. More...

void UpdateStatusBuffer ()
 Create status object and stream it into the status send buffer. More...

virtual Int_t Initialization ()
 Overrides the ThreadManager Initialization; is used to setup the client connections on demand; checks for fbConnectRequest flag. More...

virtual TGo4TaskStatusCreateStatus ()
 create a status object with information on the current (slave) task. More...

Bool_t SubmitCommand (const char *name)
 send command specified by name to the current client task. More...

Bool_t SubmitEmergencyCommand (Go4EmergencyCommand_t val)
 send emergency quit command to the current client task. More...

Bool_t SubmitEmergencyData (Go4EmergencyCommand_t val, const char *receiver=0)
 Send emergency command via data channel. More...

Bool_t SubmitLocalCommand (TGo4Command *com)
 send given command to the current client task. More...

Bool_t SubmitCommand (TGo4Command *com)
 send given command to the current client task. More...

TGo4CommandMakeCommand (const char *name)
 Method using internal command prototype list to produce a clone of the specified command. More...

void WakeCommandQueue (Int_t id=0)
 Put dummy object into command queue to wake up user threads which might wait for a command. More...

virtual Int_t StartWorkThreads ()
 start the working threads of the task implementation; this method is used after the current connection has changed, to continue reading/writing the queues. More...

virtual Int_t StopWorkThreads ()
 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. More...

Bool_t IsWorkStopped ()
virtual void GetStatus ()
 Send current status information of the task to the master; may be re-implemented by application subclass of TGo4Task. More...

const char * GetCommanderName () const
TGo4MasterGetMaster ()
TGo4SlaveGetSlave ()
void SendStopBuffers (const char *taskname=0)
 Send message buffers with stop values into queues and via socket connections. More...


Static Public Attributes

const Int_t fgiTERMID = 999
 Id number of dummy command that wakes the command queue on termination. More...


Protected Methods

virtual TGo4TaskHandlerCommandListCreateCommandList ()
 factory method for command list; overridden by implementation. More...

TGo4TaskHandlerCommandListGetPrototype ()
 get pointer to currently valid command list. More...

virtual void UpdateStatus (TGo4TaskStatus *state)
 method needed by method CreateStatus of any status subclasses to set the values of the clienttask specific part of the status object. More...

TGo4ObjectQueueGetLocalCommandQueue ()
void SetMaster (Bool_t on=kTRUE)
void SetWorkIsStopped (Bool_t on)

Protected Attributes

TMutex * fxStatusMutex
 Mutex protecting status buffer between main and watch thread. More...

TBuffer * fxStatusBuffer
 Buffer containing the analysis status which is updated by the main thread. More...


Private Methods

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

Private Attributes

TGo4TaskHandlerCommandListfxCommandPrototype
 the command list which holds all command prototypes. More...

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

Bool_t fbCommandMaster
 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). More...

TString fxCommanderName
 remember name of localcommand thread. More...

TGo4MasterfxMaster
 @supplierCardinality 0..1. More...

TGo4SlavefxSlave
 @supplierCardinality 0..1. More...

TGo4TaskOwnerfxOwner
 @supplierCardinality 0..1. More...

Bool_t fbWorkIsStopped
 True if user work threads are stopped for connection change. More...

TBuffer * fxStopBuffer
 this buffer is used for stop message for threads. More...

TBuffer * fxQuitBuffer
 this buffer is used for quit command. More...


Friends

class TGo4LocalCommandRunnable
class TGo4Slave
class TGo4TaskOwner

Constructor & Destructor Documentation

TGo4Task::TGo4Task const char *    name,
Bool_t    blockingmode,
Bool_t    autostart = kFALSE,
Bool_t    autocreate = kTRUE,
Bool_t    ismaster = kFALSE
 

Definition at line 42 of file TGo4Task.cxx.

References TGo4BufferQueue::CreateValueBuffer(), TGo4ThreadManager::fguTEXTLENGTH, fxCommanderName, fxCommandPrototype, fxLocalCommandQueue, fxQuitBuffer, fxStatusBuffer, fxStatusMutex, fxStopBuffer, GetCommanderName(), TGo4ThreadManager::GetWorkHandler(), TGo4CommandInvoker::Instance(), kComCloseInput, kComQuit, TGo4ThreadHandler::NewThread(), TGo4CommandInvoker::Register(), and TGo4LocalCommandRunnable.

TGo4Task::~TGo4Task   [virtual]
 

Definition at line 73 of file TGo4Task.cxx.

References fxCommandPrototype, fxLocalCommandQueue, fxOwner, fxQuitBuffer, fxStatusBuffer, fxStatusMutex, fxStopBuffer, and TGo4TaskOwner::SetTask().


Member Function Documentation

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 95 of file TGo4Task.cxx.

References fxSlave, and TGo4Slave::Start().

Referenced by TGo4ComStart::ExeCom().

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 100 of file TGo4Task.cxx.

References fxSlave, and TGo4Slave::Stop().

Referenced by TGo4ComStop::ExeCom().

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 108 of file TGo4Task.cxx.

References fxSlave, and TGo4TaskOwner::Quit().

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

void TGo4Task::KillMain   [virtual]
 

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

Definition at line 113 of file TGo4Task.cxx.

References fxSlave, and TGo4Slave::KillMain().

Referenced by TGo4CommandRunnable::Run().

void TGo4Task::RestartMain   [virtual]
 

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

Definition at line 118 of file TGo4Task.cxx.

References fxSlave, and TGo4Slave::RestartMain().

Referenced by TGo4ComRelaunch::ExeCom(), and TGo4CommandRunnable::Run().

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 123 of file TGo4Task.cxx.

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

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

void TGo4Task::TerminateFast   [virtual]
 

Overwrites the Threadmanager TerminateFast to shutdown the objectserver properly.

Reimplemented from TGo4ThreadManager.

Definition at line 131 of file TGo4Task.cxx.

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

Referenced by TGo4TaskHandlerAbortException::Handle().

void TGo4Task::ExecuteString const Text_t *    command [virtual]
 

Execute string command.

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

Definition at line 139 of file TGo4Task.cxx.

References TGo4Slave::ExecuteString(), and fxSlave.

Referenced by TGo4ComExecLine::ExeCom().

Bool_t TGo4Task::IsMaster   [inline]
 

Definition at line 104 of file TGo4Task.h.

References fbCommandMaster.

Referenced by TGo4TaskManager::ClientLogin(), TGo4ClientTask::ConnectServer(), TGo4ClientTask::DisconnectServer(), TGo4TaskManager::NewTaskHandler(), NextCommand(), TGo4ServerTask::NextCommand(), NextObject(), NextStatus(), TGo4ServerTask::Quit(), TGo4ServerTask::RemoveClient(), SendObject(), SendStatus(), TGo4ServerTask::SendStatus(), SendStatusBuffer(), TGo4ServerTask::SendStatusBuffer(), SendStatusMessage(), SendStopBuffers(), TGo4ServerTask::Shutdown(), TGo4ClientTask::TGo4ClientTask(), and UpdateStatusBuffer().

void TGo4Task::SetOwner TGo4TaskOwner   owner
 

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

Definition at line 88 of file TGo4Task.cxx.

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

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

TGo4TaskHandler * TGo4Task::GetTaskHandler   [virtual]
 

Reimplemented in TGo4ClientTask, and TGo4ServerTask.

Definition at line 148 of file TGo4Task.cxx.

Referenced by TGo4ScriptSlots::execGUICommands(), SendStopBuffers(), UpdateStatus(), WakeCommandQueue(), and TGo4AnalysisClient::~TGo4AnalysisClient().

TGo4BufferQueue * TGo4Task::GetCommandQueue const char *    task = 0 [virtual]
 

Reimplemented in TGo4ClientTask, and TGo4ServerTask.

Definition at line 153 of file TGo4Task.cxx.

Referenced by NextCommand(), SendStopBuffers(), TGo4GUIRegistry::StopMonitoring(), SubmitCommand(), and SubmitEmergencyCommand().

TGo4BufferQueue * TGo4Task::GetStatusQueue const char *    task = 0 [virtual]
 

Reimplemented in TGo4ClientTask, and TGo4ServerTask.

Definition at line 158 of file TGo4Task.cxx.

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

TGo4BufferQueue * TGo4Task::GetDataQueue const char *    task = 0 [virtual]
 

Reimplemented in TGo4ClientTask, and TGo4ServerTask.

Definition at line 162 of file TGo4Task.cxx.

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

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 230 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 235 of file TGo4Task.cxx.

References fxCommandPrototype.

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 173 of file TGo4Task.cxx.

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

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

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 211 of file TGo4Task.cxx.

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

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

TGo4Command * TGo4Task::NextCommand   [virtual]
 

Delivers next command from command queue.

Reimplemented in TGo4ServerTask.

Definition at line 361 of file TGo4Task.cxx.

References fxSlave, GetCommandQueue(), TGo4Queue::IsEmpty(), IsMaster(), kGo4ComModeController, TGo4Slave::MainIsRunning(), TGo4Command::SetMode(), TGo4Command::SetTaskName(), and TGo4BufferQueue::WaitObjectFromBuffer().

Referenced by TGo4Slave::NextCommand(), and TGo4MainRunnable::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 246 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 271 of file TGo4Task.cxx.

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

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

void TGo4Task::SendStatusBuffer   [virtual]
 

Send internal status buffer to the master(s).

Reimplemented in TGo4ServerTask.

Definition at line 296 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 304 of file TGo4Task.cxx.

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

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

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 344 of file TGo4Task.cxx.

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

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

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 397 of file TGo4Task.cxx.

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

Referenced by TGo4ClientTask::Initialization().

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 437 of file TGo4Task.cxx.

References UpdateStatus().

Referenced by GetStatus(), and UpdateStatusBuffer().

Bool_t TGo4Task::SubmitCommand const char *    name
 

send command specified by name to the current client task.

Definition at line 445 of file TGo4Task.cxx.

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

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

Bool_t TGo4Task::SubmitEmergencyCommand Go4EmergencyCommand_t    val
 

send emergency quit command to the current client task.

Definition at line 465 of file TGo4Task.cxx.

References TGo4BufferQueue::AddBuffer(), TGo4BufferQueue::CreateValueBuffer(), fxQuitBuffer, GetCommandQueue(), Go4EmergencyCommand_t, 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 487 of file TGo4Task.cxx.

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

Referenced by TGo4ServerTask::RemoveClient().

Bool_t TGo4Task::SubmitLocalCommand TGo4Command   com
 

send given command to the current client task.

Command object is deleted after this call internally!

Definition at line 542 of file TGo4Task.cxx.

References TGo4ObjectQueue::AddObject(), TGo4ThreadManager::fxWorkHandler, GetCommanderName(), GetLocalCommandQueue(), kGo4ComModeController, TGo4Command::SetMode(), and TGo4ThreadHandler::Start().

Referenced by TGo4DataRunnable::Run(), TGo4CommandRunnable::Run(), 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 509 of file TGo4Task.cxx.

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

TGo4Command * TGo4Task::MakeCommand const char *    name
 

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

Definition at line 536 of file TGo4Task.cxx.

References fxCommandPrototype, and TGo4CommandProtoList::MakeCommand().

Referenced by TGo4GUIRegistry::MakeCommand(), and SubmitCommand().

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 557 of file TGo4Task.cxx.

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

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

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 585 of file TGo4Task.cxx.

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

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

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 594 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::IsWorkStopped   [inline]
 

Definition at line 257 of file TGo4Task.h.

References fbWorkIsStopped.

Referenced by TGo4ServerTask::SetCurrentTask().

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 572 of file TGo4Task.cxx.

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

Referenced by TGo4ComGetStatus::ExeCom().

const char* TGo4Task::GetCommanderName   const [inline]
 

Definition at line 268 of file TGo4Task.h.

References fxCommanderName.

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

TGo4Master* TGo4Task::GetMaster   [inline]
 

Definition at line 270 of file TGo4Task.h.

References fxMaster.

Referenced by TGo4TaskHandlerAbortException::Handle(), and TGo4ServerTask::LaunchClient().

TGo4Slave* TGo4Task::GetSlave   [inline]
 

Definition at line 275 of file TGo4Task.h.

References fxSlave.

Referenced by TGo4TaskHandlerAbortException::Handle(), 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 603 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().

TGo4TaskHandlerCommandList * TGo4Task::CreateCommandList   [protected, virtual]
 

factory method for command list; overridden by implementation.

Reimplemented in TGo4ExampleServer.

Definition at line 531 of file TGo4Task.cxx.

Referenced by Initialization().

TGo4TaskHandlerCommandList * TGo4Task::GetPrototype   [protected]
 

get pointer to currently valid command list.

Definition at line 167 of file TGo4Task.cxx.

References fxCommandPrototype.

void TGo4Task::UpdateStatus TGo4TaskStatus   state [protected, virtual]
 

method needed by method CreateStatus of any status subclasses to set the values of the clienttask specific part of the status object.

Reimplemented in TGo4ClientTask.

Definition at line 428 of file TGo4Task.cxx.

References TGo4TaskHandler::CreateStatus(), TGo4ThreadManager::fbAppBlocking, TGo4ThreadManager::fbAutoCreate, TGo4ThreadManager::fbAutoStart, TGo4ThreadManager::fbInitDone, TGo4ThreadManager::fbTerminating, GetTaskHandler(), TGo4TaskStatus::SetFlags(), and TGo4TaskStatus::SetTaskHandlerStatus().

Referenced by CreateStatus(), TGo4Slave::UpdateStatus(), and TGo4ClientTask::UpdateStatus().

TGo4ObjectQueue* TGo4Task::GetLocalCommandQueue   [inline, protected]
 

Definition at line 317 of file TGo4Task.h.

References fxLocalCommandQueue.

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

void TGo4Task::SetMaster Bool_t    on = kTRUE [inline, protected]
 

Definition at line 322 of file TGo4Task.h.

References fbCommandMaster.

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

void TGo4Task::SetWorkIsStopped Bool_t    on [inline, protected]
 

Definition at line 327 of file TGo4Task.h.

References fbWorkIsStopped.

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

void TGo4Task::SetMaster TGo4Master   m [inline, private]
 

Definition at line 347 of file TGo4Task.h.

References fxMaster, and SetMaster().

void TGo4Task::SetSlave TGo4Slave   s [inline, private]
 

Definition at line 353 of file TGo4Task.h.

References fxSlave, and SetMaster().

Referenced by SetOwner().


Friends And Related Function Documentation

friend class TGo4LocalCommandRunnable [friend]
 

Definition at line 49 of file TGo4Task.h.

Referenced by TGo4Task().

friend class TGo4Slave [friend]
 

Definition at line 50 of file TGo4Task.h.

friend class TGo4TaskOwner [friend]
 

Definition at line 51 of file TGo4Task.h.


Member Data Documentation

const Int_t TGo4Task::fgiTERMID = 999 [static]
 

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

Definition at line 40 of file TGo4Task.cxx.

Referenced by TGo4ClientTask::DisconnectServer(), TGo4ServerTask::Quit(), TGo4LocalCommandRunnable::Run(), TGo4AnalysisMainRunnable::Run(), and TGo4ServerTask::Shutdown().

TMutex* TGo4Task::fxStatusMutex [protected]
 

Mutex protecting status buffer between main and watch thread.

Definition at line 333 of file TGo4Task.h.

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

TBuffer* TGo4Task::fxStatusBuffer [protected]
 

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

Definition at line 339 of file TGo4Task.h.

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

TGo4TaskHandlerCommandList* TGo4Task::fxCommandPrototype [private]
 

the command list which holds all command prototypes.

Definition at line 365 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 370 of file TGo4Task.h.

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

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 378 of file TGo4Task.h.

Referenced by IsMaster(), and SetMaster().

TString TGo4Task::fxCommanderName [private]
 

remember name of localcommand thread.

Definition at line 383 of file TGo4Task.h.

Referenced by GetCommanderName(), and TGo4Task().

TGo4Master* TGo4Task::fxMaster [private]
 

@supplierCardinality 0..1.

Definition at line 388 of file TGo4Task.h.

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

TGo4Slave* TGo4Task::fxSlave [private]
 

@supplierCardinality 0..1.

Definition at line 391 of file TGo4Task.h.

Referenced by ExecuteString(), GetSlave(), Initialization(), KillMain(), NextCommand(), Quit(), RestartMain(), SetSlave(), Start(), Stop(), Terminate(), TerminateFast(), and UpdateStatusBuffer().

TGo4TaskOwner* TGo4Task::fxOwner [private]
 

@supplierCardinality 0..1.

Definition at line 394 of file TGo4Task.h.

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

Bool_t TGo4Task::fbWorkIsStopped [private]
 

True if user work threads are stopped for connection change.

Definition at line 400 of file TGo4Task.h.

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

TBuffer* TGo4Task::fxStopBuffer [private]
 

this buffer is used for stop message for threads.

Definition at line 404 of file TGo4Task.h.

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

TBuffer* TGo4Task::fxQuitBuffer [private]
 

this buffer is used for quit command.

Definition at line 407 of file TGo4Task.h.

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


The documentation for this class was generated from the following files:
Generated on Tue Nov 8 10:56:56 2005 for Go4-v2.10-5 by doxygen1.2.15