OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
OpalTrimCoil.h
Go to the documentation of this file.
1 #ifndef OPAL_TRIM_COIL_H
2 #define OPAL_TRIM_COIL_H
3 
4 #include <string>
5 #include <memory>
7 
8 class Attribute;
9 class TrimCoil;
10 
11 // Class OpalTrimCoil
12 // ------------------------------------------------------------------------
14 // A TRIMCOIL definition is used to define a trim coil which can be applied
15 // to a Cyclotron
16 
17 class OpalTrimCoil: public Definition {
18 
19 public:
21  OpalTrimCoil();
22 
23  virtual ~OpalTrimCoil();
24 
26  // Can replace only by another OpalTrimCoil
27  virtual bool canReplaceBy(Object *object);
28 
30  virtual OpalTrimCoil *clone(const std::string &name);
31 
33  virtual void execute();
34 
36  static OpalTrimCoil *find(const std::string &name);
37 
39  virtual void update();
40 
42  using Definition::print;
43  Inform& print(Inform& os) const;
44 
46  void initOpalTrimCoil();
47 
49  std::unique_ptr<TrimCoil> trimcoil_m;
50 
51 private:
52 
54  OpalTrimCoil (const OpalTrimCoil &) = delete;
55  void operator=(const OpalTrimCoil &) = delete;
58  OpalTrimCoil(const std::string &name, OpalTrimCoil *parent);
59 
61  void printPolynom(Inform& os, const Attribute& attr) const;
62 };
63 
64 inline Inform &operator<<(Inform &os, const OpalTrimCoil &b) {
65  return b.print(os);
66 }
67 
68 #endif // OPAL_TRIM_COIL_H
virtual void print(std::ostream &) const
Print the object.
Definition: Object.cpp:164
std::ostream & operator<<(std::ostream &os, const Attribute &attr)
Definition: Attribute.cpp:167
The base class for all OPAL definitions.
Definition: Definition.h:30
void printPolynom(Inform &os, const Attribute &attr) const
Helper method for printing.
The TRIMCOIL definition.
Definition: OpalTrimCoil.h:17
Inform & print(Inform &os) const
virtual bool canReplaceBy(Object *object)
Test if replacement is allowed.
virtual void update()
Update the OpalTrimCoil data.
A representation of an Object attribute.
Definition: Attribute.h:55
virtual void execute()
Check the OpalTrimCoil data.
std::unique_ptr< TrimCoil > trimcoil_m
Actual implementation.
Definition: OpalTrimCoil.h:49
void operator=(const OpalTrimCoil &)=delete
Abstract TrimCoil class.
Definition: TrimCoil.h:8
OpalTrimCoil()
Exemplar constructor.
virtual OpalTrimCoil * clone(const std::string &name)
Make clone.
The base class for all OPAL objects.
Definition: Object.h:48
const std::string name
void initOpalTrimCoil()
Initialise implementation.
virtual ~OpalTrimCoil()
static OpalTrimCoil * find(const std::string &name)
Find named trim coil.
Definition: Inform.h:41