OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Attributes.h
Go to the documentation of this file.
1 #ifndef OPAL_Attributes_HH
2 #define OPAL_Attributes_HH
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: Attributes.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.1.1.1 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Namespace Attributes
13 //
14 // ------------------------------------------------------------------------
15 //
16 // $Date: 2000/03/27 09:33:37 $
17 // $Author: Andreas Adelmann $
18 //
19 // ------------------------------------------------------------------------
20 
22 #include "Parser/Token.h"
23 #include <list>
24 #include <string>
25 #include <vector>
26 #include <initializer_list>
27 
28 class PlaceRep;
29 class RangeRep;
30 class TableRowRep;
31 
32 // Namespace Attributes.
33 // ------------------------------------------------------------------------
35 // their values.
36 // Each exemplar constructor must use these functions to fill in the
37 // attribute handlers for all command attributes.
38 // This namespace is part of the interface to the class Attribute,
39 // used to store object attributes.
40 
41 namespace Attributes {
42 
44  // Initial value undefined.
45  extern Attribute makeBool(const std::string &name, const std::string &help);
46 
48  // Initial value defined.
49  extern Attribute
50  makeBool(const std::string &name, const std::string &help, bool initial);
51 
53  // Evaluate any expression and return value.
54  // If the expression is non-deferred, the value is cached.
55  // Re-evaluation takes place only if a new definition has been read.
56  bool getBool(const Attribute &);
57 
59  extern void setBool(Attribute &, bool);
60 
61 
63  // Initial value is empty array.
64  extern Attribute makeBoolArray(const std::string &name, const std::string &help);
65 
67  extern std::vector<bool> getBoolArray(const Attribute &);
68 
70  extern void setBoolArray(Attribute &, const std::vector<bool> &);
71 
72 
74  // Initial value is "#S".
75  extern Attribute makePlace(const std::string &name, const std::string &help);
76 
78  extern PlaceRep getPlace(const Attribute &);
79 
81  extern void setPlace(Attribute &, const PlaceRep &);
82 
83 
85  // Initial value is "FULL".
86  extern Attribute makeRange(const std::string &name, const std::string &help);
87 
89  extern RangeRep getRange(const Attribute &);
90 
92  extern void setRange(Attribute &, const RangeRep &);
93 
94 
96  // Initial value is undefined.
97  extern Attribute
98  makeReal(const std::string &name, const std::string &help);
99 
101  // Initial value is defined.
102  extern Attribute
103  makeReal(const std::string &name, const std::string &help, double initial);
104 
106  extern double getReal(const Attribute &attr);
107 
109  extern void setReal(Attribute &attr, double val);
110 
111 
113  // Initial value is empty array.
114  extern Attribute makeRealArray(const std::string &name, const std::string &help);
115 
117  extern std::vector<double> getRealArray(const Attribute &);
118 
120  extern void setRealArray(Attribute &, const std::vector<double> &);
121 
122 
124  // Initial value is undefined.
125  extern Attribute makeReference(const std::string &name, const std::string &help);
126 
127 
129  // Initial value undefined.
130  extern Attribute makeString(const std::string &name, const std::string &help);
131 
133  // Initial value is defined.
134  extern Attribute
135  makeString(const std::string &name, const std::string &help, const std::string &initial);
136 
138  extern std::string getString(const Attribute &attr);
139 
141  extern void setString(Attribute &attr, const std::string &val);
142 
144  // Initial value undefined.
145  extern Attribute makePredefinedString(const std::string &name,
146  const std::string &help,
147  const std::initializer_list<std::string>& predefinedStrings);
148 
150  // Initial value is defined.
151  extern Attribute
152  makePredefinedString(const std::string &name,
153  const std::string &help,
154  const std::initializer_list<std::string>& predefinedStrings,
155  const std::string &initial);
156 
158  extern void setPredefinedString(Attribute &attr, const std::string &val);
159 
161  // Initial value undefined.
162  extern Attribute makeUpperCaseString(const std::string &name, const std::string &help);
163 
165  // Initial value is defined.
166  extern Attribute
167  makeUpperCaseString(const std::string &name, const std::string &help, const std::string &initial);
168 
170  extern void setUpperCaseString(Attribute &attr, const std::string &val);
171 
173  // Initial value is empty array.
174  extern Attribute makeStringArray(const std::string &name, const std::string &help);
175 
177  extern std::vector<std::string> getStringArray(const Attribute &);
178 
180  extern void setStringArray(Attribute &, const std::vector<std::string> &);
181 
183  // Initial value is empty array.
184  extern Attribute makeUpperCaseStringArray(const std::string &name, const std::string &help);
185 
187  extern void setUpperCaseStringArray(Attribute &, const std::vector<std::string> &);
188 
190  // Initial value is undefined.
191  extern Attribute makeTableRow(const std::string &name, const std::string &help);
192 
194  extern TableRowRep getTableRow(const Attribute &);
195 
197  extern void setTableRow(Attribute &, const TableRowRep &);
198 
199 
201  // Initial value is empty list.
202  extern Attribute makeTokenList(const std::string &name, const std::string &help);
203 
205  extern std::list<Token> getTokenList(const Attribute &attr);
206 
208  extern void setTokenList(Attribute &attr, const std::list<Token> &);
209 
210 
212  // Initial value is empty array.
213  extern Attribute makeTokenListArray(const std::string &name, const std::string &help);
214 
216  extern std::vector<std::list<Token> >
217  getTokenListArray(const Attribute &attr);
218 
220  extern void
221  setTokenListArray(Attribute &attr, const std::vector<std::list<Token> > &);
222 
223 };
224 
225 #endif // OPAL_Attributes_HH
const std::string name
A collection of routines to construct object Attributes and retrieve.
Definition: Attributes.cpp:85
Attribute makePlace(const std::string &name, const std::string &help)
Create a place attribute.
Definition: Attributes.cpp:172
Attribute makeBool(const std::string &name, const std::string &help)
Make logical attribute.
Definition: Attributes.cpp:90
double getReal(const Attribute &attr)
Return real value.
Definition: Attributes.cpp:252
void setBoolArray(Attribute &attr, const std::vector< bool > &value)
Set logical array value.
Definition: Attributes.cpp:157
void setUpperCaseStringArray(Attribute &attr, const std::vector< std::string > &value)
Set upper case string array value.
Definition: Attributes.cpp:540
Attribute makeUpperCaseStringArray(const std::string &name, const std::string &help)
Make uppercase string array attribute.
Definition: Attributes.cpp:536
void setRealArray(Attribute &attr, const std::vector< double > &value)
Set array value.
Definition: Attributes.cpp:309
void setBool(Attribute &attr, bool val)
Set logical value.
Definition: Attributes.cpp:119
std::list< Token > getTokenList(const Attribute &attr)
Return token list value.
Definition: Attributes.cpp:597
void setTableRow(Attribute &attr, const TableRowRep &rep)
Set table row value.
Definition: Attributes.cpp:578
Attribute makeUpperCaseString(const std::string &name, const std::string &help)
Make uppercase string attribute.
Definition: Attributes.cpp:445
Attribute makeStringArray(const std::string &name, const std::string &help)
Create a string array attribute.
Definition: Attributes.cpp:473
void setUpperCaseString(Attribute &attr, const std::string &val)
Set uppercase string value.
Definition: Attributes.cpp:456
Attribute makePredefinedString(const std::string &name, const std::string &help, const std::initializer_list< std::string > &predefinedStrings)
Make predefined string attribute.
Definition: Attributes.cpp:409
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
Definition: Attributes.cpp:240
Attribute makeTableRow(const std::string &name, const std::string &help)
Create a table row attribute.
Definition: Attributes.cpp:557
Attribute makeReference(const std::string &name, const std::string &help)
Create a reference attribute.
Definition: Attributes.cpp:324
void setRange(Attribute &attr, const RangeRep &rep)
Set range value.
Definition: Attributes.cpp:227
void setString(Attribute &attr, const std::string &val)
Set string value.
Definition: Attributes.cpp:391
Attribute makeRange(const std::string &name, const std::string &help)
Create a range attribute.
Definition: Attributes.cpp:206
Attribute makeTokenListArray(const std::string &name, const std::string &help)
Make token list attribute.
Definition: Attributes.cpp:625
std::vector< bool > getBoolArray(const Attribute &attr)
Get logical array value.
Definition: Attributes.cpp:141
bool getBool(const Attribute &attr)
Return logical value.
Definition: Attributes.cpp:100
TableRowRep getTableRow(const Attribute &attr)
Get table row value.
Definition: Attributes.cpp:562
Attribute makeTokenList(const std::string &name, const std::string &help)
Make token list attribute.
Definition: Attributes.cpp:592
void setTokenListArray(Attribute &attr, const std::vector< std::list< Token > > &value)
Set token list array value.
Definition: Attributes.cpp:646
void setReal(Attribute &attr, double val)
Set real value.
Definition: Attributes.cpp:271
Attribute makeRealArray(const std::string &name, const std::string &help)
Create real array attribute.
Definition: Attributes.cpp:289
void setStringArray(Attribute &attr, const std::vector< std::string > &value)
Set string array value.
Definition: Attributes.cpp:524
PlaceRep getPlace(const Attribute &attr)
Get place value.
Definition: Attributes.cpp:178
std::vector< double > getRealArray(const Attribute &attr)
Get array value.
Definition: Attributes.cpp:294
std::vector< std::string > getStringArray(const Attribute &attr)
Get string array value.
Definition: Attributes.cpp:478
void setPredefinedString(Attribute &attr, const std::string &val)
Set predefined string value.
Definition: Attributes.cpp:426
std::string getString(const Attribute &attr)
Get string value.
Definition: Attributes.cpp:343
Attribute makeBoolArray(const std::string &name, const std::string &help)
Create a logical array attribute.
Definition: Attributes.cpp:136
std::vector< std::list< Token > > getTokenListArray(const Attribute &attr)
Return token list array value.
Definition: Attributes.cpp:630
void setTokenList(Attribute &attr, const std::list< Token > &val)
Set token list value.
Definition: Attributes.cpp:612
Attribute makeString(const std::string &name, const std::string &help)
Make string attribute.
Definition: Attributes.cpp:332
RangeRep getRange(const Attribute &attr)
Get range value.
Definition: Attributes.cpp:212
void setPlace(Attribute &attr, const PlaceRep &rep)
Set place value.
Definition: Attributes.cpp:193
A representation of an Object attribute.
Definition: Attribute.h:52
Representation of a place within a beam line or sequence.
Definition: PlaceRep.h:41
Representation of a range within a beam line or sequence.
Definition: RangeRep.h:34
Representation of a table row reference.
Definition: TableRowRep.h:36