Program Listing for File standardField.h¶
↰ Return to documentation for file (src/pv/standardField.h)
/* standardField.h */
/*
* Copyright information and license terms for this software can be
* found in the file LICENSE that is included with the distribution
*/
#ifndef STANDARDFIELD_H
#define STANDARDFIELD_H
#include <string>
#include <stdexcept>
#include <pv/pvIntrospect.h>
#include <shareLib.h>
namespace epics { namespace pvData {
class StandardField;
typedef std::tr1::shared_ptr<StandardField> StandardFieldPtr;
class epicsShareClass StandardField {
static void once(void*);
public:
static const StandardFieldPtr& getStandardField();
~StandardField();
StructureConstPtr scalar(ScalarType type,std::string const & properties);
StructureConstPtr regUnion(
UnionConstPtr const & punion,
std::string const & properties);
StructureConstPtr variantUnion(std::string const & properties);
StructureConstPtr scalarArray(ScalarType elementType, std::string const & properties);
StructureConstPtr structureArray(
StructureConstPtr const & structure,
std::string const & properties);
StructureConstPtr unionArray(
UnionConstPtr const & punion,
std::string const & properties);
StructureConstPtr enumerated();
StructureConstPtr enumerated(std::string const & properties);
inline const StructureConstPtr& alarm() const { return alarmField; }
inline const StructureConstPtr& timeStamp() const { return timeStampField; }
inline const StructureConstPtr& display() const { return displayField; }
inline const StructureConstPtr& control() const { return controlField; }
inline const StructureConstPtr& booleanAlarm() const { return booleanAlarmField; }
inline const StructureConstPtr& byteAlarm() const { return byteAlarmField; }
inline const StructureConstPtr& ubyteAlarm() const { return ubyteAlarmField; }
inline const StructureConstPtr& shortAlarm() const { return shortAlarmField; }
inline const StructureConstPtr& ushortAlarm() const { return ushortAlarmField; }
inline const StructureConstPtr& intAlarm() const { return intAlarmField; }
inline const StructureConstPtr& uintAlarm() const { return uintAlarmField; }
inline const StructureConstPtr& longAlarm() const { return longAlarmField; }
inline const StructureConstPtr& ulongAlarm() const { return ulongAlarmField; }
inline const StructureConstPtr& floatAlarm() const { return floatAlarmField; }
inline const StructureConstPtr& doubleAlarm() const { return doubleAlarmField; }
inline const StructureConstPtr& enumeratedAlarm() const { return enumeratedAlarmField; }
private:
StandardField();
StructureConstPtr createProperties(
std::string id,FieldConstPtr field,std::string properties);
const FieldCreatePtr fieldCreate;
const std::string notImplemented;
const std::string valueFieldName;
const StructureConstPtr alarmField;
const StructureConstPtr timeStampField;
const StructureConstPtr displayField;
const StructureConstPtr controlField;
const StructureConstPtr booleanAlarmField;
const StructureConstPtr byteAlarmField;
const StructureConstPtr shortAlarmField;
const StructureConstPtr intAlarmField;
const StructureConstPtr longAlarmField;
const StructureConstPtr ubyteAlarmField;
const StructureConstPtr ushortAlarmField;
const StructureConstPtr uintAlarmField;
const StructureConstPtr ulongAlarmField;
const StructureConstPtr floatAlarmField;
const StructureConstPtr doubleAlarmField;
const StructureConstPtr enumeratedAlarmField;
};
FORCE_INLINE const StandardFieldPtr& getStandardField() {
return StandardField::getStandardField();
}
}}
#endif /* STANDARDFIELD_H */