Cat
Public Member Functions | Protected Attributes | Private Attributes | List of all members
Application Class Reference

#include <Application.h>

Inheritance diagram for Application:
Object Attrib

Public Member Functions

 Application ()
 Standard constructor. More...
 
virtual ~Application ()
 Destructor. More...
 
StatusCode initialize ()
 
StatusCode run (std::string procName, Element *element=0, int nEvt=1)
 
StatusCode finalize ()
 
Optionsoptions ()
 
Computercomputer ()
 
DLLMgrdllMgr ()
 
ProcDataBaseprocDb ()
 
StatusCode loadHistoryFile ()
 
StatusCode bookkeeping ()
 
void banner ()
 
void exit ()
 
void setCurrent (Hierarchy *current)
 
Hierarchycurrent ()
 
StatusCode cd (std::string path)
 
std::string hostname ()
 
void treeRecursive (Hierarchy *, std::string)
 
StatusCode create (std::string, std::string)
 
StatusCode makeDir (std::string)
 
Statestate ()
 
Configconfig ()
 
void setState (std::string state=std::string(""))
 
void setConfig ()
 
char * status ()
 
void network (std::string)
 
void server ()
 
void setProcessus (Processus *processus)
 
Processusprocessus ()
 
StatusCode runSvc ()
 
void setRunSvc (RunSvc svc)
 
StatusCode plotSvc ()
 
void setPlotSvc (PlotSvc svc)
 
void setVersion (std::string version)
 
std::string version ()
 
void setCtrl (std::string control)
 
std::string ctrl ()
 
StatusCode svcRunning ()
 
StatusCode prepare (std::string procName, Element *element=0, int nEvt=1)
 
StatusCode loop ()
 
StatusCode terminate ()
 
StatusCode svcPlot ()
 
- Public Member Functions inherited from Object
 Object ()
 Standard constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
std::string name () const
 
std::string type ()
 
unsigned char id ()
 
std::string title ()
 
void msgSvc (int level, std::string msg, std::string name)
 
void msg (std::string mymsg)
 
void verbose (std::string mymsg)
 
void debug (std::string mymsg)
 
void info (std::string mymsg)
 
void warning (std::string mymsg)
 
void error (std::string mymsg)
 
void fatal (std::string mymsg)
 
void msg (std::string mymsg, std::string name)
 
void verbose (std::string mymsg, std::string name)
 
void debug (std::string mymsg, std::string name)
 
void info (std::string mymsg, std::string name)
 
void warning (std::string mymsg, std::string name)
 
void error (std::string mymsg, std::string name)
 
void fatal (std::string mymsg, std::string name)
 
void setName (std::string name)
 
void setType (std::string type)
 
void setId (unsigned char id)
 
void setTitle (std::string title)
 
void setDllName (std::string dllName)
 
std::string dllName ()
 
- Public Member Functions inherited from Attrib
 Attrib ()
 Standard constructor. More...
 
virtual ~Attrib ()
 Destructor. More...
 
bool is (int attribut)
 
void add (int attribut)
 
void remove (int attribut)
 
std::string attributs ()
 

Protected Attributes

std::string m_accountName
 
std::string m_hostName
 
std::string m_osName
 
std::string m_osVersion
 
std::string m_prompt
 
std::string m_version
 
bool m_isRunning
 
Hierarchym_current
 
- Protected Attributes inherited from Attrib
std::string m_attribString [10]
 

Private Attributes

Optionsm_options
 
DLLMgrm_dllMgr
 
ProcDataBasem_procDb
 
Computerm_computer
 
Processusm_processus
 
Statem_state
 
Configm_config
 
RunSvc m_runSvc
 
PlotSvc m_plotSvc
 
Serverm_server
 
bool m_network
 
std::string m_ctrl
 

Additional Inherited Members

- Public Types inherited from Attrib
enum  Attribut {
  UNDEFINED, PASSIVE, ACTIVE, INTERFACE,
  IO, IODATA, ELEMENT, HARDWARE,
  PROCESSUS, SOFTWARE
}
 

Detailed Description

Application main class

Author
Frederic Machefert
Date
2006-10-23

Definition at line 58 of file Application.h.

Constructor & Destructor Documentation

◆ Application()

Application::Application ( )

Standard constructor.

Definition at line 29 of file Application.cpp.

References System::accountName(), System::hostName(), m_accountName, m_computer, m_config, m_dllMgr, m_hostName, m_options, m_osName, m_osVersion, m_procDb, m_state, System::osName(), System::osVersion(), setApplication(), and setCurrent().

29  :
30  m_options (0),
31  m_dllMgr (0),
32  m_procDb (0),
33  m_computer (0),
34  m_processus(0),
35  m_state (0),
36  m_config (0),
37  m_server (0)
38 {
39  setApplication(this);
40  m_options = new Options ();
45  m_dllMgr = new DLLMgr ();
46  m_procDb = new ProcDataBase ();
47  m_computer = new Computer ();
48  m_state = new State();
49  m_config = new Config();
51 }
Processus * m_processus
Definition: Application.h:366
Server * m_server
Definition: Application.h:374
std::string m_hostName
Definition: Application.h:352
std::string m_osName
Definition: Application.h:353
const std::string & osName()
OS name.
Definition: System.cpp:51
Config * m_config
Definition: Application.h:369
const std::string & osVersion()
OS version.
Definition: System.cpp:64
std::string m_osVersion
Definition: Application.h:354
DLLMgr * m_dllMgr
Definition: Application.h:362
Definition: DLLMgr.h:19
void setApplication(Application *)
Definition: Tools.cpp:38
std::string m_accountName
Definition: Application.h:351
Computer * m_computer
Definition: Application.h:364
ProcDataBase * m_procDb
Definition: Application.h:363
Options * m_options
Definition: Application.h:361
void setCurrent(Hierarchy *current)
Definition: Application.h:141
const std::string & accountName()
User login name.
Definition: System.cpp:88
State * m_state
Definition: Application.h:368
const std::string & hostName()
Host name.
Definition: System.cpp:39

◆ ~Application()

Application::~Application ( )
virtual

Destructor.

Definition at line 56 of file Application.cpp.

References m_config, m_dllMgr, m_options, m_procDb, m_server, and m_state.

56  {
57  if ( 0!=m_server ) {
58  delete m_server;
59  m_server = 0;
60  }
61  delete m_state;
62  delete m_config;
63  delete m_options;
64  delete m_dllMgr;
65  delete m_procDb;
66  // delete m_computer;
67 }
Server * m_server
Definition: Application.h:374
Config * m_config
Definition: Application.h:369
DLLMgr * m_dllMgr
Definition: Application.h:362
ProcDataBase * m_procDb
Definition: Application.h:363
Options * m_options
Definition: Application.h:361
State * m_state
Definition: Application.h:368

Member Function Documentation

◆ banner()

void Application::banner ( )

Banner of the Application

Definition at line 103 of file Application.cpp.

References m_accountName, m_hostName, m_osName, m_osVersion, and Object::msgSvc().

Referenced by initialize().

103  {
104 #ifdef _WIN32
105  // system("cls");
106 #else
107  // system("clear");
108 #endif
109  msgSvc(0,"","");
110  msgSvc(0," ***********************************************","");
111  msgSvc(0," * C A T *","");
112  msgSvc(0," * *","");
113  msgSvc(0," * |\\-''-/|.___..--''\"`-._ *","");
114  msgSvc(0," * `6_ 6 ) `-. ( ).`-.__.`) *","");
115  msgSvc(0," * (_Y_.)' ._ ) `._ `. ``-..-' *","");
116  msgSvc(0," * _..`--'_..- _/ /--'_.' ,' *","");
117  msgSvc(0," * (il),-'' (li),' ((!.-' *","");
118  msgSvc(0," ***********************************************","");
119  msgSvc(0,"","");
120  msgSvc(0,"Application running on "+
121  m_accountName+"@"+
122  m_hostName+" ("+
123  m_osName+" - "+
124  m_osVersion+")","");
125 }
std::string m_hostName
Definition: Application.h:352
std::string m_osName
Definition: Application.h:353
std::string m_osVersion
Definition: Application.h:354
std::string m_accountName
Definition: Application.h:351
void msgSvc(int level, std::string msg, std::string name)
Definition: Object.h:33

◆ bookkeeping()

StatusCode Application::bookkeeping ( )

write bookkeeping file

Returns
StatusCode

Definition at line 170 of file Application.cpp.

References application(), StatusCode::FAILURE, System::getEnv(), options(), Options::runNumber(), StatusCode::SUCCESS, and Object::warning().

Referenced by prepare().

170  {
171  std::string filename = System::getEnv("CATPATH");
172  filename.append("/.cathist");
173  std::ofstream last;
174  last.open( filename.c_str() );
175  if ( last.fail() ) {
176  warning("Cannot do the bookkeeping","Application::bookkeeping");
177  return StatusCode::FAILURE;
178  }
179  else {
180  last << application()->options()->runNumber();
181  }
182  last.close();
183  return StatusCode::SUCCESS;
184 }
unsigned long runNumber()
Definition: Options.h:107
Application * application()
Definition: Tools.cpp:42
Options * options()
Definition: Application.h:86
void warning(std::string mymsg)
Definition: Object.h:39
const std::string getEnv(const char *var)
get a particular environment variable
Definition: System.cpp:143

◆ cd()

StatusCode Application::cd ( std::string  path)
inline

Definition at line 158 of file Application.h.

References Hierarchy::child(), StatusCode::FAILURE, and StatusCode::SUCCESS.

Referenced by export_obj().

158  {
159  Hierarchy* newcurrent = m_current->child(path);
160  if (0!=newcurrent) {
161  setCurrent(newcurrent);
162  return StatusCode::SUCCESS;
163  }
164  else {
165  return StatusCode::FAILURE;
166  }
167  }
Hierarchy * child(std::string)
Definition: Hierarchy.cpp:133
Hierarchy * m_current
Definition: Application.h:358
void setCurrent(Hierarchy *current)
Definition: Application.h:141

◆ computer()

Computer* Application::computer ( )
inline

Get accessor to member m_computer

Returns
the current value of m_computer

Definition at line 94 of file Application.h.

Referenced by export_obj().

