Cat
Public Types | Public Member Functions | Protected Attributes | Private Attributes | List of all members
Processus Class Referenceabstract

#include <include/Processus.h>

Inheritance diagram for Processus:
Object Attrib A3PE_BitFlip Acquisition Acquisition ADCMeasurement CurrentMeasurement EmulateFE PhaserRampExec PhaserScan ProcessusWrap RegisterTest StorageFifo StorageFifoAcquisition TestI2C TestSPI TestSuite TestUSB UsbFTInterfaceTest

Public Types

enum  states { ERR =-1, NOT_OK, OK }
 
- Public Types inherited from Attrib
enum  Attribut {
  UNDEFINED, PASSIVE, ACTIVE, INTERFACE,
  IO, IODATA, ELEMENT, HARDWARE,
  PROCESSUS, SOFTWARE
}
 

Public Member Functions

 Processus ()
 Standard constructor. More...
 
virtual ~Processus ()
 Destructor. More...
 
StatusCode startProcessing ()
 
StatusCode endProcessing ()
 
virtual StatusCode initialize ()=0
 
virtual StatusCode execute ()=0
 
virtual StatusCode finalize ()=0
 
virtual Processusclone ()=0
 
void clean ()
 
void setStorage (std::string storage)
 
Datadata ()
 
std::vector< double > data (unsigned int row)
 
std::vector< double > data (std::string name)
 
Histo1Dhist1d (unsigned int row)
 
Histo2Dhist2d (unsigned int row)
 
void addDataStream (std::string name, std::string title)
 
void addHisto1d (TH1D *h)
 
void addHisto2d (TH2D *h)
 
StatusCode dataFill (int i, double val)
 
StatusCode dataFill (std::string name, double val)
 
std::string storage ()
 
void setElement (Element *element)
 
Elementelement ()
 
void incNErrors ()
 
void setNErrors (unsigned int)
 
unsigned int nErrors ()
 
TFile * rootFile ()
 
void openRootFile ()
 
void closeRootFile ()
 
void startChrono ()
 
void setLogMsg (std::string logMsg)
 
std::string logMsg ()
 
void setState (int state)
 
double elapsedTime ()
 
double elapsedTime (time_t start)
 
- 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

Elementm_element
 
- Protected Attributes inherited from Attrib
std::string m_attribString [10]
 

Private Attributes

Datam_data
 
TFile * m_rootFile
 
Optionsm_options
 
time_t m_start
 
ProcStatem_state
 
std::string m_storage
 
std::string m_logMsg
 

Detailed Description

Author
Frederic Machefert
Date
2004-07-22

Definition at line 32 of file Processus.h.

Member Enumeration Documentation

◆ states

Enumerator
ERR 
NOT_OK 
OK 

Definition at line 34 of file Processus.h.

Constructor & Destructor Documentation

◆ Processus()

Processus::Processus ( )

Standard constructor.

Definition at line 23 of file Processus.cpp.

References Attrib::add(), and m_data.

23  :
24  m_element (0),
25  m_data (0),
26  m_rootFile(0),
27  m_options (application()->options()),
28  m_state (0),
29  m_storage (std::string("")),
30  m_logMsg (std::string(""))
31 #ifdef _NETWORK_
32  ,
33  m_service (false),
34  m_updateDelay (2),
35  m_timerService (0),
36  m_valueService (0)
37  m_stateService (0)
38 #endif
39 {
40  m_data=new Data();
41  add(8); add(9);
42 }
ProcState * m_state
Definition: Processus.h:363
void add(int attribut)
Definition: Attrib.h:67
std::string m_logMsg
Definition: Processus.h:365
Options * m_options
Definition: Processus.h:360
std::string m_storage
Definition: Processus.h:364
Application * application()
Definition: Tools.cpp:42
Element * m_element
Definition: Processus.h:348
Definition: Data.h:16
TFile * m_rootFile
Definition: Processus.h:359
Data * m_data
Definition: Processus.h:358

