Diana Software
QDianaProcessStatus.hh
Go to the documentation of this file.
1 /*
2  * APOLLO: A complete DAQ and Online Data Analysis Framework for Diana
3  * M.P. created 26/5/4
4  *
5  * Class QDianaProcessStatus: class that describes the status of diana process
6  *
7  */
8 
22 #ifndef __QDIANA_PROCESS_STATUS_HH_
23 #define __QDIANA_PROCESS_STATUS_HH_
24 
25 #include <string>
26 
27 #include "QDiana.hh"
28 #include "QNamed.hh"
29 #include "QId.hh"
30 
31 class QDianaProcessStatus : public QNamed, QId {
32 public:
36  QExiting_s
37  };
38 
41 
42  virtual ~QDianaProcessStatus() {}
43 
45  volatile inline ProcessStatus_t GetState() const { return state; }
46 
47  // checks
48  volatile bool isRunning() const { return (state == QRunning_s);}
49  volatile bool isError() const {return (state == QError_s);}
50  volatile bool isExiting() const {return (state == QExiting_s);}
51 
53  const std::string& GetError() const {return fError;}
54 
55 private:
56 
59  std::string fError;
60 
65  inline void SetState(const ProcessStatus_t s) { state=s; }
66 
71  void SetError(const std::string& s) {fError=s;}
72 
73  friend void ProcessControlSignalHandler(int);
74 };
75 
76  void ProcessControlSignalHandler( int SignalId );
77 
78 
79 
80 #endif
void ProcessControlSignalHandler(int SignalId)
wrapper for ProcessStatus_ enum
singleton that manage diana status
void SetError(const std::string &s)
set error string according to detected signal
const std::string & GetError() const
get error string
volatile ProcessStatus_t GetState() const
get diana status
volatile bool isRunning() const
volatile bool isExiting() const
volatile bool isError() const
friend void ProcessControlSignalHandler(int)
static QDianaProcessStatus & GetInstance()
get instance
void SetState(const ProcessStatus_t s)
change process status according to detected signal
base class for anything having an id
Definition: QId.hh:13
base class for anything that has a name
Definition: QNamed.hh:14