9 #ifdef epicsExportSharedSymbols 10 # define ntnameValueEpicsExportSharedSymbols 11 # undef epicsExportSharedSymbols 14 #include <pv/pvDisplay.h> 15 #include <pv/pvControl.h> 17 #ifdef ntnameValueEpicsExportSharedSymbols 18 # define epicsExportSharedSymbols 19 # undef ntnameValueEpicsExportSharedSymbols 26 namespace epics {
namespace nt {
41 public std::tr1::enable_shared_from_this<NTNameValueBuilder>
51 shared_pointer value(epics::pvData::ScalarType scalarType);
57 shared_pointer addDescriptor();
63 shared_pointer addAlarm();
69 shared_pointer addTimeStamp();
76 epics::pvData::StructureConstPtr createStructure();
83 epics::pvData::PVStructurePtr createPVStructure();
90 NTNameValuePtr create();
98 shared_pointer add(std::string
const & name, epics::pvData::FieldConstPtr
const & field);
106 epics::pvData::ScalarType valueType;
113 epics::pvData::StringArray extraFieldNames;
114 epics::pvData::FieldConstPtrArray extraFields;
116 friend class ::epics::nt::NTNameValue;
133 static const std::string
URI;
146 static shared_pointer wrap(epics::pvData::PVStructurePtr
const & pvStructure);
157 static shared_pointer wrapUnsafe(epics::pvData::PVStructurePtr
const & pvStructure);
170 static bool is_a(epics::pvData::StructureConstPtr
const & structure);
182 static bool is_a(epics::pvData::PVStructurePtr
const & pvStructure);
192 static bool isCompatible(
193 epics::pvData::StructureConstPtr
const &structure);
204 static bool isCompatible(
205 epics::pvData::PVStructurePtr
const &pvStructure);
222 static NTNameValueBuilderPtr createBuilder();
235 bool attachTimeStamp(epics::pvData::PVTimeStamp &pvTimeStamp)
const;
243 bool attachAlarm(epics::pvData::PVAlarm &pvAlarm)
const;
249 epics::pvData::PVStructurePtr getPVStructure()
const;
255 epics::pvData::PVStringPtr getDescriptor()
const;
261 epics::pvData::PVStructurePtr getTimeStamp()
const;
267 epics::pvData::PVStructurePtr getAlarm()
const;
273 epics::pvData::PVStringArrayPtr getName()
const;
279 epics::pvData::PVFieldPtr getValue()
const;
288 template<
typename PVT>
291 epics::pvData::PVFieldPtr pvField = getValue();
293 return std::tr1::dynamic_pointer_cast<PVT>(pvField);
295 return std::tr1::shared_ptr<PVT>();
299 NTNameValue(epics::pvData::PVStructurePtr
const & pvStructure);
300 epics::pvData::PVStructurePtr pvNTNameValue;
Interface for in-line creating of NTNameValue.
std::tr1::shared_ptr< NTNameValue > NTNameValuePtr
static const std::string URI
std::tr1::shared_ptr< detail::NTNameValueBuilder > NTNameValueBuilderPtr
std::tr1::shared_ptr< PVT > getValue() const
Convenience Class for NTNameValue.