#include <TGo4Slave.h>
Public Member Functions | |
TGo4Slave () | |
TGo4Slave (const char *name, Bool_t isserver=kTRUE, const char *serverhost="localhost", UInt_t negotport=5000) | |
virtual | ~TGo4Slave () |
virtual void | Start () |
virtual void | Stop () |
virtual void | KillMain () |
virtual void | RestartMain () |
virtual void | Terminate (Bool_t termapp=kTRUE) |
virtual void | TerminateFast () |
virtual TGo4TaskStatus * | CreateStatus () |
Bool_t | MainIsRunning () |
TGo4Command * | NextCommand () |
void | SendObject (TObject *obj, const char *receiver=0) |
void | SendStatus (TGo4Status *stat, const char *receiver=0) |
virtual Int_t | Initialization () |
TGo4ThreadHandler * | GetThreadHandler () |
void | SendStatusBuffer () |
virtual void | SendStatusMessage (Int_t level, Bool_t printout, const TString &text) |
void | UpdateStatusBuffer () |
virtual void | ExecuteString (const char *command) |
Protected Member Functions | |
virtual void | UpdateStatus (TGo4TaskStatus *state) |
Private Attributes | |
Bool_t | fbMainIsRunning |
Baseclass for all slave process entities. A Slave receives commands and may send data and status objects via the TGo4Task connection. This can run either as server or client task.
Definition at line 27 of file TGo4Slave.h.
TGo4Slave::TGo4Slave | ( | ) |
Definition at line 57 of file TGo4Slave.cxx.
TGo4Slave::TGo4Slave | ( | const char * | name, | |
Bool_t | isserver = kTRUE , |
|||
const char * | serverhost = "localhost" , |
|||
UInt_t | negotport = 5000 | |||
) |
Definition at line 26 of file TGo4Slave.cxx.
References TGo4CommandInvoker::Instance(), TGo4TaskOwner::IsServer(), TGo4CommandInvoker::Register(), TGo4CommandInvoker::SetCommandList(), TGo4TaskOwner::SetTask(), and TGo4TaskOwner::TGo4ServerTask.
TGo4Slave::~TGo4Slave | ( | ) | [virtual] |
Definition at line 61 of file TGo4Slave.cxx.
References TGo4CommandInvoker::UnRegister().
TGo4TaskStatus * TGo4Slave::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 TGo4AnalysisClient.
Definition at line 102 of file TGo4Slave.cxx.
References TGo4TaskOwner::GetName(), and UpdateStatus().
Referenced by TGo4Task::UpdateStatusBuffer().
void TGo4Slave::ExecuteString | ( | const char * | command | ) | [virtual] |
Execute string command. Uses gInterpreter by default. May be overridden to evaluate go4 command strings in subclass.
Reimplemented in TGo4AnalysisClient.
Definition at line 162 of file TGo4Slave.cxx.
Referenced by TGo4Task::ExecuteString().
TGo4ThreadHandler * TGo4Slave::GetThreadHandler | ( | ) |
Definition at line 138 of file TGo4Slave.cxx.
References TGo4TaskOwner::GetTask(), and TGo4ThreadManager::GetWorkHandler().
Referenced by TGo4AnalysisClient::Constructor(), TGo4AnalysisClient::KillMain(), TGo4AnalysisClient::RestartMain(), TGo4AnalysisClient::Start(), TGo4AnalysisClient::StartWorkThreads(), TGo4AnalysisClient::StopWorkThreads(), TGo4AnalysisClient::TerminateFast(), TGo4HistogramServer::TGo4HistogramServer(), and TGo4AnalysisClient::~TGo4AnalysisClient().
Int_t TGo4Slave::Initialization | ( | ) | [virtual] |
Overrides the ThreadManager Initialization; is used to setup the client connections on demand; checks for fbConnectRequest flag
Reimplemented in TGo4AnalysisClient.
Definition at line 132 of file TGo4Slave.cxx.
Referenced by TGo4Task::Initialization().
void TGo4Slave::KillMain | ( | ) | [virtual] |
Kill the main thread; method to be called from command, should be overridden in user implementation
Reimplemented in TGo4AnalysisClient.
Definition at line 80 of file TGo4Slave.cxx.
Referenced by TGo4Task::KillMain().
Bool_t TGo4Slave::MainIsRunning | ( | ) | [inline] |
Definition at line 92 of file TGo4Slave.h.
References fbMainIsRunning.
Referenced by TGo4ComSetAnalysisStatus::ExeCom(), TGo4ComInitAnalysis::ExeCom(), TGo4ComCloseAnalysis::ExeCom(), TGo4Analysis::IsRunning(), TGo4Task::NextCommand(), TGo4AnalysisMainRunnable::PostRun(), TGo4AnalysisWatchRunnable::Run(), TGo4AnalysisMainRunnable::Run(), TGo4AnalysisClient::Start(), and TGo4AnalysisClient::Stop().
TGo4Command * TGo4Slave::NextCommand | ( | ) |
Delivers next command from command queue.
Definition at line 115 of file TGo4Slave.cxx.
References TGo4TaskOwner::GetTask(), and TGo4Task::NextCommand().
Referenced by TGo4AnalysisMainRunnable::Run().
void TGo4Slave::RestartMain | ( | ) | [virtual] |
Restart the main thread; method to be called from command, should be overridden in user implementation
Reimplemented in TGo4AnalysisClient.
Definition at line 85 of file TGo4Slave.cxx.
Referenced by TGo4Task::RestartMain().
void TGo4Slave::SendObject | ( | TObject * | obj, | |
const char * | receiver = 0 | |||
) |
Send object via data channel to the server.
Definition at line 120 of file TGo4Slave.cxx.
References TGo4TaskOwner::GetTask(), and TGo4Task::SendObject().
Referenced by TGo4ComGetObjectStatus::ExeCom(), TGo4ComGetNamesList::ExeCom(), TGo4ComGetEnvelope::ExeCom(), TGo4ComGetCurrentEvent::ExeCom(), TGo4AnalysisClient::SendAnalysisObject(), TGo4AnalysisClient::SendNamesList(), and TGo4Analysis::SendObjectToGUI().
void TGo4Slave::SendStatus | ( | TGo4Status * | stat, | |
const char * | receiver = 0 | |||
) |
Send status object via status channel to the server.
Definition at line 126 of file TGo4Slave.cxx.
References TGo4TaskOwner::GetTask(), and TGo4Task::SendStatus().
Referenced by TGo4ComSetObject::ExeCom(), TGo4ComGetAnalysisStatus::ExeCom(), and TGo4AnalysisClient::SendAnalysisStatus().
void TGo4Slave::SendStatusBuffer | ( | ) |
Send internal status buffer to the server.
Definition at line 144 of file TGo4Slave.cxx.
References TGo4TaskOwner::GetTask(), and TGo4Task::SendStatusBuffer().
Referenced by TGo4AnalysisClient::SendAnalysisClientStatus().
void TGo4Slave::SendStatusMessage | ( | Int_t | level, | |
Bool_t | printout, | |||
const TString & | text | |||
) | [virtual] |
Send message string in a status object to the gui. Will be displayed in status window. Level indicates info, warning or error,
Reimplemented in TGo4AnalysisClient.
Definition at line 150 of file TGo4Slave.cxx.
References TGo4TaskOwner::GetTask(), and TGo4Task::SendStatusMessage().
void TGo4Slave::Start | ( | ) | [virtual] |
General start method of slave application to be called from remote command; should be re-implemented by application
Reimplemented in TGo4AnalysisClient.
Definition at line 67 of file TGo4Slave.cxx.
References TGo4Log::Debug(), fbMainIsRunning, and TGo4TaskOwner::GetName().
Referenced by TGo4Task::Start().
void TGo4Slave::Stop | ( | ) | [virtual] |
General stop method of slave application to be called from remote command; should be re-implemented by application
Reimplemented in TGo4AnalysisClient.
Definition at line 74 of file TGo4Slave.cxx.
References TGo4Log::Debug(), fbMainIsRunning, and TGo4TaskOwner::GetName().
Referenced by TGo4ServerTask::Quit(), TGo4ServerTask::Shutdown(), and TGo4Task::Stop().
void TGo4Slave::Terminate | ( | Bool_t | termapp = kTRUE |
) | [virtual] |
Reimplemented in TGo4AnalysisClient.
Definition at line 90 of file TGo4Slave.cxx.
References TGo4TaskOwner::GetTask().
Referenced by TGo4Task::Terminate(), and TerminateFast().
void TGo4Slave::TerminateFast | ( | ) | [virtual] |
Reimplemented in TGo4AnalysisClient.
Definition at line 96 of file TGo4Slave.cxx.
References Terminate().
Referenced by TGo4TaskHandlerAbortException::Handle(), and TGo4Task::TerminateFast().
void TGo4Slave::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 TGo4AnalysisClient.
Definition at line 109 of file TGo4Slave.cxx.
References TGo4TaskOwner::GetTask(), and TGo4Task::UpdateStatus().
Referenced by CreateStatus().
void TGo4Slave::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 157 of file TGo4Slave.cxx.
References TGo4TaskOwner::GetTask(), and TGo4Task::UpdateStatusBuffer().
Referenced by TGo4AnalysisClient::Constructor(), TGo4AnalysisClient::Initialization(), TGo4Analysis::MainCycle(), TGo4AnalysisWatchRunnable::Run(), TGo4AnalysisClient::Start(), and TGo4AnalysisClient::Stop().
Bool_t TGo4Slave::fbMainIsRunning [private] |
True if analysis main loop is running. If false, the slave main thread will just wait on incoming commands without processing main loop.
Definition at line 34 of file TGo4Slave.h.
Referenced by MainIsRunning(), Start(), and Stop().