BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
composedEnergyProcessor.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: composedEnergyProcessor.h,v 1.13 2005/12/23 17:01:43 amoll Exp $
5 //
6 
7 #ifndef BALL_ENERGY_COMPOSEDENERGYPROCESSOR
8 #define BALL_ENERGY_COMPOSEDENERGYPROCESSOR
9 
10 #ifndef BALL_COMMON_H
11 # include <BALL/common.h>
12 #endif
13 
14 #ifndef BALL_ENERGY_ENERGYPROCESSOR_H
16 #endif
17 
18 namespace BALL
19 {
20 
24  typedef std::list<EnergyProcessor*> EnergyProcessorList;
25 
35  : public EnergyProcessor
36  {
37 
38  public:
39 
41 
42 
45 
49 
52  ComposedEnergyProcessor(const ComposedEnergyProcessor& composed_energy_proc);
53 
57 
60  virtual ~ComposedEnergyProcessor();
61 
63 
66 
69  const ComposedEnergyProcessor& operator =
70  (const ComposedEnergyProcessor& proc);
71 
75  virtual void clear();
76 
78 
81 
84  virtual bool finish();
85 
87 
90 
93  void addComponent(EnergyProcessor* proc);
94 
97  void removeComponent(EnergyProcessor* proc);
98 
101  Size getNumberOfEnergyProcessors() const;
102 
104 
107 
110  bool operator == (const ComposedEnergyProcessor& proc) const;
111 
113 
114  protected:
115 
117 
118 
119  private:
120 
121  /*_ check the validity of this instance. If one of the processors in
122  * the list is invalid, then this instance of ComposedEnergyProcessor
123  * is invalid
124  */
125  void checkValidity();
126 
127  };
128 } // namespace BALL
129 #endif // BALL_ENERGY_COMPOSEDENERGYPROCESSOR