ifw-daq 3.1.0
IFW Data Acquisition modules
Loading...
Searching...
No Matches
daqContext.cpp
Go to the documentation of this file.
1/**
2 * @file
3 * @ingroup daq_common_libdaq
4 * @copyright 2022 ESO - European Southern Observatory
5 *
6 * @brief Contains definition of `daq::Context` helpers.
7 */
8#include <daq/daqContext.hpp>
9
10namespace daq {
11
12bool operator==(DaqContext const& lhs, DaqContext const& rhs) noexcept {
13 return lhs.id == rhs.id && lhs.file_id == rhs.file_id &&
14 lhs.await_interval == rhs.await_interval && lhs.dp_name_prefix == rhs.dp_name_prefix &&
15 lhs.process_name == rhs.process_name && lhs.keywords == rhs.keywords &&
16 lhs.meta_sources == rhs.meta_sources && lhs.prim_sources == rhs.prim_sources &&
17 lhs.results == rhs.results && lhs.specification == rhs.specification;
18}
19
20bool operator==(DaqContext::Source const& lhs, DaqContext::Source const& rhs) noexcept {
21 return lhs.name == rhs.name && lhs.rr_uri == rhs.rr_uri;
22}
23
25 fits::KeywordVector const& in,
26 fits::KeywordFormatter const& fmt) {
27 if (in.empty()) {
28 return;
29 }
30 fits::KeywordVector reformatted;
31 reformatted.reserve(in.size());
32
33 std::transform(
34 in.begin(), in.end(), std::back_inserter(reformatted), [&](fits::KeywordVariant const& kw) {
35 return fmt.Format(kw);
36 });
37
38 fits::UpdateKeywords(out, reformatted);
39}
40
42 fits::KeywordVector const& keywords,
43 fits::KeywordFormatter const& fmt) {
44 UpdateKeywords(ctx.keywords, keywords, fmt);
45}
46
47void AddDpParts(DaqContext& ctx, std::vector<DpPart> const& parts) {
48 using std::copy;
49 copy(parts.begin(), parts.end(), std::back_inserter(ctx.results));
50}
51
52} // namespace daq
Formats keyword against e.g.
Definition: keyword.hpp:551
Contains declaration of daq::Context.
std::vector< KeywordVariant > KeywordVector
Vector of keywords.
Definition: keyword.hpp:423
std::variant< ValueKeyword, EsoKeyword, LiteralKeyword > KeywordVariant
The different variants of keywords that are supported.
Definition: keyword.hpp:409
void UpdateKeywords(KeywordVector &to, KeywordVector const &from, ConflictPolicy policy=ConflictPolicy::Replace)
Updates to with keywords from from.
Definition: keyword.cpp:679
void UpdateKeywords(fits::KeywordVector &out, fits::KeywordVector const &in, fits::KeywordFormatter const &fmt)
Updates (adds or replaces) primary HDU keywords.
Definition: daqContext.cpp:24
void AddDpParts(DaqContext &ctx, std::vector< DpPart > const &parts)
Definition: daqContext.cpp:47
bool operator==(DaqContext const &lhs, DaqContext const &rhs) noexcept
Definition: daqContext.cpp:12
Structure carrying context needed to start a Data Acquisition and construct a Data Product Specificat...
Definition: daqContext.hpp:42
DpParts results
Results from Data Acquisition (FITS files and keywords).
Definition: daqContext.hpp:100
std::vector< daq::fits::KeywordVariant > keywords
Keyword list provided by OCM to Data Product.
Definition: daqContext.hpp:85