6#ifndef DAQ_DPM_MERGE_MERGE_HPP
7#define DAQ_DPM_MERGE_MERGE_HPP
10#include <log4cplus/logger.h>
31 virtual void PostAlert(std::string
const&
id, std::string
const& message) = 0;
54 virtual void SortKeywords(std::vector<fits::LiteralKeyword>& keywords) = 0;
83 std::string
const& format,
84 fits::KeywordVector::iterator begin,
85 fits::KeywordVector::iterator end) = 0;
97 std::vector<SourceTypes>
const& sources,
124 std::vector<SourceTypes>
const& sources,
Interface to a keyword selector.
virtual std::function< bool(fits::KeywordVariant const &)> MakePatternsFilter(std::vector< std::string > const &patterns)=0
Creates a keyword pattern selector.
virtual void SortKeywords(std::vector< fits::LiteralKeyword > &keywords)=0
Sort keywords.
Interface to reporter (implementations exist for JSON or human readable)
virtual void PostAlert(std::string const &id, std::string const &message)=0
Post event.
Represents the literal 80-character FITS keyword record.
KeywordFormatter & keyword_formatter
log4cplus::Logger const & logger
void CheckUnmergedPrimaryHduData(log4cplus::Logger const &logger, StatusReporter &status_reporter, FitsFileSource const &source)
Check for data in primary HDU which would not be merged and produce alert.
KeywordSorter & keyword_sorter
void Merge(Operations ops, Params const ¶ms, TargetSource &target, std::vector< SourceTypes > const &sources, bool dry_run)
Merge sources into the target target.
StatusReporter & status_reporter
void MergePrimaryHduKeywords(Operations ops, Params const ¶ms, TargetSource &target, std::vector< SourceTypes > const &sources, bool dry_run)
Base class of merge events.
std::variant< ValueKeyword, EsoKeyword, LiteralKeyword > KeywordVariant
The different variants of keywords that are supported.