◆ ~Processus()

Processus::~Processus ( )
virtual

Destructor.

Definition at line 47 of file Processus.cpp.

References m_data, m_element, and m_state.

47  {
48  if (0!=m_data) delete m_data;
49  if (0!=m_element)
50  {
51  if (0!=m_state)
52  {
53  delete m_state;
54  }
55  }
56 #ifdef _NETWORK_
57  if ( 0 != m_timerService ){
58  delete m_timerService;
59  }
60  if ( 0 != m_stateService ){
61  delete m_stateService;
62  }
63  if ( 0 != m_valueService ){
64  delete m_valueService;
65  }
66 #endif
67 }
ProcState * m_state
Definition: Processus.h:363
Element * m_element
Definition: Processus.h:348
Data * m_data
Definition: Processus.h:358

Member Function Documentation

◆ addDataStream()

void Processus::addDataStream ( std::string  name,
std::string  title 
)
inline

Definition at line 153 of file Processus.h.

Referenced by RegisterTest::initialize(), TestSuite::initialize(), TestSPI::initialize(), TestUSB::initialize(), TestI2C::initialize(), UsbFTInterfaceTest::initialize(), ADCMeasurement::initialize(), and CurrentMeasurement::initialize().

153  {
155  }
void addDataStream(std::string, std::string)
Definition: Data.cpp:31
std::string title()
Definition: Object.h:31
std::string name() const
Definition: Object.h:28
Data * m_data
Definition: Processus.h:358

◆ addHisto1d()

void Processus::addHisto1d ( TH1D *  h)
inline

◆ addHisto2d()

void Processus::addHisto2d ( TH2D *  h)
inline

Definition at line 167 of file Processus.h.

Referenced by TestSuite::initialize().

167  {
168  m_data->addHisto2d(h);
169  }
void addHisto2d(TH2D *)
Definition: Data.cpp:47
Data * m_data
Definition: Processus.h:358

◆ clean()

void Processus::clean ( )
inline

Definition at line 85 of file Processus.h.

Referenced by Application::prepare().

86  {
87  m_element=0;
88  if (0!=m_state) {
89  delete m_state;
90  m_state=0;
91  }
92 #ifdef _NETWORK_
93  warning("Cleaning state service : should it be done ?","Processus::clean")
94  if (0!=m_stateService)
95  {
96  delete m_stateService;
97  }
98 #endif
99  }
ProcState * m_state
Definition: Processus.h:363
Element * m_element
Definition: Processus.h:348
void warning(std::string mymsg)
Definition: Object.h:39

◆ clone()

virtual Processus* Processus::clone ( )
pure virtual

◆ closeRootFile()

void Processus::closeRootFile ( )

Close Root file if already opened and requested

Definition at line 160 of file Processus.cpp.

References Options::dataFileFullName(), Options::dataStorage(), Object::info(), m_options, and m_rootFile.

Referenced by endProcessing(), RegisterTest::finalize(), UsbFTInterfaceTest::finalize(), and PhaserRampExec::finalize().

160  {
161  if ( 0!= m_rootFile && m_options->dataStorage() ){
162  m_rootFile->Write();
163  std::string mess=std::string("Closing root file ");
164  mess.append(m_options->dataFileFullName());
165  info(mess,"closeRootFile");
166  m_rootFile->Delete();
167  m_rootFile = 0;
168  }
169 }
void info(std::string mymsg)
Definition: Object.h:38
std::string dataFileFullName()
Definition: Options.h:219
Options * m_options
Definition: Processus.h:360
bool dataStorage()
Definition: Options.h:252
TFile * m_rootFile
Definition: Processus.h:359

◆ data() [1/3]

Data* Processus::data ( )
inline

Get accessor to member m_data

Returns
the current value of m_data

Definition at line 114 of file Processus.h.

Referenced by StorageFifoAcquisition::execute(), and export_proc().

