OPAL (Object Oriented Parallel Accelerator Library) 2022.1
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
28class PlaceRep;
29class RangeRep;
30class 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
41namespace 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