00001 //--------------------------------------------------------------- 00002 // Go4 Release Package v2.10-5 (build 21005) 00003 // 03-Nov-2005 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at DVEE department, GSI 00007 //--------------------------------------------------------------- 00008 // 00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI 00010 // Planckstr. 1, 64291 Darmstadt, Germany 00011 //Contact: http://go4.gsi.de 00012 //---------------------------------------------------------------- 00013 //This software can be used under the license agreements as stated 00014 //in Go4License.txt file which is part of the distribution. 00015 //---------------------------------------------------------------- 00016 #ifndef TGO4COMMANDINVOKER_H 00017 #define TGO4COMMANDINVOKER_H 00018 00023 #include "TObject.h" 00024 #include "TString.h" 00025 #include "TObjArray.h" 00026 00027 #include "TMutex.h" 00028 00029 #include "TGo4Command.h" 00030 #include "TGo4CommandReceiver.h" 00031 00037 class TGo4CommandInvoker : public TObject { 00038 00039 public: 00040 00041 static TGo4CommandInvoker * Instance(); 00042 00043 static void Register(const char* name, TGo4CommandReceiver *p); 00044 00045 virtual void Invoke(TGo4Command * com); 00046 00047 virtual void Invoke(); 00048 00049 virtual ~TGo4CommandInvoker(); 00050 00051 protected: 00052 TGo4CommandInvoker(); 00053 static TGo4CommandReceiver * Lookup(const char* name); 00054 00055 private: 00056 00058 TGo4Command * fxCommand; 00059 00060 static TGo4CommandInvoker *fxInstance; 00061 static TObjArray * fxArray; 00062 static TMutex * fxMutex; 00063 ClassDef(TGo4CommandInvoker, 1) //TGo4CommandInvoker 00064 }; 00065 #endif //TGO4COMMANDINVOKER_H 00066 00067 00068 00069 00070 //----------------------------END OF GO4 SOURCE FILE ---------------------