English Français

Documentation / Manuel développeur

Modules disponibles

Calibration,  DataServer,  Launcher,  MetaModelOptim,  Modeler,  Optimizer,  ReLauncher,  Reliability,  ReOptimizer,  Sampler,  Sensitivity,  UncertModeler,  XmlProblem,   Uranie / ReLauncher: TCodeBase.h Source File
Uranie / ReLauncher  v4.10.0
/* @license-end */
TCodeBase.h
Go to the documentation of this file.
1 /* --- Ansi C --- */
3 // Copyright (C) 2024 CEA/DEN
4 //
5 // This program is free software: you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public License
7 // as published by the Free Software Foundation, either version 3 of
8 // the License, or any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this program.
17 // if not, see <http://www.gnu.org/licenses/>.
19 
27 #ifndef __TCodeBase__
28 #define __TCodeBase__
29 
30 //ROOT
31 #include "Rtypes.h"
32 #include "TObjArray.h"
33 
34 // Uranie
35 #include "Relauncher.h"
36 #include "TShareEval.h"
37 #include "TDataServer.h"
38 
39 
40 namespace URANIE {
41 namespace Relauncher {
42 
43 
44 /* for composition */
45 /* manage workdir */
46 class TDirEval
47 {
48 protected:
49  Bool_t _isnumered;
52 
53  void buildWorkDir(void);
54  void buildTmpDir(int id, Bool_t ch=kTRUE);
55 
56 public:
57  TDirEval();
58  virtual ~TDirEval();
59 
60  void setWorkingDir(TString dir);
61  void setOldTmpDir();
62  void keepAllFolders();
63 
64  //ClassDef(URANIE::Relauncher::TDirEval, ID_RELAUNCHER)
65 };
66 
67 /* manage input and aouput file */
68 class TCodeScript: public TObject
69 {
70 public:
71  virtual void build(TString &dir, TObjArray *in) = 0;
72  virtual void put(TString &ref, TString &tmp, Double_t *in) = 0;
73  virtual void put(TString &ref, TString &tmp, vector<URANIE::DataServer::UEntry*> *in) = 0;
74 
75 // std::stringstream buffer;
76 
77  ClassDef(URANIE::Relauncher::TCodeScript, ID_RELAUNCHER)
78 };
79 
80 class TCodeResult: public TObject
81 {
82 public:
83  virtual void build(TObjArray *) = 0;
84  virtual int get(TString &, Double_t*) = 0;
85  // virtual int get(TString &, Double_t**) = 0;
86  virtual int get(TString &work, vector<URANIE::DataServer::UEntry*> *sout) = 0;
87 
88  virtual void clearFile(TString tmpdir) = 0;
89 
90 // std::stringstream buffer;
91 
92  ClassDef(URANIE::Relauncher::TCodeResult, ID_RELAUNCHER)
93 };
94 
95 class TIOFileEval : public TDirEval
96 {
97 protected:
98  Bool_t _clone;
99  TString _localdir;
100  TList *_scripts;
102 
103  void buildDir(void);
104 
105 public:
106  TIOFileEval();
107  virtual ~TIOFileEval();
108 
109  void addInputFile(TCodeScript *fil);
110  void addOutputFile(TCodeResult *fil);
111  void setReference(TString dir);
112  void setClone();
113 
114  virtual void setTmpDir(int id, Bool_t chef);
115  virtual int callFunction() = 0;
116 
117  //ClassDef(URANIE::Relauncher::TIOFIleEval, ID_RELAUNCHER)
118 };
119 
120 class TCodeBase: public TShareEval, public TIOFileEval
121 {
122 protected:
123  int putAndRun(Double_t *, int ncalc=-1);
124  int putAndRun(vector<URANIE::DataServer::UEntry*>*, int ncalc=-1);
125 
126 public:
127  TCodeBase();
128  virtual ~TCodeBase(void);
129 
130  virtual void freeze(void);
131  virtual int eval(vector<URANIE::DataServer::UEntry*>*, vector<URANIE::DataServer::UEntry*>*, int =0 );
132 
133  ClassDef(URANIE::Relauncher::TCodeBase, ID_RELAUNCHER)
134 };
135 
136 
137 }} // namespace
138 
139 #endif
Definition: TBaseEval.cxx:44
Definition: TCodeBase.h:80
void keepAllFolders()
Definition: TCodeBase.cxx:72
void setOldTmpDir()
Definition: TCodeBase.cxx:67
Definition: TCodeBase.h:46
virtual void setTmpDir(int id, Bool_t chef)
Definition: TCodeBase.cxx:219
Bool_t _keepAllFolders
Definition: TCodeBase.h:50
TString _tmpdir
Definition: TCodeBase.h:51
TCodeBase()
Definition: TCodeBase.cxx:229
Definition: TCodeBase.h:68
Definition: TCodeBase.h:95
Definition: TShareEval.h:51
virtual ~TCodeBase(void)
Definition: TCodeBase.cxx:235
TDirEval()
Definition: TCodeBase.cxx:51
implementation partage au TEval
Bool_t _isnumered
Definition: TCodeBase.h:49
virtual int eval(vector< URANIE::DataServer::UEntry *> *, vector< URANIE::DataServer::UEntry *> *, int=0)
Definition: TCodeBase.cxx:313
Bool_t _clone
Definition: TCodeBase.h:98
virtual ~TIOFileEval()
Definition: TCodeBase.cxx:177
void buildWorkDir(void)
Definition: TCodeBase.cxx:78
virtual void put(TString &ref, TString &tmp, Double_t *in)=0
TList * _scripts
Definition: TCodeBase.h:100
virtual void freeze(void)
Definition: TCodeBase.cxx:239
TString _localdir
Definition: TCodeBase.h:99
TIOFileEval()
Definition: TCodeBase.cxx:168
TString _initialdir
Definition: TCodeBase.h:51
void setReference(TString dir)
Definition: TCodeBase.cxx:200
TCodeResult * _result
Definition: TCodeBase.h:101
void setWorkingDir(TString dir)
Definition: TCodeBase.cxx:61
Definition: TCodeBase.h:120
TString _workdir
Definition: TCodeBase.h:51
virtual void build(TString &dir, TObjArray *in)=0
void setClone()
Definition: TCodeBase.cxx:225
void addInputFile(TCodeScript *fil)
Definition: TCodeBase.cxx:184
virtual void build(TObjArray *)=0
void addOutputFile(TCodeResult *fil)
Definition: TCodeBase.cxx:190
virtual void clearFile(TString tmpdir)=0
void buildTmpDir(int id, Bool_t ch=kTRUE)
Definition: TCodeBase.cxx:105
virtual ~TDirEval()
Definition: TCodeBase.cxx:58
int putAndRun(Double_t *, int ncalc=-1)
Definition: TCodeBase.cxx:268
void buildDir(void)
Definition: TCodeBase.cxx:207