Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

TGo4CommandInvoker Class Reference

Class that knows Command Object; When Client gets the Command it is passed to the Invoker who sets the CommandClient as receiver and calls its Execute method. More...

#include <TGo4CommandInvoker.h>

Inheritance diagram for TGo4CommandInvoker:

TGo4CommandReceiver List of all members.

Public Member Functions

virtual void Invoke (TGo4Command *com)
virtual void Invoke ()
virtual ~TGo4CommandInvoker ()
Int_t ExecuteFromRemote (TGo4RemoteCommand *remcom)
 Create real command from remote command and invoke it.

Static Public Member Functions

static TGo4CommandInvokerInstance ()
static void Register (const char *name, TGo4CommandReceiver *p)
static void UnRegister (TGo4CommandReceiver *p)
static void SetCommandList (TGo4CommandProtoList *list)
 Application may exchange standard command list by own subclass with specialized commands, e.g.

Protected Member Functions

 TGo4CommandInvoker ()

Static Protected Member Functions

static TGo4CommandReceiverLookup (const char *name)

Private Attributes

TGo4CommandfxCommand
 

Static Private Attributes

static TGo4CommandProtoListfxCommandList = 0
 For remote commands, invoker will create the requested slave commands from own command list.
static TGo4CommandInvokerfxInstance = 0
static TObjArray * fxArray = 0
static TMutex * fxMutex = 0

Detailed Description

Class that knows Command Object; When Client gets the Command it is passed to the Invoker who sets the CommandClient as receiver and calls its Execute method.

Decouples CommandClient and Command object circular dependencies

Definition at line 39 of file TGo4CommandInvoker.h.


Constructor & Destructor Documentation

TGo4CommandInvoker::~TGo4CommandInvoker  )  [virtual]
 

Definition at line 67 of file TGo4CommandInvoker.cxx.

References fxArray, fxCommand, fxCommandList, fxMutex, and TRACE.

TGo4CommandInvoker::TGo4CommandInvoker  )  [protected]
 

Definition at line 55 of file TGo4CommandInvoker.cxx.

References fxArray, fxCommand, fxCommandList, fxMutex, Register(), and TRACE.

Referenced by Instance().


Member Function Documentation

TGo4CommandInvoker * TGo4CommandInvoker::Instance  )  [static]
 

Definition at line 78 of file TGo4CommandInvoker.cxx.

References fxInstance, TGo4CommandInvoker(), and TRACE.

Referenced by TGo4AnalysisClient::Constructor(), TGo4MainRunnable::Run(), TGo4LocalCommandRunnable::Run(), TGo4AnalysisMainRunnable::Run(), TGo4Analysis::TGo4Analysis(), TGo4CommandRunnable::TGo4CommandRunnable(), TGo4ExampleApplication::TGo4ExampleApplication(), TGo4HistogramServer::TGo4HistogramServer(), TGo4Master::TGo4Master(), TGo4ServerTask::TGo4ServerTask(), TGo4Slave::TGo4Slave(), and TGo4Task::TGo4Task().

void TGo4CommandInvoker::Register const char *  name,
TGo4CommandReceiver p
[static]
 

Definition at line 86 of file TGo4CommandInvoker.cxx.

References fxArray, fxMutex, and TRACE.

Referenced by TGo4AnalysisClient::Constructor(), TGo4Analysis::TGo4Analysis(), TGo4CommandInvoker(), TGo4ExampleApplication::TGo4ExampleApplication(), TGo4HistogramServer::TGo4HistogramServer(), TGo4Master::TGo4Master(), TGo4ServerTask::TGo4ServerTask(), TGo4Slave::TGo4Slave(), and TGo4Task::TGo4Task().

void TGo4CommandInvoker::UnRegister TGo4CommandReceiver p  )  [static]
 

Definition at line 93 of file TGo4CommandInvoker.cxx.

References fxArray, fxMutex, TGo4Pair::GetReceiver(), and TRACE.

