PVData C++  8.0.2
standardPVField.h
1 /* standardPVField.h */
2 /*
3  * Copyright information and license terms for this software can be
4  * found in the file LICENSE that is included with the distribution
5  */
6 /**
7  * @author mrk
8  */
9 #ifndef STANDARDPVFIELD_H
10 #define STANDARDPVFIELD_H
11 
12 #include <string>
13 #include <stdexcept>
14 
15 #include <pv/pvIntrospect.h>
16 #include <pv/pvData.h>
17 #include <pv/standardField.h>
18 
19 #include <shareLib.h>
20 
21 namespace epics { namespace pvData {
22 
23 class StandardPVField;
24 typedef std::tr1::shared_ptr<StandardPVField> StandardPVFieldPtr;
25 
26 /**
27  * @brief StandardPVField is a class or creating standard data fields.
28  *
29  * Like class StandardField it has two forms of the methods which create a fields:
30  * one without properties and one with properties.
31  * The properties are some combination of alarm, timeStamp, control, display, and valueAlarm.
32  * Just like StandardField there are methods to create the standard properties.
33  *
34  * StandardPVField is a singleton class. The class is accessed via the statement: {@code
35  StandardPVField *standardPVField = getStandardPVField();
36  * }
37  */
38 class epicsShareClass StandardPVField {
40 public:
41  /**
42  * getStandardPVField returns the singleton.
43  * @return Shared pointer to StandardPVField.
44  */
46  ~StandardPVField();
47  /**
48  * Create a structure that has a scalar value field.
49  * @param type The type.
50  * @param properties A comma separated list of properties.
51  * This is some combination of "alarm,timeStamp,display,control,valueAlarm".
52  * @return The const shared pointer to the structure.
53  */
55  /**
56  * Create a structure that has a scalar array value field.
57  * @param elementType The element scalar type.
58  * @param properties A comma separated list of properties.
59  * This is some combination of "alarm,timeStamp,display,control,valueAlarm".
60  * @return The const shared pointer to the structure.
61  */
63  /**
64  * Create a structure that has a structure array value field.
65  * @param structure The Structure introspection object for elements of the value field.
66  * @param properties A comma separated list of properties.
67  * This is some combination of "alarm,timeStamp,display,control,valueAlarm".
68  * @return The const shared pointer to the structure.
69  */
71  /**
72  * Create a structure that has a union array value field.
73  * @param punion The Union introspection object for elements of the value field.
74  * @param properties A comma separated list of properties.
75  * This is some combination of "alarm,timeStamp,display,control,valueAlarm".
76  * @return The const shared pointer to the structure.
77  */
79  /**
80  * Create a structure that has an enumerated structure value field.
81  * The id for the structure is "enum_t".
82  * @param choices This is a StringArray of choices.
83  * @return The const shared pointer to the structure.
84  */
86  /**
87  * Create a structure that has an enumerated structure value field.
88  * The id for the structure is "epics:nt/NTEnum:1.0".
89  * @param choices This is a StringArray of choices.
90  * @param properties A comma separated list of properties.
91  * @return The const shared pointer to the structure.
92  */
94 private:
100 };
101 
102 epicsShareExtern StandardPVFieldPtr getStandardPVField();
103 
104 }}
105 #endif /* STANDARDPVFIELD_H */
StandardPVField is a class or creating standard data fields.
#define EPICS_NOT_COPYABLE(CLASS)
Disable implicit copyable.
epicsShareFunc bool yajl_parse_helper(std::istream &src, yajl_handle handle)