9 #ifdef epicsExportSharedSymbols 10 # define nthistogramEpicsExportSharedSymbols 11 # undef epicsExportSharedSymbols 14 #ifdef nthistogramEpicsExportSharedSymbols 15 # define epicsExportSharedSymbols 16 # undef nthistogramEpicsExportSharedSymbols 24 namespace epics {
namespace nt {
39 public std::tr1::enable_shared_from_this<NTHistogramBuilder>
49 shared_pointer value(epics::pvData::ScalarType scalarType);
55 shared_pointer addDescriptor();
61 shared_pointer addAlarm();
67 shared_pointer addTimeStamp();
74 epics::pvData::StructureConstPtr createStructure();
81 epics::pvData::PVStructurePtr createPVStructure();
88 NTHistogramPtr create();
96 shared_pointer add(std::string
const & name, epics::pvData::FieldConstPtr
const & field);
104 epics::pvData::ScalarType valueType;
111 epics::pvData::StringArray extraFieldNames;
112 epics::pvData::FieldConstPtrArray extraFields;
114 friend class ::epics::nt::NTHistogram;
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);
183 static bool is_a(epics::pvData::PVStructurePtr
const & pvStructure);
194 static bool isCompatible(
195 epics::pvData::StructureConstPtr
const &structure);
206 static bool isCompatible(
207 epics::pvData::PVStructurePtr
const &pvStructure);
224 static NTHistogramBuilderPtr createBuilder();
237 bool attachTimeStamp(epics::pvData::PVTimeStamp &pvTimeStamp)
const;
245 bool attachAlarm(epics::pvData::PVAlarm &pvAlarm)
const;
251 epics::pvData::PVStructurePtr getPVStructure()
const;
257 epics::pvData::PVStringPtr getDescriptor()
const;
263 epics::pvData::PVStructurePtr getTimeStamp()
const;
269 epics::pvData::PVStructurePtr getAlarm()
const;
275 epics::pvData::PVDoubleArrayPtr getRanges()
const;
281 epics::pvData::PVScalarArrayPtr getValue()
const;
289 template<
typename PVT>
292 return std::tr1::dynamic_pointer_cast<PVT>(pvValue);
297 NTHistogram(epics::pvData::PVStructurePtr
const & pvStructure);
298 epics::pvData::PVStructurePtr pvNTHistogram;
299 epics::pvData::PVScalarArrayPtr pvValue;
static const std::string URI
std::tr1::shared_ptr< detail::NTHistogramBuilder > NTHistogramBuilderPtr
Convenience Class for NTHistogram.
std::tr1::shared_ptr< PVT > getValue() const
std::tr1::shared_ptr< NTHistogram > NTHistogramPtr
Interface for in-line creating of NTHistogram.