00001 #ifndef TGO4ABSTRACTINTERFACE_H
00002 #define TGO4ABSTRACTINTERFACE_H
00003
00004 #include "TObject.h"
00005
00006 #include "TString.h"
00007 #include "TList.h"
00008
00009 class TGo4ObjectManager;
00010 class TGo4BrowserProxy;
00011 class TGo4AnalysisProxy;
00012 class TPad;
00013 class TGo4Picture;
00014
00015 typedef void* ViewPanelHandle;
00016
00017
00061 class TGo4AbstractInterface : public TObject {
00062 protected:
00064 TGo4AbstractInterface();
00065
00066 static TGo4AbstractInterface* fgInstance;
00067
00068 void Initialize(TGo4ObjectManager* om, TGo4BrowserProxy* br);
00069
00070 virtual void ProcessEvents(Int_t timeout = -1) = 0;
00071
00072 Bool_t LoadHotStart(const char* filename);
00073 Bool_t IsHotStart();
00074 const char* NextHotStartCmd();
00075 void FreeHotStartCmds();
00076
00077 public:
00078
00080 virtual ~TGo4AbstractInterface();
00081
00085 static TGo4AbstractInterface* Instance();
00086
00088 static void DeleteInstance();
00089
00093 TGo4ObjectManager* OM() const { return fOM; }
00094
00099 TGo4BrowserProxy* Browser() const { return fBrowser; }
00100
00104 TGo4AnalysisProxy* Analysis();
00105
00110 virtual void HotStart(const char* filename) = 0;
00111
00112
00113
00115 virtual void LoadLibrary(const char* fname);
00116
00119 virtual void OpenFile(const char* fname);
00120
00125 virtual TString FindItem(const char* objname);
00126
00129 virtual Bool_t CopyItem(const char* itemname);
00130
00133 virtual Bool_t DeleteItem(const char* itemname);
00134
00142 virtual void FetchItem(const char* itemname, Int_t wait_time = 2000);
00143
00153 virtual TObject* GetObject(const char* itemname, Int_t updatelevel = 1);
00154
00163 virtual TString SaveToMemory(const char* path, TObject* obj, Bool_t ownership = kFALSE);
00164
00171 virtual Bool_t SaveToFile(const char* itemname,
00172 const char* filename,
00173 const char* filetitle = 0);
00174
00187 virtual Bool_t ExportToFile(const char* itemname,
00188 const char* dirpath,
00189 const char* format,
00190 const char* filetitle = 0);
00191
00201 virtual void ConnectHServer(const char* servername,
00202 Int_t portnumber,
00203 const char* basename,
00204 const char* userpass,
00205 const char* filter);
00206
00210 virtual void Wait(double tm_sec) {}
00211
00213 virtual void Message(const char* msg) {}
00214
00215
00216
00219 virtual void LaunchAnalysis() {}
00220
00229 virtual void LaunchAnalysis(const char* ClientName,
00230 const char* ClientDir,
00231 const char* ClientExec,
00232 const char* ClientNode,
00233 Int_t ShellMode = 2,
00234 Int_t TermMode = 1) {}
00235
00242 virtual void ConnectAnalysis(const char* ServerNode,
00243 Int_t ServerPort,
00244 Int_t UserMode,
00245 const char* password = 0) {}
00246
00252 virtual void WaitAnalysis(Int_t delay_sec) {}
00253
00255 virtual Bool_t IsAnalysisConnected();
00256
00259 virtual void DisconnectAnalysis() {}
00260
00264 virtual void ShutdownAnalysis() {}
00265
00270 virtual void ExecuteLine(const char* remotecmd);
00271
00273 virtual void RequestAnalysisConfig();
00274
00296 virtual void SubmitAnalysisConfig() {}
00297
00299 virtual void StartAnalysis() {}
00300
00302 virtual void StopAnalysis() {}
00303
00307 virtual void SetAnalysisTerminalMode(int mode) {}
00308
00312 virtual void SetAnalysisConfigMode(int mode) {}
00313
00317 virtual void MonitorItem(const char* itemname, Bool_t on = kTRUE);
00318
00322 virtual void StartMonitoring(Int_t period = 10);
00323
00325 virtual void StopMonitoring();
00326
00328 virtual void AnalysisAutoSave(const char* filename,
00329 Int_t interval,
00330 Int_t compression,
00331 Bool_t enabled,
00332 Bool_t overwrite) {}
00333
00335 virtual void AnalysisConfigName(const char* filename) {}
00336
00337
00338
00340 virtual void ConfigStep(const char* stepname,
00341 Bool_t enableprocess,
00342 Bool_t enablesource,
00343 Bool_t enablestore) {}
00344
00346 virtual void StepFileSource(const char* stepname,
00347 const char* sourcename,
00348 int timeout) {}
00349
00351 virtual void StepMbsFileSource(const char* stepname,
00352 const char* sourcename,
00353 int timeout,
00354 const char* TagFile,
00355 int start,
00356 int stop,
00357 int interval) {}
00358
00360 virtual void StepMbsStreamSource(const char* stepname,
00361 const char* sourcename,
00362 int timeout) {}
00363
00365 virtual void StepMbsTransportSource(const char* stepname,
00366 const char* sourcename,
00367 int timeout) {}
00368
00370 virtual void StepMbsEventServerSource(const char* stepname,
00371 const char* sourcename,
00372 int timeout) {}
00373
00375 virtual void StepMbsRevServSource(const char* stepname,
00376 const char* sourcename,
00377 int timeout,
00378 int port) {}
00379
00381 virtual void StepRandomSource(const char* stepname,
00382 const char* sourcename,
00383 int timeout) {}
00384
00386 virtual void StepUserSource(const char* stepname,
00387 const char* sourcename,
00388 int timeout,
00389 int port,
00390 const char* expr) {}
00391
00393 virtual void StepFileStore(const char* stepname,
00394 const char* storename,
00395 bool overwrite,
00396 int bufsize,
00397 int splitlevel,
00398 int compression) {}
00399
00401 virtual void StepBackStore(const char* stepname,
00402 const char* storename,
00403 int bufsize,
00404 int splitlevel) {}
00405
00406
00407
00411 virtual ViewPanelHandle StartViewPanel() { return 0; }
00412
00423 virtual ViewPanelHandle StartViewPanel(int x, int y, int width, int height, int mode = 1, TGo4Picture* pic = 0) { return 0; }
00424
00426 virtual TString GetViewPanelName(ViewPanelHandle panel) { return TString(); }
00427
00429 virtual ViewPanelHandle FindViewPanel(const char* name) { return 0; }
00430
00432 virtual Bool_t SetViewPanelName(ViewPanelHandle panel, const char* newname) { return kFALSE; }
00433
00435 virtual ViewPanelHandle GetActiveViewPanel() { return 0; }
00436
00438 virtual void RedrawPanel(ViewPanelHandle panel) {}
00439
00441 virtual void DivideViewPanel(ViewPanelHandle panel, Int_t numX, Int_t numY) {}
00442
00447 virtual TPad* SelectPad(ViewPanelHandle panel, Int_t number = 0) { return 0; }
00448
00450 virtual void SetSuperimpose(ViewPanelHandle panel, Bool_t on = kTRUE) {}
00451
00457 virtual Bool_t DrawItem(const char* itemname, ViewPanelHandle panel = 0, const char* drawopt = 0) { return kFALSE; }
00458
00462 virtual void RedrawItem(const char* itemname);
00463
00464 private:
00465 TGo4ObjectManager* fOM;
00466 TGo4BrowserProxy* fBrowser;
00467 TList fxCommands;
00468
00469 ClassDef(TGo4AbstractInterface, 1);
00470 };
00471
00472
00473 #endif