Bayeux  3.4.1
Core Foundation library for SuperNEMO
i_multi_cut.h
Go to the documentation of this file.
1 
3 /* Author (s) : Francois Mauger <mauger@lpccaen.in2p3.fr>
4  * Creation date: 2013-05-16
5  * Last modified: 2013-05-16
6  *
7  * License:
8  *
9  * Description:
10  * A abstract cut interface that combines many different cuts
11  *
12  * History:
13  *
14  */
15 
16 #ifndef CUTS_I_MULTI_CUT_H
17 #define CUTS_I_MULTI_CUT_H 1
18 
19 // Standard library:
20 #include <string>
21 
22 // Third party:
23 // - Bayeux/datatools:
24 #include <datatools/properties.h>
25 
26 // This project:
27 #include <cuts/i_cut.h>
28 
29 namespace cuts {
30 
32  class i_multi_cut : public cuts::i_cut
33  {
34  public:
35 
37  typedef std::list<cut_handle_type> cuts_col_type;
38 
40  void add_cut(cut_handle_type &);
41 
43  i_multi_cut(datatools::logger::priority a_logging_priority =
45 
47  virtual ~i_multi_cut();
48 
50  virtual void initialize(const datatools::properties &,
53 
55  virtual void export_to_config(datatools::properties & config_,
56  uint32_t flags_ = i_cut::EXPORT_CONFIG_DEFAULT,
57  const std::string & prefix_ = "") const;
58 
60  virtual void reset();
61 
62  protected:
63 
64  void _install_cuts(const datatools::properties & a_configuration,
65  cuts::cut_handle_dict_type & a_cut_dict);
66 
67  virtual void _at_set_user_data();
68 
69  virtual void _at_reset_user_data();
70 
71  void _reset_cuts();
72 
73  protected:
74 
76 
77  };
78 
79 } // end of namespace cuts
80 
81 #endif // CUTS_I_MULTI_CUT_H
82 
83 /*
84 ** Local Variables: --
85 ** mode: c++ --
86 ** c-file-style: "gnu" --
87 ** tab-width: 2 --
88 ** End: --
89 */
The abstract base class for multi cuts.
Definition: i_multi_cut.h:32
priority
Priority levels for logging from most to least critical.
Definition: logger.h:82
Definition: i_cut.h:270
virtual void initialize(const datatools::properties &, datatools::service_manager &, cuts::cut_handle_dict_type &)
Initialization.
A fatal error. The application will most likely terminate. This is the highest priority.
Definition: logger.h:85
The cut abstract base class (interface)
Definition: i_cut.h:62
virtual void reset()
Reset.
Top-level namespace of the Bayeux/cuts module library.
Definition: accept_cut.h:21
virtual ~i_multi_cut()
Destructor.
void _install_cuts(const datatools::properties &a_configuration, cuts::cut_handle_dict_type &a_cut_dict)
std::list< cut_handle_type > cuts_col_type
Collection of cut handles.
Definition: i_multi_cut.h:37
cuts_col_type _cuts
Definition: i_multi_cut.h:75
virtual void _at_reset_user_data()
Hook executed when user data is reset.
virtual void _at_set_user_data()
Hook executed when user data is set.
i_multi_cut(datatools::logger::priority a_logging_priority=datatools::logger::PRIO_FATAL)
Constructor.
virtual void export_to_config(datatools::properties &config_, uint32_t flags_=i_cut::EXPORT_CONFIG_DEFAULT, const std::string &prefix_="") const
Export to a container of properties.
void add_cut(cut_handle_type &)
Add a cut in the list of cut handle.
std::map< std::string, cut_entry_type > cut_handle_dict_type
Alias type of a dictionary of cut entry.
Definition: cut_tools.h:175
Service management class.
Definition: service_manager.h:57
A dictionary of arbitrary properties.
Definition: properties.h:125