114  {
115  return m_data;
116  }
Data * m_data
Definition: Processus.h:358

◆ data() [2/3]

std::vector<double> Processus::data ( unsigned int  row)
inline

Get accessor to member m_data

Returns
the current value of m_data

Definition at line 122 of file Processus.h.

122  {
123  return m_data->vector(row);
124  }
std::vector< double > vector(unsigned int)
Definition: Data.cpp:146
Data * m_data
Definition: Processus.h:358

◆ data() [3/3]

std::vector<double> Processus::data ( std::string  name)
inline

Get accessor to member m_data

Returns
the current value of m_data

Definition at line 130 of file Processus.h.

130  {
131  return m_data->vector(name);
132  }
std::vector< double > vector(unsigned int)
Definition: Data.cpp:146
std::string name() const
Definition: Object.h:28
Data * m_data
Definition: Processus.h:358

◆ dataFill() [1/2]

StatusCode Processus::dataFill ( int  i,
double  val 
)
inline

Set data stream with value

Returns
the StatusCode

Definition at line 175 of file Processus.h.

References StatusCode::FAILURE, and StatusCode::SUCCESS.

Referenced by TestSuite::execute(), TestI2C::execute(), TestUSB::execute(), TestSPI::execute(), UsbFTInterfaceTest::execute(), CurrentMeasurement::execute(), and ADCMeasurement::execute().

175  {
176  if (m_data->vectorPtr(i)!=0){
177  m_data->vectorPtr(i)->push_back(val);
178  return StatusCode::SUCCESS;
179  }
180  else {
181  return StatusCode::FAILURE;
182  }
183  }
std::vector< double > * vectorPtr(unsigned int)
Definition: Data.cpp:134
Data * m_data
Definition: Processus.h:358

◆ dataFill() [2/2]

StatusCode Processus::dataFill ( std::string  name,
double  val 
)
inline

Set data stream with value

Returns
the StatusCode

Definition at line 189 of file Processus.h.

References StatusCode::FAILURE, and StatusCode::SUCCESS.

189  {
190  int row=m_data->rowFromName(name);
191  if (row<0) return StatusCode::FAILURE;
192  if (m_data->vectorPtr(row)!=0){
193  m_data->vectorPtr(row)->push_back(val);
194  return StatusCode::SUCCESS;
195  }
196  else {
197  return StatusCode::FAILURE;
198  }
199  }
int rowFromName(std::string)
Definition: Data.cpp:158
std::string name() const
Definition: Object.h:28
std::vector< double > * vectorPtr(unsigned int)
Definition: Data.cpp:134
Data * m_data
Definition: Processus.h:358

◆ elapsedTime() [1/2]

double Processus::elapsedTime ( )
inline

Definition at line 340 of file Processus.h.

References ProcState::time.

Referenced by endProcessing(), UsbFTInterfaceTest::execute(), PhaserRampExec::finalize(), and setState().

340  {
341  return difftime(time(0),m_start);
342  }
time_t m_start
Definition: Processus.h:362

◆ elapsedTime() [2/2]

double Processus::elapsedTime ( time_t  start)
inline

Definition at line 343 of file Processus.h.

References ProcState::time.

343  {
344  return ((time(0)-start));
345  }

◆ element()

Element* Processus::element ( )
inline

◆ endProcessing()

StatusCode Processus::endProcessing ( )

processus standard termination function

Definition at line 115 of file Processus.cpp.

References Data::buildHistos(), closeRootFile(), elapsedTime(), Data::empty(), finalize(), ftos(), Object::info(), itos(), m_data, m_options, nErrors(), Options::nErrors(), Options::nEvt(), NOT_OK, Data::print(), Options::runNumber(), and setState().

Referenced by export_proc(), and Application::terminate().

