LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
fhicl::detail::KeyAssembler Class Reference

#include "KeyAssembler.h"

Inheritance diagram for fhicl::detail::KeyAssembler:
fhicl::ParameterSetWalker

Public Types

using key_t = std::string
 
using any_t = boost::any
 

Public Member Functions

std::vector< key_t > const & result ()
 
void do_enter_table (key_t const &k, any_t const &a)
 
void do_enter_sequence (key_t const &k, any_t const &a)
 
void do_atom (key_t const &k, any_t const &a)
 
void do_before_action (key_t const &k, any_t const &a, ParameterSet const *ps)
 
void do_after_action ()
 
void do_exit_table (key_t const &k, any_t const &a)
 
void do_exit_sequence (key_t const &k, any_t const &a)
 

Private Member Functions

void enter_table (key_t const &, any_t const &) override
 
void exit_table (key_t const &, any_t const &) override
 
void enter_sequence (key_t const &, any_t const &) override
 
void atom (key_t const &, any_t const &) override
 
std::string full_key_ (name_t const &) const
 

Private Attributes

std::vector< key_tkeys_ {}
 
std::vector< name_tname_stack_ {}
 

Detailed Description

Definition at line 74 of file KeyAssembler.h.

Member Typedef Documentation

using fhicl::ParameterSetWalker::any_t = boost::any
inherited

Definition at line 80 of file ParameterSetWalker.h.

using fhicl::ParameterSetWalker::key_t = std::string
inherited

Definition at line 79 of file ParameterSetWalker.h.

Member Function Documentation

void KeyAssembler::atom ( key_t const &  key,
any_t const &   
)
overrideprivatevirtual

Implements fhicl::ParameterSetWalker.

Definition at line 38 of file KeyAssembler.cc.

References full_key_(), and keys_.

Referenced by result().

39 {
40  keys_.emplace_back(full_key_(key));
41 }
std::string full_key_(name_t const &) const
Definition: KeyAssembler.cc:10
std::vector< key_t > keys_
Definition: KeyAssembler.h:91
void fhicl::ParameterSetWalker::do_after_action ( )
inlineinherited

Definition at line 104 of file ParameterSetWalker.h.

References fhicl::ParameterSetWalker::after_action().

Referenced by fhicl::ParameterSet::walk().

105  {
106  after_action();
107  }
void fhicl::ParameterSetWalker::do_atom ( key_t const &  k,
any_t const &  a 
)
inlineinherited

Definition at line 93 of file ParameterSetWalker.h.

References fhicl::ParameterSetWalker::atom().

Referenced by fhicl::ParameterSet::walk().

94  {
95  atom(k, a);
96  }
virtual void atom(key_t const &, any_t const &)=0
void fhicl::ParameterSetWalker::do_before_action ( key_t const &  k,
any_t const &  a,
ParameterSet const *  ps 
)
inlineinherited

Definition at line 99 of file ParameterSetWalker.h.

References fhicl::ParameterSetWalker::before_action().

Referenced by fhicl::ParameterSet::walk().

100  {
101  before_action(k, a, ps);
102  }
virtual void before_action(key_t const &, any_t const &, ParameterSet const *)
void fhicl::ParameterSetWalker::do_enter_sequence ( key_t const &  k,
any_t const &  a 
)
inlineinherited

Definition at line 88 of file ParameterSetWalker.h.

References fhicl::ParameterSetWalker::enter_sequence().

Referenced by fhicl::ParameterSet::walk().

89  {
90  enter_sequence(k, a);
91  }
virtual void enter_sequence(key_t const &, any_t const &)=0
void fhicl::ParameterSetWalker::do_enter_table ( key_t const &  k,
any_t const &  a 
)
inlineinherited

Definition at line 83 of file ParameterSetWalker.h.

References fhicl::ParameterSetWalker::enter_table().

Referenced by fhicl::ParameterSet::walk().

84  {
85  enter_table(k, a);
86  }
virtual void enter_table(key_t const &, any_t const &)=0
void fhicl::ParameterSetWalker::do_exit_sequence ( key_t const &  k,
any_t const &  a 
)
inlineinherited
void fhicl::ParameterSetWalker::do_exit_table ( key_t const &  k,
any_t const &  a 
)
inlineinherited

Definition at line 110 of file ParameterSetWalker.h.

References fhicl::ParameterSetWalker::exit_table().

Referenced by fhicl::ParameterSet::walk().

111  {
112  exit_table(k, a);
113  }
virtual void exit_table(key_t const &, any_t const &)
void KeyAssembler::enter_sequence ( key_t const &  key,
any_t const &   
)
overrideprivatevirtual

Implements fhicl::ParameterSetWalker.

Definition at line 32 of file KeyAssembler.cc.

References full_key_(), and keys_.

Referenced by result().

33 {
34  keys_.emplace_back(full_key_(key));
35 }
std::string full_key_(name_t const &) const
Definition: KeyAssembler.cc:10
std::vector< key_t > keys_
Definition: KeyAssembler.h:91
void KeyAssembler::enter_table ( key_t const &  key,
any_t const &   
)
overrideprivatevirtual

Implements fhicl::ParameterSetWalker.

Definition at line 19 of file KeyAssembler.cc.

References full_key_(), keys_, and name_stack_.

Referenced by result().

20 {
21  keys_.emplace_back(full_key_(key));
22  name_stack_.emplace_back(key);
23 }
std::vector< name_t > name_stack_
Definition: KeyAssembler.h:92
std::string full_key_(name_t const &) const
Definition: KeyAssembler.cc:10
std::vector< key_t > keys_
Definition: KeyAssembler.h:91
void KeyAssembler::exit_table ( key_t const &  ,
any_t const &   
)
overrideprivatevirtual

Reimplemented from fhicl::ParameterSetWalker.

Definition at line 26 of file KeyAssembler.cc.

References name_stack_.

Referenced by result().

27 {
28  name_stack_.pop_back();
29 }
std::vector< name_t > name_stack_
Definition: KeyAssembler.h:92
std::string KeyAssembler::full_key_ ( name_t const &  name) const
private

Definition at line 10 of file KeyAssembler.cc.

References name_stack_.

Referenced by atom(), enter_sequence(), enter_table(), and result().

11 {
12  std::ostringstream os;
13  cet::copy_all(name_stack_, std::ostream_iterator<std::string>{os, "."});
14  os << name;
15  return os.str();
16 }
std::vector< name_t > name_stack_
Definition: KeyAssembler.h:92
std::vector<key_t> const& fhicl::detail::KeyAssembler::result ( void  )
inline

Definition at line 77 of file KeyAssembler.h.

References atom(), enter_sequence(), enter_table(), exit_table(), full_key_(), and keys_.

Referenced by fhicl::ParameterSet::get_all_keys().

78  {
79  return keys_;
80  }
std::vector< key_t > keys_
Definition: KeyAssembler.h:91

Member Data Documentation

std::vector<key_t> fhicl::detail::KeyAssembler::keys_ {}
private

Definition at line 91 of file KeyAssembler.h.

Referenced by atom(), enter_sequence(), enter_table(), and result().

std::vector<name_t> fhicl::detail::KeyAssembler::name_stack_ {}
private

Definition at line 92 of file KeyAssembler.h.

Referenced by enter_table(), exit_table(), and full_key_().


The documentation for this class was generated from the following files: