9 #ifdef epicsExportSharedSymbols 10 # define ntenumEpicsExportSharedSymbols 11 # undef epicsExportSharedSymbols 14 #ifdef ntenumEpicsExportSharedSymbols 15 # define epicsExportSharedSymbols 16 # undef ntenumEpicsExportSharedSymbols 23 namespace epics {
namespace nt {
26 typedef std::tr1::shared_ptr<NTEnum>
NTEnumPtr;
38 public std::tr1::enable_shared_from_this<NTEnumBuilder>
47 shared_pointer addDescriptor();
53 shared_pointer addAlarm();
59 shared_pointer addTimeStamp();
66 epics::pvData::StructureConstPtr createStructure();
73 epics::pvData::PVStructurePtr createPVStructure();
88 shared_pointer add(std::string
const & name, epics::pvData::FieldConstPtr
const & field);
100 epics::pvData::StringArray extraFieldNames;
101 epics::pvData::FieldConstPtrArray extraFields;
103 friend class ::epics::nt::NTEnum;
120 POINTER_DEFINITIONS(
NTEnum);
122 static const std::string
URI;
133 static shared_pointer wrap(epics::pvData::PVStructurePtr
const & pvStructure);
144 static shared_pointer wrapUnsafe(epics::pvData::PVStructurePtr
const & pvStructure);
157 static bool is_a(epics::pvData::StructureConstPtr
const & structure);
170 static bool is_a(epics::pvData::PVStructurePtr
const & pvStructure);
181 static bool isCompatible(
182 epics::pvData::StructureConstPtr
const &structure);
193 static bool isCompatible(
194 epics::pvData::PVStructurePtr
const &pvStructure);
211 static NTEnumBuilderPtr createBuilder();
224 bool attachTimeStamp(epics::pvData::PVTimeStamp &pvTimeStamp)
const;
232 bool attachAlarm(epics::pvData::PVAlarm &pvAlarm)
const;
238 epics::pvData::PVStructurePtr getPVStructure()
const;
244 epics::pvData::PVStringPtr getDescriptor()
const;
250 epics::pvData::PVStructurePtr getTimeStamp()
const;
256 epics::pvData::PVStructurePtr getAlarm()
const;
262 epics::pvData::PVStructurePtr getValue()
const;
265 NTEnum(epics::pvData::PVStructurePtr
const & pvStructure);
266 epics::pvData::PVStructurePtr pvNTEnum;
267 epics::pvData::PVStructurePtr pvValue;
std::tr1::shared_ptr< detail::NTEnumBuilder > NTEnumBuilderPtr
Convenience Class for NTEnum.
Interface for in-line creating of NTEnum.
static const std::string URI
std::tr1::shared_ptr< NTEnum > NTEnumPtr