8 #ifndef UFO_FILTERS_PERFORMACTION_H_
9 #define UFO_FILTERS_PERFORMACTION_H_
16 #include "oops/util/ObjectCounter.h"
17 #include "oops/util/parameters/Parameters.h"
18 #include "oops/util/parameters/RequiredParameter.h"
19 #include "oops/util/parameters/RequiredPolymorphicParameter.h"
28 template <
typename DATATYPE>
class ObsDataVector;
45 oops::RequiredPolymorphicParameter<FilterActionParametersBase, FilterActionFactory>
56 return action_.value().actionParameters.value();
61 oops::RequiredParameter<RequiredFilterActionParameters>
action_{
"action",
this};
70 private util::ObjectCounter<PerformAction> {
76 static const std::string
classname() {
return "ufo::PerformAction";}
83 void print(std::ostream &)
const override;
85 std::vector<std::vector<bool>> &)
const override;
Parameters controlling a filter action.
Base class for UFO QC filters.
Parameters shared by all filters derived from FilterBase.
Parameters controlling the action performed on observations flagged by a filter.
oops::RequiredPolymorphicParameter< FilterActionParametersBase, FilterActionFactory > actionParameters