115  {
116  setState( NOT_OK );
117  //
118  info("--------------------------------------------------------------------------");
119  info("Processed Run Number : " + itos (m_options->runNumber()) , "finalize");
120  info("Number of events processed : " + itos (m_options->nEvt()) , "finalize");
121  info("Number of Errors : " + itos (nErrors()) , "finalize");
122  info("Number of App errors : " + itos (m_options->nErrors()) , "finalize");
123  info("Elapsed time : " + ftos (elapsedTime()) , "finalize");
124  info("--------------------------------------------------------------------------");
125  if (!m_data->empty())
126  m_data->print();
127  else
128  info("No data Stored.","finalize");
129  info("--------------------------------------------------------------------------");
130 
131 #ifdef _NETWORK_
132  if ( 0 != m_timerService ){
133  m_timerService->setRunning ( false );
134  }
135 #endif
136  StatusCode sc = finalize();
137  m_data->buildHistos();
138  closeRootFile();
139  return sc;
140 }
void info(std::string mymsg)
Definition: Object.h:38
std::string itos(int)
Definition: Tools.cpp:46
unsigned long nEvt()
Definition: Options.h:317
std::string ftos(float)
Definition: Tools.cpp:53
unsigned int nErrors()
Definition: Processus.cpp:86
unsigned long runNumber()
Definition: Options.h:107
unsigned long nErrors()
Definition: Options.h:365
Options * m_options
Definition: Processus.h:360
void closeRootFile()
Definition: Processus.cpp:160
double elapsedTime()
Definition: Processus.h:340
virtual StatusCode finalize()=0
void print()
Definition: Data.cpp:186
bool empty()
Definition: Data.h:49
void buildHistos()
Definition: Data.cpp:98
void setState(int state)
Definition: Processus.cpp:174
Data * m_data
Definition: Processus.h:358

◆ execute()

virtual StatusCode Processus::execute ( )
pure virtual

◆ finalize()

virtual StatusCode Processus::finalize ( )
pure virtual

◆ hist1d()

Histo1D* Processus::hist1d ( unsigned int  row)
inline

Get accessor to member m_data

Returns
the current value of m_data

Definition at line 138 of file Processus.h.

Referenced by export_proc().

138  {
139  return m_data->hist1d(row);
140  }
Histo1D * hist1d(unsigned int row)
Definition: Data.h:30
Data * m_data
Definition: Processus.h:358

◆ hist2d()

Histo2D* Processus::hist2d ( unsigned int  row)
inline

Get accessor to member m_data

Returns
the current value of m_data

Definition at line 146 of file Processus.h.

Referenced by export_proc().

146  {
147  return m_data->hist2d(row);
148  }
Histo2D * hist2d(unsigned int row)
Definition: Data.h:35
Data * m_data
Definition: Processus.h:358

◆ incNErrors()

void Processus::incNErrors ( )

Increment the number of Errors for that process

Definition at line 72 of file Processus.cpp.

References m_state, and ProcState::nerrors.

72  {
73  m_state->nerrors++;
74 }
int nerrors
Definition: Processus.h:26
ProcState * m_state
Definition: Processus.h:363

◆ initialize()

virtual StatusCode Processus::initialize ( )
pure virtual

◆ logMsg()

std::string Processus::logMsg ( )
inline

Get accessor to member m_logMsg

Returns
the current value of m_logMsg

Definition at line 291 of file Processus.h.

References ProcState::state.

291  {
292  return m_logMsg;
293  }
std::string m_logMsg
Definition: Processus.h:365

◆ nErrors()

unsigned int Processus::nErrors ( )

Get accessor to member m_nErrors

Returns
the current value of m_nErrors

Definition at line 86 of file Processus.cpp.

References m_state, and ProcState::nerrors.

Referenced by endProcessing().

86  {
87  return ( m_state->nerrors++ );
88 }
int nerrors
Definition: Processus.h:26
ProcState * m_state
Definition: Processus.h:363

◆ openRootFile()

void Processus::openRootFile ( )

Open Root file if needed

Definition at line 146 of file Processus.cpp.