94  {
95  // info("Computer"+ itos((int)(m_computer)));
96  return m_computer;
97  }
Computer * m_computer
Definition: Application.h:364

◆ config()

Config * Application::config ( )

return current Application State

Definition at line 214 of file Application.cpp.

References m_config.

Referenced by Server::start().

214  {
215  return m_config;
216 }
Config * m_config
Definition: Application.h:369

◆ create()

StatusCode Application::create ( std::string  name,
std::string  type 
)

Definition at line 326 of file Application.cpp.

References Hierarchy::addChild(), DLLMgr::createElement(), StatusCode::FAILURE, m_current, m_dllMgr, shell::obj(), setCurrent(), Object::setName(), Hierarchy::setParent(), StatusCode::SUCCESS, and Object::warning().

Referenced by export_obj().

327 {
329  if ( !obj ) {
330  warning("Type '" + type + "' not understood");
331  return StatusCode::FAILURE;
332  }
333  obj->setName( name );
334  obj->setParent(m_current);
335  m_current->addChild( obj );
336  setCurrent( obj );
337  return StatusCode::SUCCESS;
338 }
Element * createElement(std::string)
Definition: DLLMgr.cpp:128
void setParent(Hierarchy *parent)
Definition: Hierarchy.cpp:67
void setName(std::string name)
Definition: Object.h:51
DLLMgr * m_dllMgr
Definition: Application.h:362
std::string name() const
Definition: Object.h:28
virtual void addChild(Hierarchy *element)
Definition: Hierarchy.cpp:83
Hierarchy * m_current
Definition: Application.h:358
std::string type()
Definition: Object.h:29
void setCurrent(Hierarchy *current)
Definition: Application.h:141
void warning(std::string mymsg)
Definition: Object.h:39
def obj()
Definition: shell.py:26

◆ ctrl()

std::string Application::ctrl ( )
inline

Definition at line 314 of file Application.h.

Referenced by export_obj(), and svcRunning().

314  {
315  return m_ctrl;
316  }
std::string m_ctrl
Definition: Application.h:376

◆ current()

Hierarchy* Application::current ( )
inline

Get accessor to member m_current

Returns
the current value of m_current

Definition at line 149 of file Application.h.

Referenced by export_obj(), and setConfig().

149  {
150  return m_current;
151  }
Hierarchy * m_current
Definition: Application.h:358

◆ dllMgr()

DLLMgr* Application::dllMgr ( )
inline

Get accessor to member m_dllMgr

Returns
the current value of m_dllMgr

Definition at line 103 of file Application.h.

Referenced by export_obj().

103  {
104  return m_dllMgr;
105  }
DLLMgr * m_dllMgr
Definition: Application.h:362

◆ exit()

void Application::exit ( )

exit the Application

◆ finalize()

StatusCode Application::finalize ( )

Finalize the application

Definition at line 142 of file Application.cpp.

References StatusCode::SUCCESS.

Referenced by export_obj().

142  {
143  return StatusCode::SUCCESS;
144 }

◆ hostname()

std::string Application::hostname ( )
inline

get the hostname of the computer

Definition at line 173 of file Application.h.

References shell::create().

Referenced by export_obj(), initialize(), and NI6008::NI6008().

173  {
174  return m_hostName;
175  }
std::string m_hostName
Definition: Application.h:352

◆ initialize()

StatusCode Application::initialize ( )

Initialize the Application

Definition at line 72 of file Application.cpp.

References Attrib::add(), banner(), hostname(), loadHistoryFile(), m_config, m_ctrl, m_network, m_server, m_state, setConfig(), Object::setName(), setState(), Object::setType(), Attrib::SOFTWARE, and StatusCode::SUCCESS.

Referenced by export_obj().

72  {
73  setType("SOFTWARE");
75 
76  setName ( hostname() );
77 
78  m_network=false;
79  m_server=0;
80 
81  m_ctrl=std::string("");
82 
83  m_state = new State();
84  m_config = new Config();
85 
86  /*
87  setRunSvc ( *svcRunning );
88  setPlotSvc (*svcPlot );
89  */
90 
91  setState ( "READY" );
92  setConfig( );
93 
94  banner ();
96 
97  return StatusCode::SUCCESS;
98 }
Server * m_server
Definition: Application.h:374
void add(int attribut)
Definition: Attrib.h:67
void setName(std::string name)
Definition: Object.h:51
Config * m_config
Definition: Application.h:369
std::string hostname()
Definition: Application.h:173
void setType(std::string type)
Definition: Object.h:52
bool m_network
Definition: Application.h:375
void setState(std::string state=std::string(""))
std::string m_ctrl
Definition: Application.h:376
StatusCode loadHistoryFile()
void setConfig()
State * m_state
Definition: Application.h:368

◆ loadHistoryFile()

StatusCode Application::loadHistoryFile ( )

Load History file if it exists

Returns
StatusCode

Definition at line 149 of file Application.cpp.

References application(), StatusCode::FAILURE, System::getEnv(), Object::info(), itos(), options(), Options::setRunNumber(), and StatusCode::SUCCESS.

Referenced by initialize().

149  {
150  // Load last session parameters
151  std::string filename = System::getEnv("CATPATH");
152  filename.append("/.cathist");
153  std::ifstream last;
154  last.open( filename.c_str() );
155  if ( !last.fail() ) {
156  int nrun;
157  last >> nrun;
158  info("Recovering last run number : "+itos(nrun)+". Will start from "+itos(nrun+1)+".","Application:loadHistoryFile");
159  application()->options()->setRunNumber( nrun+1 );
160  }
161  else {
162  info("No history file found.","Application:loadHistoryFile");
163  return StatusCode::FAILURE;
164  }
165  last.close();
166  return StatusCode::SUCCESS;
167 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
Application * application()
Definition: Tools.cpp:42
Options * options()
Definition: Application.h:86
void setRunNumber(unsigned long runNumber)
Definition: Options.h:99
const std::string getEnv(const char *var)
get a particular environment variable
Definition: System.cpp:143

◆ loop()

StatusCode Application::loop ( )

Definition at line 460 of file Application.cpp.

References Processus::execute(), StatusCode::FAILURE, Options::incNErrors(), Options::incNEvt(), Object::info(), itos(), m_options, m_processus, Options::nErrors(), State::nEvent, Options::nEvt(), Options::printFreq(), state(), Options::stopOnError(), StatusCode::SUCCESS, and Object::warning().

Referenced by export_obj(), and svcRunning().

460  {
461  m_options->incNEvt();
462  unsigned long currentNEvt = m_options->nEvt();
463  state()->nEvent++;
464  if( m_options->printFreq()>0) {
465  if ( 0 == currentNEvt % m_options->printFreq() ) {
466  info("[Processing evt "+itos(currentNEvt)+"]","Application::loop");
467  }
468  }
469  if ( (m_processus->execute()).isFailure() ) {
470  warning("An Error occured ["+itos(m_options->nErrors())+"].","Application::loop");
472  if (m_options->stopOnError()) {
473  warning("Program automatically Stopped after " +
474  itos ( currentNEvt ) + " event(s).","Application::loop");
475  // m_options->setNEvt(m_options->nEvtMax());
476  return StatusCode::FAILURE;
477  }
478  }
479  return StatusCode::SUCCESS;
480 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
Processus * m_processus
Definition: Application.h:366
void incNErrors()
Definition: Options.h:384
unsigned long nEvt()
Definition: Options.h:317
int nEvent
Definition: Application.h:42
bool stopOnError()
Definition: Options.h:91
unsigned long nErrors()
Definition: Options.h:365
virtual StatusCode execute()=0
unsigned long printFreq()
Definition: Options.h:58
State * state()
Options * m_options
Definition: Application.h:361
void warning(std::string mymsg)
Definition: Object.h:39
void incNEvt()
Definition: Options.h:377

◆ makeDir()

StatusCode Application::makeDir ( std::string  directory)

Definition at line 189 of file Application.cpp.

References StatusCode::FAILURE, StatusCode::SUCCESS, and Object::warning().

Referenced by prepare().

189  {
190  if (mkdir(directory.c_str(), 0777) == -1) { // Create the directory
191  warning("Could not create directory "+directory+". Error "+strerror(errno),"Application:makeDir");
192  return(StatusCode::FAILURE);
193  }
194  return StatusCode::SUCCESS;
195 }
void warning(std::string mymsg)
Definition: Object.h:39

◆ network()

void Application::network ( std::string  name = std::string(""))

Definition at line 282 of file Application.cpp.

References application(), Object::info(), m_network, m_server, Object::name(), setConfig(), Object::setName(), setState(), and Server::start().

282  {
283  if ( name.compare("")==0 ) {
284  application()->setName ( name );
285  }
286  if (!m_network) {
287  m_network = true;
288  m_server = new Server ( this );
289  m_server->start();
290  if ( m_network ) {
291  info("Update server information.","Application::network");
292  setConfig ();
293  setState ("READY");
294  }
295  }
296  else {
297  info("Stop network connection.","Application::network");
298  m_network = false;
299  delete m_server;
300  m_server = 0;
301  }
302 }
void info(std::string mymsg)
Definition: Object.h:38
Server * m_server
Definition: Application.h:374
Definition: Server.h:22
StatusCode start()
Start Service.
Definition: Server.cpp:98
void setName(std::string name)
Definition: Object.h:51
Application * application()
Definition: Tools.cpp:42
bool m_network
Definition: Application.h:375
void setState(std::string state=std::string(""))
std::string name() const
Definition: Object.h:28
void setConfig()

◆ options()

Options* Application::options ( )
inline

Get accessor to member m_options

Returns
the current value of m_options

Definition at line 86 of file Application.h.

Referenced by bookkeeping(), Acquisition::execute(), ADCMeasurement::execute(), CurrentMeasurement::execute(), export_obj(), Acquisition::initialize(), CurrentMeasurement::initialize(), ADCMeasurement::initialize(), loadHistoryFile(), and MsgSvc::msgSvc().

86  {
87  return m_options;
88  }
Options * m_options
Definition: Application.h:361

◆ plotSvc()

StatusCode Application::plotSvc ( )
inline

Execute plot service

Returns
the result

Definition at line 273 of file Application.h.

273  {
274  PlotSvc svc = m_plotSvc;
275  return svc();
276  }
StatusCode(* PlotSvc)()
Definition: Application.h:56
PlotSvc m_plotSvc
Definition: Application.h:372

◆ prepare()

StatusCode Application::prepare ( std::string  procName,
Element element = 0,
int  nEvt = 1 
)

Definition at line 393 of file Application.cpp.

References bookkeeping(), Processus::clean(), Processus::clone(), Options::dataStorage(), StatusCode::FAILURE, Options::logStorage(), m_current, m_options, m_processus, makeDir(), procDb(), shell::process(), ProcDataBase::procList(), Processus::setElement(), Options::setNErrors(), Options::setNEvt(), Options::setNEvtMax(), setState(), Options::setStorageFile(), Options::setStream(), Options::setTimeMax(), Processus::startProcessing(), Processus::storage(), Options::storageFile(), Options::storageFullPath(), StatusCode::SUCCESS, Object::verbose(), and Object::warning().

Referenced by export_obj(), and run().

395  {
396 
397  verbose("Prepare for a new run.","Application::prepare");
398 
399  if (0==element) element = dynamic_cast<Element*>(m_current);
400 
401  std::list<Processus*> listproc = procDb()->procList ( element );
402  std::list<Processus*>::iterator proc;
403 
404  Processus *process = 0;
405 
406  for (proc=listproc.begin(); proc!=listproc.end(); ++proc) {
407  if ( procName.compare( (*proc)->name() ) == 0 ) {
408  process = (*proc)->clone();
409  //--------------------
410  // Did not chose to make copies : use original processus !
411  // info("orig="+itos((int)(*proc)));
412  // process = (*proc)->clone();
413  // info("orig="+itos((int)(process)));
414  break;
415  }
416  }
417  if ( 0==process) {
418  warning("Processus " + procName + " not found.","Application::prepare");
419  setState ( "READY" );
420  return StatusCode::FAILURE;
421  }
422  if (0!=m_processus) {
423  m_processus->clean();
424  //--------------------
425  // did not chose to make copies
426  // delete m_processus;
427  }
429  m_options->setNErrors ( 0 );
430  m_options->setNEvt ( 0 );
431  // unsigned long currentNEvtMax = m_options->nEvtMax();
432  m_options->setNEvtMax ( nEvent );
433  if (nEvent<0) {
434  m_options->setTimeMax(int(((double)(CLOCKS_PER_SEC))/1.e11*(clock()-nEvent)));
435  // info("Time max is ", itos(m_options->timeMax()));
436  }
437  bookkeeping();
438  if (m_options->dataStorage() || m_options->logStorage()) {
439  if (makeDir(m_options->storageFullPath()).isFailure()) {
440  warning("Could not create storage directory "+m_options->storageFullPath(),"Application::prepare");
441  return StatusCode::FAILURE;
442  }
443  }
444  if (m_options->dataStorage() || m_options->logStorage()) {
447  }
448  m_processus->setElement( element );
449  if ( (m_processus->startProcessing()).isFailure() ) {
450  warning("Program initialization interrupted.","Application::prepare");
451  return StatusCode::FAILURE;
452  }
453  setState ( "RUNNING" );
454  return StatusCode::SUCCESS;
455 }
Processus * m_processus
Definition: Application.h:366
void verbose(std::string mymsg)
Definition: Object.h:36
void setElement(Element *element)
Definition: Processus.h:217
void setNEvt(unsigned long nEvt)
Definition: Options.h:309
void clean()
Definition: Processus.h:85
bool dataStorage()
Definition: Options.h:252
std::list< Processus *> procList(Element *)
virtual Processus * clone()=0
void setNEvtMax(int nEvtMax)
Definition: Options.h:325
void setState(std::string state=std::string(""))
bool logStorage()
Definition: Options.h:268
std::string storageFile()
Definition: Options.h:200
ProcDataBase * procDb()
Definition: Application.h:111
void setNErrors(unsigned long nErrors)
Definition: Options.h:357
void setStorageFile(std::string filename=std::string(""))
Definition: Options.h:188
StatusCode bookkeeping()
std::string storageFullPath()
Definition: Options.h:159
StatusCode makeDir(std::string)
void setStream(std::string file=std::string(""))
Definition: Options.h:400
StatusCode startProcessing()
Definition: Processus.cpp:93
Options * m_options
Definition: Application.h:361
Hierarchy * m_current
Definition: Application.h:358
def process(object)
Definition: shell.py:139
Definition: proc.py:1
void setTimeMax(unsigned long timeMax)
Definition: Options.h:341
std::string storage()
Definition: Processus.h:205
void warning(std::string mymsg)
Definition: Object.h:39

◆ procDb()

ProcDataBase* Application::procDb ( )
inline

Get accessor to member m_procDb

Returns
the current value of m_procDb

Definition at line 111 of file Application.h.

Referenced by Computer::Computer(), export_obj(), DLL::init(), prepare(), DLL::print(), setConfig(), Server::start(), and Computer::~Computer().

111  {
112  return m_procDb;
113  }
ProcDataBase * m_procDb
Definition: Application.h:363

◆ processus()

Processus* Application::processus ( )
inline

Get accessor to member m_processus

Returns
the current value of m_processus

Definition at line 248 of file Application.h.

248  {
249  return m_processus;
250  }
Processus * m_processus
Definition: Application.h:366

◆ run()

StatusCode Application::run ( std::string  procName,
Element element = 0,
int  nEvt = 1 
)

Execute the Application

Definition at line 130 of file Application.cpp.

References StatusCode::FAILURE, prepare(), status(), svcRunning(), and terminate().

Referenced by export_obj().

132  {
133  if ( prepare(procName, element, nEvent).isFailure() ) return StatusCode::FAILURE;
135  if (terminate().isFailure()) return StatusCode::FAILURE;
136  return status;
137 }
StatusCode prepare(std::string procName, Element *element=0, int nEvt=1)
StatusCode svcRunning()
StatusCode terminate()
char * status()
Definition: Application.h:220

◆ runSvc()

StatusCode Application::runSvc ( )
inline

Execute processing service

Returns
the result of the processing

Definition at line 256 of file Application.h.

256  {
257  RunSvc svc = m_runSvc;
258  return svc();
259  }
StatusCode(* RunSvc)()
Definition: Application.h:55
RunSvc m_runSvc
Definition: Application.h:371

◆ server()

void Application::server ( )

Definition at line 308 of file Application.cpp.

References Object::info(), m_server, setConfig(), setState(), and Server::start().

308  {
309  if ( 0 != m_server ) {
310  info("Delete CAT server.","Application::server");
311  delete m_server;
312  m_server = 0;
313  }
314  else {
315  m_server = new Server ( this );
316  m_server->start();
317  info("Update server information.","Application::server");
318  setConfig ();
319  setState ();
320  }
321 }
void info(std::string mymsg)
Definition: Object.h:38
Server * m_server
Definition: Application.h:374
Definition: Server.h:22
StatusCode start()
Start Service.
Definition: Server.cpp:98
void setState(std::string state=std::string(""))
void setConfig()

◆ setConfig()

void Application::setConfig ( )

Set accessor to member m_config and perform network publication

Definition at line 236 of file Application.cpp.

References Hierarchy::children(), Config::config, current(), m_config, m_current, m_server, Object::name(), procDb(), ProcDataBase::procList(), Object::type(), Server::updateConfig(), and Object::warning().

Referenced by initialize(), network(), and server().

236  {
237  if ( 0 != m_server ) {
238  // current element
239  Element* element=dynamic_cast<Element*>(m_current);
240  if (0==element)
241  {
242  warning("Cannot find the Element at the current position of the Hierarchy",
243  "Application::setConfig");
244  }
245  std::string current=m_current->name();
246  current.append("[");
247  current.append(m_current->type());
248  current.append("] ");
249  // strcpy(m_config->currentElement,current.c_str());
250 
251  // reachable processus list
252  std::list<Processus*> listproc = procDb()->procList ( element );
253  std::list<Processus*>::iterator proc;
254  for (proc=listproc.begin(); proc!=listproc.end(); ++proc) {
255  if ( proc!=listproc.begin() ) { current.append(":"); }
256  current.append((*proc)->name());
257  }
258  current.append(" ");
259  // strcpy(m_config->procList,process.c_str());
260 
261  // list of children
262  std::vector<Hierarchy*> list = m_current->children ();
263  std::vector<Hierarchy*>::iterator iter;
264  for (iter=list.begin(); iter!=list.end(); ++iter) {
265  if ( iter!=list.begin() ) { current.append(":"); }
266  current.append((*iter)->name());
267  current.append("[");
268  current.append((*iter)->type());
269  current.append("]");
270  }
271 
272  // finally ...update !
273  strcpy(m_config->config,current.c_str());
275  }
276 }
Server * m_server
Definition: Application.h:374
std::vector< Hierarchy * > children()
Definition: Hierarchy.h:33
Config * m_config
Definition: Application.h:369
StatusCode updateConfig()
Update Config Service.
Definition: Server.cpp:83
char config[10000]
Definition: Application.h:49
std::list< Processus *> procList(Element *)
ProcDataBase * procDb()
Definition: Application.h:111
std::string name() const
Definition: Object.h:28
Hierarchy * current()
Definition: Application.h:149
Hierarchy * m_current
Definition: Application.h:358
std::string type()
Definition: Object.h:29
Definition: proc.py:1
void warning(std::string mymsg)
Definition: Object.h:39

◆ setCtrl()

void Application::setCtrl ( std::string  control)
inline

Definition at line 306 of file Application.h.

Referenced by export_obj().

306  {
307  m_ctrl = control;
308  }
std::string m_ctrl
Definition: Application.h:376

◆ setCurrent()

void Application::setCurrent ( Hierarchy current)
inline

Set accessor to member m_current

Parameters
currentthe new value for m_current

Definition at line 141 of file Application.h.

Referenced by Application(), create(), and export_obj().

141  {
142  m_current = current;
143  }
Hierarchy * current()
Definition: Application.h:149
Hierarchy * m_current
Definition: Application.h:358

◆ setPlotSvc()

void Application::setPlotSvc ( PlotSvc  svc)
inline

Set accessor to plot service

Parameters
svcthe new value for service

Definition at line 282 of file Application.h.

282  {
283  m_plotSvc = svc;
284  }
PlotSvc m_plotSvc
Definition: Application.h:372

◆ setProcessus()

void Application::setProcessus ( Processus processus)
inline

Set accessor to member m_processus

Parameters
processusthe new value for m_processus

Definition at line 240 of file Application.h.

240  {
242  }
Processus * m_processus
Definition: Application.h:366
Processus * processus()
Definition: Application.h:248

◆ setRunSvc()

void Application::setRunSvc ( RunSvc  svc)
inline

Set accessor to processing service instance

Parameters
svcthe new value for service

Definition at line 265 of file Application.h.

265  {
266  m_runSvc = svc;
267  }
RunSvc m_runSvc
Definition: Application.h:371

◆ setState()

void Application::setState ( std::string  state = std::string(""))

Set accessor to member m_state and perform network publication

Parameters
statusthe new value for m_status

Definition at line 221 of file Application.cpp.

References m_options, m_server, m_state, State::nErrors, Options::nErrors(), State::nEvent, State::nEventMax, Options::nEvt(), Options::nEvtMax(), State::nRun, Options::runNumber(), State::status, and Server::updateState().

Referenced by initialize(), network(), prepare(), server(), svcRunning(), and terminate().

221  {
222  if ( 0 != m_server ) {
227  if (status.compare("")!=0) strcpy(m_state->status,status.c_str());
228  // and ... update !
230  }
231 }
Server * m_server
Definition: Application.h:374
unsigned long nEvt()
Definition: Options.h:317
int nRun
Definition: Application.h:40
int nEvtMax()
Definition: Options.h:333
int nEvent
Definition: Application.h:42
unsigned long runNumber()
Definition: Options.h:107
int nEventMax
Definition: Application.h:41
unsigned long nErrors()
Definition: Options.h:365
StatusCode updateState()
Update State Service.
Definition: Server.cpp:68
Options * m_options
Definition: Application.h:361
int nErrors
Definition: Application.h:43
char * status()
Definition: Application.h:220
char status[16]
Definition: Application.h:44
State * m_state
Definition: Application.h:368

◆ setVersion()

void Application::setVersion ( std::string  version)
inline

Set accessor to member m_version

Parameters
versionthe new value for m_version

Definition at line 290 of file Application.h.

290  {
291  m_version = version;
292  }
std::string m_version
Definition: Application.h:356
std::string version()
Definition: Application.h:298

◆ state()

State * Application::state ( )

return current Application State

Definition at line 200 of file Application.cpp.

References m_state.

Referenced by loop(), and Server::start().

200  {
201  /*
202  info("nRun "+itos(m_state->nRun),"Application::state");
203  info("nEvtMax "+itos(m_state->nEventMax),"Application::state");
204  info("nEvt "+itos(m_state->nEvent),"Application::state");
205  info("nErrors "+itos(m_state->nErrors),"Application::state");
206  info("status "+std::string(m_state->status) ,"Application::state");
207  */
208  return m_state;
209 }
State * m_state
Definition: Application.h:368

◆ status()

char* Application::status ( )
inline

Get accessor to member m_status

Returns
the current value of m_status

Definition at line 220 of file Application.h.

References shell::network().

Referenced by run().

220  {
221  return m_state->status;
222  }
char status[16]
Definition: Application.h:44
State * m_state
Definition: Application.h:368

◆ svcPlot()

StatusCode Application::svcPlot ( )

Definition at line 384 of file Application.cpp.

References StatusCode::FAILURE, and Object::warning().

384  {
385  warning("No implementation in cmd mode yet.","Application::svcPlot");
386  return StatusCode::FAILURE;
387 }
void warning(std::string mymsg)
Definition: Object.h:39

◆ svcRunning()

StatusCode Application::svcRunning ( )

Definition at line 343 of file Application.cpp.

References ctrl(), StatusCode::FAILURE, Object::info(), StatusCode::isFailure(), loop(), m_options, Options::nEvt(), Options::nEvtMax(), setState(), StatusCode::SUCCESS, and Object::warning().

Referenced by run().

343  {
344  while ( m_options->nEvt() < m_options->nEvtMax() ) {
345  if ( loop().isFailure() )
346  {
347  return StatusCode::FAILURE;
348  break;
349  }
350  std::string control = ctrl();
351  if ( 0 == control.compare("pause") ) {
352  setState ( "PAUSE" );
353  warning("Pause.","Application::svcRunning");
354  bool pause = true;
355  while ( pause ) {
356  std::string newctrl = ctrl();
357  int delay = 1000; // delay in loop in ms
358  usleep( 1000 * delay );
359  if ( 0==newctrl.compare ("stop") ) {
360  pause = false;
361  }
362  if ( 0==newctrl.compare ("resume") ) {
363  setState ( "RUNNING" );
364  pause = false;
365  }
366  newctrl.clear();
367  }
368  control.clear();
369  }
370  if ( 0 == control.compare("stop") ) {
371  info("User interruption.","Application::svcRunning");
372  control.clear();
373  return StatusCode::SUCCESS;
374  break;
375  }
376  }
377  return StatusCode::SUCCESS;
378 }
void info(std::string mymsg)
Definition: Object.h:38
bool isFailure() const
Definition: StatusCode.h:68
unsigned long nEvt()
Definition: Options.h:317
StatusCode loop()
int nEvtMax()
Definition: Options.h:333
void setState(std::string state=std::string(""))
std::string ctrl()
Definition: Application.h:314
Options * m_options
Definition: Application.h:361
void warning(std::string mymsg)
Definition: Object.h:39

◆ terminate()

StatusCode Application::terminate ( )

Definition at line 485 of file Application.cpp.

References Processus::endProcessing(), Options::incRunNumber(), Object::info(), itos(), Options::logStorage(), m_options, m_processus, Object::name(), Options::nEvt(), Options::runNumberManagement(), Options::setNEvt(), setState(), Options::setStream(), StatusCode::SUCCESS, and Object::title().

Referenced by export_obj(), and run().

485  {
487  info("Processus " + m_processus->name() +" '" +
488  std::string(m_processus->title().c_str()) +
489  "' completed [" +
490  itos( m_options->nEvt() ) + " events]",
491  "Application::svcRunning");
492  if ( m_options->logStorage()) {
493  m_options->setStream();
494  }
495  // graphSvc();
496  // m_options->setNEvtMax ( currentNEvtMax );
498  m_options->setNEvt ( 0 );
499  setState ( "READY" );
500 #ifdef _NETWORK_
501  m_processus->updateServices();
502 #endif
503  return StatusCode::SUCCESS;
504 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
Processus * m_processus
Definition: Application.h:366
unsigned long nEvt()
Definition: Options.h:317
void setNEvt(unsigned long nEvt)
Definition: Options.h:309
StatusCode endProcessing()
Definition: Processus.cpp:115
void incRunNumber()
Definition: Options.cpp:74
std::string title()
Definition: Object.h:31
bool runNumberManagement()
Definition: Options.h:123
void setState(std::string state=std::string(""))
bool logStorage()
Definition: Options.h:268
std::string name() const
Definition: Object.h:28
void setStream(std::string file=std::string(""))
Definition: Options.h:400
Options * m_options
Definition: Application.h:361

◆ treeRecursive()

void Application::treeRecursive ( Hierarchy ,
std::string   
)

◆ version()

std::string Application::version ( )
inline

Get accessor to member m_version

Returns
the current value of m_version

Definition at line 298 of file Application.h.

298  {
299  return m_version;
300  }
std::string m_version
Definition: Application.h:356

Member Data Documentation

◆ m_accountName

std::string Application::m_accountName
protected

Definition at line 351 of file Application.h.

Referenced by Application(), and banner().

◆ m_computer

Computer* Application::m_computer
private

Definition at line 364 of file Application.h.

Referenced by Application().

◆ m_config

Config* Application::m_config
private

Definition at line 369 of file Application.h.

Referenced by Application(), config(), initialize(), setConfig(), and ~Application().

◆ m_ctrl

std::string Application::m_ctrl
private

Definition at line 376 of file Application.h.

Referenced by initialize().

◆ m_current

Hierarchy* Application::m_current
protected

Definition at line 358 of file Application.h.

Referenced by create(), prepare(), and setConfig().

◆ m_dllMgr

DLLMgr* Application::m_dllMgr
private

Definition at line 362 of file Application.h.

Referenced by Application(), create(), and ~Application().

◆ m_hostName

std::string Application::m_hostName
protected

Definition at line 352 of file Application.h.

Referenced by Application(), and banner().

◆ m_isRunning

bool Application::m_isRunning
protected

Definition at line 357 of file Application.h.

◆ m_network

bool Application::m_network
private

Definition at line 375 of file Application.h.

Referenced by initialize(), and network().

◆ m_options

Options* Application::m_options
private

Definition at line 361 of file Application.h.

Referenced by Application(), loop(), prepare(), setState(), svcRunning(), terminate(), and ~Application().

◆ m_osName

std::string Application::m_osName
protected

Definition at line 353 of file Application.h.

Referenced by Application(), and banner().

◆ m_osVersion

std::string Application::m_osVersion
protected

Definition at line 354 of file Application.h.

Referenced by Application(), and banner().

◆ m_plotSvc

PlotSvc Application::m_plotSvc
private

Definition at line 372 of file Application.h.

◆ m_procDb

ProcDataBase* Application::m_procDb
private

Definition at line 363 of file Application.h.

Referenced by Application(), and ~Application().

◆ m_processus

Processus* Application::m_processus
private

Definition at line 366 of file Application.h.

Referenced by loop(), prepare(), and terminate().

◆ m_prompt

std::string Application::m_prompt
protected

Definition at line 355 of file Application.h.

◆ m_runSvc

RunSvc Application::m_runSvc
private

Definition at line 371 of file Application.h.

◆ m_server

Server* Application::m_server
private

Definition at line 374 of file Application.h.

Referenced by initialize(), network(), server(), setConfig(), setState(), and ~Application().

◆ m_state

State* Application::m_state
private

Definition at line 368 of file Application.h.

Referenced by Application(), initialize(), setState(), state(), and ~Application().

◆ m_version

std::string Application::m_version
protected

Definition at line 356 of file Application.h.


The documentation for this class was generated from the following files: