hlcc 2.0.0-beta2+pre1
Loading...
Searching...
No Matches
dataAcquisition.hpp
Go to the documentation of this file.
1
9#ifndef HLCC_TELIF_TELIFSIM_DATAACQUISITION_HPP
10#define HLCC_TELIF_TELIFSIM_DATAACQUISITION_HPP
11
12#include <vector>
13#include <list>
14#include <chrono>
15#include <memory>
16#include <mutex>
17
18#include <Metadaqif.hpp>
19
20#include "telifsim/logger.hpp"
23
24
25namespace hlcc::telifsim {
26
32public:
33
38 enum DaqCmds {
42 };
43
49 DataAcquisition(OldbInterface &moldbif, const std::string &mid);
50
54 virtual ~DataAcquisition();
55
62 bool ProcessCommand(DaqCmds cmd);
63
69 const std::string &GetId() const;
70
76 const metadaqif::DaqState &GetState() const;
77
83 std::string GetStateStr() const;
84
90 const std::string &GetMessage() const;
91
97 const std::vector<std::string> &GetFiles() const;
98
104 std::string GetKeywords();
105
111 uint64_t GetTimestamp() const;
112
113 DataAcquisition() = delete;
116
117private:
118 OldbInterface& m_oldb_interface;
119 std::string m_id; /* Unique data acquisition identifier */
120 metadaqif::DaqState m_state; /* Data acquisitions status enumeration */
121 std::string m_message; /* If DAQ failed this field should contain a message with details */
122 std::vector<std::string> m_files; /* If DAQ succeeds this enumerates the produced files */
123 uint64_t m_timestamp; /* Timestamp of last status update (DAQ state change) */
124 FitsKeywords m_fits_keywords;
125
132 bool SetState(metadaqif::DaqState new_state);
133
140 bool SetMessage(const std::string &mmessage);
141
148 bool SetFiles(const std::vector<std::string> &mfiles);
149
150};
151
157public:
158
164
171
179 std::shared_ptr<DataAcquisition> GetAcquisition(const std::string &given_id);
180
190 std::shared_ptr<DataAcquisition> CreateAcquisition(OldbInterface& moldbif, std::string given_id);
191
199 bool RemoveAcquisition(const std::string &given_id);
200
203
204private:
205 std::list<std::shared_ptr<DataAcquisition>> m_daq_list; /* List of all active acquisitions */
206 const unsigned int max_number_acquisitions;
207};
208
209} // namespace hlcc::telifsim
210
211#endif // HLCC_TELIF_TELIFSIM_DATAACQUISITION_HPP
Definition: dataAcquisition.hpp:156
std::shared_ptr< DataAcquisition > CreateAcquisition(OldbInterface &moldbif, std::string given_id)
Definition: dataAcquisition.cpp:210
bool RemoveAcquisition(const std::string &given_id)
Definition: dataAcquisition.cpp:269
DataAcquisitionList()
Definition: dataAcquisition.cpp:190
int GetNumberAcquisitions()
Definition: dataAcquisition.cpp:193
DataAcquisitionList(const DataAcquisitionList &)=delete
DataAcquisitionList & operator=(const DataAcquisitionList &)=delete
Disable copy constructor.
std::shared_ptr< DataAcquisition > GetAcquisition(const std::string &given_id)
Definition: dataAcquisition.cpp:197
Definition: dataAcquisition.hpp:31
DaqCmds
Definition: dataAcquisition.hpp:38
@ DC_STOP
Definition: dataAcquisition.hpp:40
@ DC_START
Definition: dataAcquisition.hpp:39
@ DC_ABORT
Definition: dataAcquisition.hpp:41
DataAcquisition & operator=(const DataAcquisition &)=delete
Disable copy constructor.
const std::string & GetMessage() const
Definition: dataAcquisition.cpp:151
DataAcquisition(const DataAcquisition &)=delete
Disable default constructo.
uint64_t GetTimestamp() const
Definition: dataAcquisition.cpp:180
const std::string & GetId() const
Definition: dataAcquisition.cpp:105
std::string GetStateStr() const
Definition: dataAcquisition.cpp:115
std::string GetKeywords()
Definition: dataAcquisition.cpp:173
const std::vector< std::string > & GetFiles() const
Definition: dataAcquisition.cpp:162
virtual ~DataAcquisition()
Definition: dataAcquisition.cpp:28
bool ProcessCommand(DaqCmds cmd)
Definition: dataAcquisition.cpp:32
const metadaqif::DaqState & GetState() const
Definition: dataAcquisition.cpp:110
Definition: dataAcquisitionFits.hpp:276
Definition: oldbInterface.hpp:35
DataAcquisitionFits class header file.
Definition: actionMgr.cpp:31
Default logger name.
OldbInterface class header file.