References Options::dataFileFullName(), Options::dataStorage(), Object::info(), m_options, m_rootFile, and Object::name().

Referenced by RegisterTest::initialize(), UsbFTInterfaceTest::initialize(), PhaserRampExec::initialize(), and startProcessing().

146  {
147  if ( m_options->dataStorage() ){
148  m_rootFile = new TFile(m_options->dataFileFullName().c_str(),
149  "RECREATE",name().c_str());
150  std::string mess=std::string("Opening root file ");
151  mess.append(m_options->dataFileFullName());
152  info(mess,"openRootFile");
153  }
154 }
void info(std::string mymsg)
Definition: Object.h:38
std::string dataFileFullName()
Definition: Options.h:219
Options * m_options
Definition: Processus.h:360
bool dataStorage()
Definition: Options.h:252
std::string name() const
Definition: Object.h:28
TFile * m_rootFile
Definition: Processus.h:359

◆ rootFile()

TFile* Processus::rootFile ( )
inline

Get accessor to member m_rootFile

Returns
the current value of m_rootFile

Definition at line 258 of file Processus.h.

258  {
259  return m_rootFile;
260  }
TFile * m_rootFile
Definition: Processus.h:359

◆ setElement()

void Processus::setElement ( Element element)
inline

Set accessor to member m_element

Parameters
elementthe new value for m_element

Definition at line 217 of file Processus.h.

Referenced by export_proc(), and Application::prepare().

217  {
218  m_state = new ProcState ();
219  m_state->nevent = 0;
220  m_state->nerrors = 0;
221  m_state->time = 0;
222  strcpy( m_state->state,"");
223  // setState( OK );
224  m_element = element;
225  }
int nerrors
Definition: Processus.h:26
ProcState * m_state
Definition: Processus.h:363
Element * m_element
Definition: Processus.h:348
float time
Definition: Processus.h:27
int nevent
Definition: Processus.h:25
Element * element()
Definition: Processus.h:231
char state[256]
Definition: Processus.h:28

◆ setLogMsg()

void Processus::setLogMsg ( std::string  logMsg)
inline

Set accessor to member m_logMsg

Parameters
logMsgthe new value for m_logMsg

Definition at line 283 of file Processus.h.

283  {
284  m_logMsg = logMsg;
285  }
std::string m_logMsg
Definition: Processus.h:365
std::string logMsg()
Definition: Processus.h:291

◆ setNErrors()

void Processus::setNErrors ( unsigned int  nerr)

Set accessor to member m_nErrors

Parameters
nErrorsthe new value for m_nErrors

Definition at line 79 of file Processus.cpp.

References m_state, and ProcState::nerrors.

Referenced by startProcessing().

79  {
80  m_state->nerrors = nerr ;
81 }
int nerrors
Definition: Processus.h:26
ProcState * m_state
Definition: Processus.h:363

◆ setState()

void Processus::setState ( int  state)

Set accessor to member m_state.state

Parameters
statethe new value for m_state.state

Definition at line 174 of file Processus.cpp.

References application(), elapsedTime(), ERR, Object::info(), m_options, m_state, Object::msgSvc(), Object::name(), ProcState::nerrors, Options::nErrors(), ProcState::nevent, Options::nEvt(), NOT_OK, OK, ProcState::state, and ProcState::time.

Referenced by endProcessing().

174  {
177  m_state->time = (float) ( elapsedTime() );
178  switch ( state ){
179  case OK:
180  strcpy(m_state->state,"OK");
181  break;
182  case NOT_OK:
183  strcpy(m_state->state,"NOT_OK");
184  break;
185  case ERR:
186  strcpy(m_state->state,"ERROR");
187  }
188 }
unsigned long nEvt()
Definition: Options.h:317
int nerrors
Definition: Processus.h:26
ProcState * m_state
Definition: Processus.h:363
unsigned long nErrors()
Definition: Options.h:365
Options * m_options
Definition: Processus.h:360
double elapsedTime()
Definition: Processus.h:340
float time
Definition: Processus.h:27
int nevent
Definition: Processus.h:25
char state[256]
Definition: Processus.h:28

◆ setStorage()

void Processus::setStorage ( std::string  storage)
inline

Set accessor to member m_storage

Parameters
storagethe new value for m_storage

Definition at line 106 of file Processus.h.

Referenced by export_proc().

106  {
107  m_storage = storage;
108  }
std::string m_storage
Definition: Processus.h:364
std::string storage()
Definition: Processus.h:205

◆ startChrono()

void Processus::startChrono ( )
inline

Start processus time measurement

Definition at line 275 of file Processus.h.

References ProcState::time.

Referenced by PhaserRampExec::initialize(), and startProcessing().

275  {
276  m_start = time(0);
277  }
time_t m_start
Definition: Processus.h:362

◆ startProcessing()

StatusCode Processus::startProcessing ( )

processus cmdline function processus virtual command function processus standard initialize function

Definition at line 93 of file Processus.cpp.

References Object::info(), initialize(), m_data, m_options, Object::name(), openRootFile(), Data::purge(), setNErrors(), Options::setNErrors(), and startChrono().

Referenced by export_proc(), and Application::prepare().

93  {
94  info("==========================================================================");
95  info(" * " + name() + " *" );
96  m_options->setNErrors ( 0 );
97  setNErrors ( 0 );
98  m_data->purge();
99 #ifdef _NETWORK_
100  if ( 0 != m_timerService ){
101  m_timerService->setRunning ( true );
102  m_timerService->timeHandler() ;
103  }
104 #endif
105  // start measuring processus duration
106 
107  startChrono();
108  openRootFile();
109  return initialize();
110 }
void info(std::string mymsg)
Definition: Object.h:38
void openRootFile()
Definition: Processus.cpp:146
void purge()
Definition: Data.cpp:54
Options * m_options
Definition: Processus.h:360
void setNErrors(unsigned int)
Definition: Processus.cpp:79
void setNErrors(unsigned long nErrors)
Definition: Options.h:357
void startChrono()
Definition: Processus.h:275
std::string name() const
Definition: Object.h:28
virtual StatusCode initialize()=0
Data * m_data
Definition: Processus.h:358

◆ storage()

std::string Processus::storage ( )
inline

Get accessor to member m_storage

Returns
the current value of m_storage

Definition at line 205 of file Processus.h.

Referenced by export_proc(), and Application::prepare().

205  {
206  if ( 0 == m_storage.compare("") )
207  {
208  return name();
209  }
210  return m_storage;
211  }
std::string m_storage
Definition: Processus.h:364
std::string name() const
Definition: Object.h:28

Member Data Documentation

◆ m_data

Data* Processus::m_data
private

Definition at line 358 of file Processus.h.

Referenced by endProcessing(), Processus(), startProcessing(), and ~Processus().

◆ m_element

Element* Processus::m_element
protected

Definition at line 348 of file Processus.h.

Referenced by ~Processus().

◆ m_logMsg

std::string Processus::m_logMsg
private

Definition at line 365 of file Processus.h.

◆ m_options

Options* Processus::m_options
private

Definition at line 360 of file Processus.h.

Referenced by closeRootFile(), endProcessing(), openRootFile(), setState(), and startProcessing().

◆ m_rootFile

TFile* Processus::m_rootFile
private

Definition at line 359 of file Processus.h.

Referenced by closeRootFile(), and openRootFile().

◆ m_start

time_t Processus::m_start
private

Definition at line 362 of file Processus.h.

◆ m_state

ProcState* Processus::m_state
private

Definition at line 363 of file Processus.h.

Referenced by incNErrors(), nErrors(), setNErrors(), setState(), and ~Processus().

◆ m_storage

std::string Processus::m_storage
private

Definition at line 364 of file Processus.h.


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