LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ValidateThenSet.h
Go to the documentation of this file.
1 #ifndef fhiclcpp_types_detail_ValidateThenSet_h
2 #define fhiclcpp_types_detail_ValidateThenSet_h
3 
4 #include "cetlib/exempt_ptr.h"
8 
9 #include <set>
10 #include <string>
11 #include <vector>
12 
13 namespace fhicl::detail {
14 
16  : public ParameterWalker<tt::const_flavor::require_non_const> {
17  public:
18  ValidateThenSet(ParameterSet const& pset,
19  std::set<std::string> const& keysToIgnore);
21 
22  void check_keys();
23 
24  private:
25  bool before_action(ParameterBase& p) override;
26  void after_action(ParameterBase& p) override;
27  void enter_sequence(SequenceBase& p) override;
28  void delegated_parameter(DelegateBase&) override;
29 
30  void enter_table(TableBase&) override;
31  void atom(AtomBase&) override;
32 
34  std::set<std::string> ignorableKeys_;
35  std::vector<std::string> userKeys_;
36  std::vector<cet::exempt_ptr<ParameterBase>> missingParameters_;
37  };
38 }
39 
40 #endif /* fhiclcpp_types_detail_ValidateThenSet_h */
41 
42 // Local variables:
43 // mode: c++
44 // End:
void enter_sequence(SequenceBase &p) override
void enter_table(TableBase &) override
std::set< std::string > ignorableKeys_
std::vector< std::string > userKeys_
ParameterSet const & pset_
void delegated_parameter(DelegateBase &) override
ValidateThenSet(ParameterSet const &pset, std::set< std::string > const &keysToIgnore)
std::vector< cet::exempt_ptr< ParameterBase > > missingParameters_
void atom(AtomBase &) override
void after_action(ParameterBase &p) override
bool before_action(ParameterBase &p) override