LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ParameterBase.cc
Go to the documentation of this file.
2 
3 namespace fhicl::detail {
4 
5  std::string const&
7  {
8  return mdata_.key();
9  }
10  std::string const&
12  {
13  return mdata_.name();
14  }
15  std::string const&
17  {
18  return mdata_.comment();
19  }
20  bool
22  {
23  return mdata_.has_default();
24  }
25  bool
27  {
28  return mdata_.is_optional();
29  }
30  bool
32  {
33  return mdata_.is_conditional();
34  }
35  par_type
37  {
38  return mdata_.type();
39  }
40  bool
42  {
43  return maybeUse_();
44  }
45 
47  Comment const& comment,
48  par_style const vt,
49  par_type const type,
50  std::function<bool()> maybeUse)
51  : mdata_{name, comment, vt, type}, maybeUse_{std::move(maybeUse)}
52  {}
53 
55 
56  // Modifiers
57  void
59  {
60  do_set_value(ps);
61  }
62  bool
64  {
65  return do_preset_value(ps);
66  }
67  void
69  {
71  }
72 
73  bool
75  {
76  return false;
77  }
78 
79 } // namespace fhicl::detail
void set_value(fhicl::ParameterSet const &ps)
bool preset_value(fhicl::ParameterSet const &ps)
ParameterBase(Name const &name, Comment const &comment, par_style const vt, par_type const type, std::function< bool()> maybeUse=AlwaysUse())
std::string const & name() const
virtual void do_set_value(fhicl::ParameterSet const &)=0
ParameterMetadata mdata_
Definition: ParameterBase.h:63
par_type parameter_type() const
std::string const & name() const
std::string const & key() const
Definition: ParameterBase.cc:6
std::function< bool()> maybeUse_
Definition: ParameterBase.h:64
std::string const & comment() const
std::string const & key() const
std::string const & comment() const
virtual bool do_preset_value(fhicl::ParameterSet const &)
void set_par_style(par_style const vt)
void set_par_style(par_style const vt)