Referenced by TGo4Analysis::~TGo4Analysis(), TGo4AnalysisClient::~TGo4AnalysisClient(), TGo4ExampleApplication::~TGo4ExampleApplication(), TGo4HistogramServer::~TGo4HistogramServer(), TGo4Master::~TGo4Master(), TGo4ServerTask::~TGo4ServerTask(), TGo4Slave::~TGo4Slave(), and TGo4Task::~TGo4Task().

void TGo4CommandInvoker::Invoke TGo4Command com  )  [virtual]
 

Definition at line 125 of file TGo4CommandInvoker.cxx.

References TGo4Log::Debug(), fxMutex, Lookup(), and TRACE.

void TGo4CommandInvoker::Invoke  )  [virtual]
 

Definition at line 142 of file TGo4CommandInvoker.cxx.

References TGo4Command::ExeCom(), fxCommand, fxMutex, TGo4Command::GetReceiverName(), Lookup(), TGo4Command::SetReceiver(), and TRACE.

Referenced by ExecuteFromRemote().

void TGo4CommandInvoker::SetCommandList TGo4CommandProtoList list  )  [static]
 

Application may exchange standard command list by own subclass with specialized commands, e.g.

for analysis control

Definition at line 159 of file TGo4CommandInvoker.cxx.

References fxCommandList.

Referenced by TGo4AnalysisClient::Constructor(), TGo4Analysis::TGo4Analysis(), TGo4Slave::TGo4Slave(), and TGo4Task::TGo4Task().

Int_t TGo4CommandInvoker::ExecuteFromRemote TGo4RemoteCommand remcom  ) 
 

Create real command from remote command and invoke it.

Used when remote command acts on this invoker as receiver

Definition at line 165 of file TGo4CommandInvoker.cxx.

References fxCommandList, TGo4Command::GetMode(), TGo4Command::GetTaskName(), Invoke(), TGo4CommandProtoList::MakeCommand(), TGo4Command::SetMode(), and TGo4Command::SetTaskName().

Referenced by TGo4RemoteCommand::ExeCom().

TGo4CommandReceiver * TGo4CommandInvoker::Lookup const char *  name  )  [static, protected]
 

Definition at line 117 of file TGo4CommandInvoker.cxx.

References fxArray, TGo4Pair::GetReceiver(), and TRACE.

Referenced by Invoke().


Member Data Documentation

TGo4Command* TGo4CommandInvoker::fxCommand [private]
 

Definition at line 72 of file TGo4CommandInvoker.h.

Referenced by Invoke(), TGo4CommandInvoker(), and ~TGo4CommandInvoker().

TGo4CommandProtoList * TGo4CommandInvoker::fxCommandList = 0 [static, private]
 

For remote commands, invoker will create the requested slave commands from own command list.

Definition at line 52 of file TGo4CommandInvoker.cxx.

Referenced by ExecuteFromRemote(), SetCommandList(), TGo4CommandInvoker(), and ~TGo4CommandInvoker().

TGo4CommandInvoker * TGo4CommandInvoker::fxInstance = 0 [static, private]
 

Definition at line 51 of file TGo4CommandInvoker.cxx.

Referenced by Instance().

TObjArray * TGo4CommandInvoker::fxArray = 0 [static, private]
 

Definition at line 53 of file TGo4CommandInvoker.cxx.

Referenced by Lookup(), Register(), TGo4CommandInvoker(), UnRegister(), and ~TGo4CommandInvoker().

TMutex * TGo4CommandInvoker::fxMutex = 0 [static, private]
 

Definition at line 50 of file TGo4CommandInvoker.cxx.

Referenced by Invoke(), Register(), TGo4CommandInvoker(), UnRegister(), and ~TGo4CommandInvoker().


The documentation for this class was generated from the following files:
Generated on Fri Nov 28 13:00:44 2008 for Go4-v3.04-1 by  doxygen 1.4.2