9 #ifdef epicsExportSharedSymbols 10 # define ntunionEpicsExportSharedSymbols 11 # undef epicsExportSharedSymbols 14 #ifdef ntunionEpicsExportSharedSymbols 15 # define epicsExportSharedSymbols 16 # undef ntunionEpicsExportSharedSymbols 23 namespace epics {
namespace nt {
26 typedef std::tr1::shared_ptr<NTUnion>
NTUnionPtr;
38 public std::tr1::enable_shared_from_this<NTUnionBuilder>
49 shared_pointer value(epics::pvData::UnionConstPtr unionType);
55 shared_pointer addDescriptor();
61 shared_pointer addAlarm();
67 shared_pointer addTimeStamp();
74 epics::pvData::StructureConstPtr createStructure();
81 epics::pvData::PVStructurePtr createPVStructure();
95 shared_pointer add(std::string
const & name, epics::pvData::FieldConstPtr
const & field);
100 epics::pvData::UnionConstPtr valueType;
109 epics::pvData::StringArray extraFieldNames;
110 epics::pvData::FieldConstPtrArray extraFields;
112 friend class ::epics::nt::NTUnion;
131 static const std::string
URI;
144 static shared_pointer wrap(epics::pvData::PVStructurePtr
const & pvStructure);
154 static shared_pointer wrapUnsafe(epics::pvData::PVStructurePtr
const & pvStructure);
167 static bool is_a(epics::pvData::StructureConstPtr
const & structure);
180 static bool is_a(epics::pvData::PVStructurePtr
const & pvStructure);
190 static bool isCompatible(
191 epics::pvData::StructureConstPtr
const &structure);
201 static bool isCompatible(
202 epics::pvData::PVStructurePtr
const &pvStructure);
218 static NTUnionBuilderPtr createBuilder();
231 bool attachTimeStamp(epics::pvData::PVTimeStamp &pvTimeStamp)
const;
239 bool attachAlarm(epics::pvData::PVAlarm &pvAlarm)
const;
245 epics::pvData::PVStructurePtr getPVStructure()
const;
251 epics::pvData::PVStringPtr getDescriptor()
const;
257 epics::pvData::PVStructurePtr getTimeStamp()
const;
263 epics::pvData::PVStructurePtr getAlarm()
const;
269 epics::pvData::PVUnionPtr getValue()
const;
272 NTUnion(epics::pvData::PVStructurePtr
const & pvStructure);
273 epics::pvData::PVStructurePtr pvNTUnion;
274 epics::pvData::PVUnionPtr pvValue;
Interface for in-line creating of NTUnion.
Convenience Class for NTUnion.
static const std::string URI
std::tr1::shared_ptr< NTUnion > NTUnionPtr
std::tr1::shared_ptr< detail::NTUnionBuilder > NTUnionBuilderPtr