21#include "TInterpreter.h"
22#include "TObjString.h"
54 return "temporary object to setup viewpanel";
82 gROOT->ProcessLineSync(
"TGo4AbstractInterface *go4 = TGo4AbstractInterface::Instance();", &error);
83 gROOT->ProcessLineSync(
"TGo4ObjectManager *om = TGo4AbstractInterface::Instance()->OM();", &error);
84 gROOT->ProcessLineSync(
"TGo4BrowserProxy *br = TGo4AbstractInterface::Instance()->Browser();", &error);
85 gROOT->ProcessLineSync(TString::Format(
".x %s",
TGo4Log::subGO4SYS(
"macros/go4macroinit.C").Data()).Data());
92 gROOT->ProcessLine(TString::Format(
".x %s",
TGo4Log::subGO4SYS(
"macros/go4macroclose.C").Data()).Data());
94 gInterpreter->DeleteGlobal(
fBrowser);
95 gInterpreter->DeleteGlobal(
fOM);
96 gInterpreter->DeleteGlobal(
this);
114 if (!fname || (strlen(fname) == 0))
return;
116 TString libs = gInterpreter->GetSharedLibs();
118 const char *token = strtok((
char *) libs.Data(),
" ,\t\n");
120 while(token !=
nullptr) {
121 if (strcmp(token, fname) == 0)
return;
122 token = strtok(
nullptr,
" ,\t\n");
125 gSystem->Load(fname);
136 const char *filename,
137 const char *filetitle)
145 const char *filetitle)
148 if (!topslot)
return kFALSE;
158 items.Add(
new TObjString(buf));
170 const char *basename,
171 const char *userpass,
195 if (anal && remotecmd) {
228 if (
Browser()->ItemSlot(objname))
return TString(objname);
255 if (!itemname || (strlen(itemname) == 0))
return nullptr;
273 std::ifstream f(filename);
275 if (!f.good())
return kFALSE;
280 f.getline(buf, 10000);
302 const char *res =
nullptr;
305 TObjString* str = (TObjString*)
fxCommands.First();
306 res = str->GetName();
307 if (!res || (strlen(res) == 0)) {
325 if (gSystem->Getenv(
"ROOTSYS") !=
nullptr) {
326 rootsys = gSystem->Getenv(
"ROOTSYS");
327 if (rootsys[rootsys.Length()-1] !=
'/') rootsys+=
"/";
332 TString libs = gInterpreter->GetSharedLibs();
333 const char *token = strtok((
char *) libs.Data(),
" ,\t\n");
334 while(token !=
nullptr) {
338 && !strstr(token,
"libHistPainter.")) {
339 fs <<
"go4->LoadLibrary(\"";
340 if ((go4sys.Length() > 0) && strstr(token, go4sys.Data()) == token)
341 fs <<
"$GO4SYS/" << (token + go4sys.Length());
343 if ((rootsys.Length() > 0) && strstr(token, rootsys.Data()) == token)
344 fs <<
"$ROOTSYS/" << (token + rootsys.Length());
348 fs <<
"\");" << std::endl;
350 token = strtok(
nullptr,
" ,\t\n");
Generic interface to GUI functionality.
virtual void ConnectHServer(const char *servername, Int_t portnumber, const char *basename, const char *userpass, const char *filter)
Connect to GSI histogram server.
Bool_t IsHotStart() const
virtual void MonitorItem(const char *itemname, Bool_t on=kTRUE)
Enable/disable monitoring of browser item.
TGo4AnalysisProxy * Analysis()
Returns pointer on analysis proxy.
static Int_t DelayMillisec()
Default delay during hotstart file extension.
virtual void RedrawItem(const char *itemname)
Redraw item of given name on all viewpanels/editors.
virtual void OpenFile(const char *fname)
Open specified file in read-only mode.
virtual void LoadLibrary(const char *fname)
Load specified ROOT library.
static TGo4AbstractInterface * Instance()
Return pointer on instance of implementation of TGo4AbstractInterface class.
virtual Bool_t CopyItem(const char *itemname)
Copy item to workspace.
TGo4BrowserProxy * fBrowser
virtual void ConnectDabc(const char *servername)
Connect to DABC server.
static const char * DefaultPicTitle()
Returns default hotstart file extension.
TGo4BrowserProxy * Browser() const
Returns pointer on browser proxy.
virtual Bool_t ExportToFile(const char *itemname, const char *dirpath, const char *format, const char *filetitle=nullptr)
Export browser item to different file formats.
virtual Bool_t DeleteItem(const char *itemname)
Delete item (if allowed).
virtual void RequestAnalysisConfig()
Requests current analysis configuration.
TGo4AbstractInterface()
Constructor.
virtual void StartMonitoring(Int_t period=10)
Start monitoring mode.
virtual Bool_t IsAnalysisConnected()
Indicate, if analysis was successfully connected.
virtual void StopMonitoring()
Stop monitoring mode.
const char * NextHotStartCmd()
static TGo4AbstractInterface * fgInstance
static const char * FileExtension()
Returns default hotstart file extension.
TGo4ServerProxy * Server()
Returns pointer on more generic server proxy.
void Initialize(TGo4ObjectManager *om, TGo4BrowserProxy *br)
list of shared libraries when application is started
virtual void ExecuteLine(const char *remotecmd)
Execute one macro line on analysis side.
static TString fInitSharedLibs
virtual void FetchItem(const char *itemname, Int_t wait_time=2000)
Fetch item from data source.
virtual Bool_t SaveToFile(const char *itemname, const char *filename, const char *filetitle=nullptr)
Save specified browser item to file.
virtual ~TGo4AbstractInterface()
destructor
Bool_t LoadHotStart(const char *filename)
virtual void ProcessEvents(Int_t timeout=-1)=0
virtual TObject * GetObject(const char *itemname, Int_t updatelevel=1)
Returns object, assigned to specified browser item.
virtual TString SaveToMemory(const char *path, TObject *obj, Bool_t ownership=kFALSE)
Save object in browser workspace.
static void SetInitSharedLibs(const char *libs=nullptr)
method to set initial list of shared libraries, which than will not be included in hotstart file
static void DeleteInstance()
Delete instance of interface class.
virtual TString FindItem(const char *objname)
Find item with given object name.
static void ProduceLoadLibs(std::ostream &fs)
Bool_t SaveBrowserToFile(const char *filename, Bool_t prefetch=kFALSE, const char *selectedpath=nullptr, const char *description=nullptr)
TGo4AnalysisProxy * FindAnalysis(const char *itemname=nullptr)
Bool_t DeleteDataSource(TGo4Slot *itemslot)
TGo4Slot * BrowserSlot(const char *item=nullptr)
TGo4Slot * ItemSlot(const char *itemname)
Bool_t ProduceExplicitCopy(const char *itemname, const char *tgtpath=nullptr, Bool_t forcerequest=kFALSE)
TObject * GetBrowserObject(const char *name, Int_t update=0)
void ToggleMonitoring(Int_t period)
TString SaveToMemory(const char *pathname, TObject *obj, Bool_t ownership, Bool_t overwrite=kFALSE)
void ExportItemsTo(TObjArray *items, Bool_t fetchitems, const char *filename, const char *filedir, const char *format, const char *description)
Bool_t ConnectHServer(const char *servername, Int_t portnumber, const char *basename, const char *userpass, const char *filter)
void RedrawItem(const char *itemname)
void FetchItem(const char *itemname, Int_t wait_time=0)
TGo4ServerProxy * FindServer(const char *itemname=nullptr, Bool_t asanalysis=kTRUE)
void SetItemMonitored(TGo4Slot *slot, Bool_t on=kTRUE)
Bool_t ConnectDabc(const char *nodename)
TString FindItem(const char *objname)
void OpenFile(const char *fname)
Bool_t next(Bool_t goesinto=kTRUE)
TGo4Slot * getslot() const
static TString subGO4SYS(const char *subdir)
Return subdirectory in the GO4SYS.
static const char * Message(Int_t prio, const char *text,...) GO4_PRINTF2_ARGS
Display a message.
static const char * GO4SYS()
Return GO4SYS environment variable or Go4 top directory during compile (if GO4SYS) not set.
special base class for remote data servers like DABC, HTTP, hist server
virtual Bool_t IsConnected() const
virtual void RequestAnalysisSettings()
virtual void ExecuteLine(const char *line)