12 #ifdef epicsExportSharedSymbols 13 # define ntndarrayEpicsExportSharedSymbols 14 # undef epicsExportSharedSymbols 17 #include <pv/pvDisplay.h> 18 #include <pv/pvControl.h> 20 #ifdef ntndarrayEpicsExportSharedSymbols 21 # define epicsExportSharedSymbols 22 # undef ntndarrayEpicsExportSharedSymbols 29 namespace epics {
namespace nt {
44 public std::tr1::enable_shared_from_this<NTNDArrayBuilder>
53 shared_pointer addDescriptor();
59 shared_pointer addAlarm();
65 shared_pointer addTimeStamp();
71 shared_pointer addDisplay();
78 epics::pvData::StructureConstPtr createStructure();
85 epics::pvData::PVStructurePtr createPVStructure();
92 NTNDArrayPtr create();
100 shared_pointer add(std::string
const & name, epics::pvData::FieldConstPtr
const & field);
113 epics::pvData::StringArray extraFieldNames;
114 epics::pvData::FieldConstPtrArray extraFields;
116 friend class ::epics::nt::NTNDArray;
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);
205 static bool isCompatible(
206 epics::pvData::PVStructurePtr
const &pvStructure);
223 static NTNDArrayBuilderPtr createBuilder();
236 bool attachTimeStamp(epics::pvData::PVTimeStamp &pvTimeStamp)
const;
244 bool attachDataTimeStamp(epics::pvData::PVTimeStamp &pvTimeStamp)
const;
252 bool attachAlarm(epics::pvData::PVAlarm &pvAlarm)
const;
258 epics::pvData::PVStructurePtr getPVStructure()
const;
264 epics::pvData::PVUnionPtr getValue()
const;
270 epics::pvData::PVStructurePtr getCodec()
const;
276 epics::pvData::PVLongPtr getCompressedDataSize()
const;
282 epics::pvData::PVLongPtr getUncompressedDataSize()
const;
288 epics::pvData::PVStructureArrayPtr getDimension()
const;
294 epics::pvData::PVIntPtr getUniqueId()
const;
300 epics::pvData::PVStructurePtr getDataTimeStamp()
const;
306 epics::pvData::PVStructureArrayPtr getAttribute()
const;
312 epics::pvData::PVStringPtr getDescriptor()
const;
318 epics::pvData::PVStructurePtr getTimeStamp()
const;
324 epics::pvData::PVStructurePtr getAlarm()
const;
332 bool attachDisplay(epics::pvData::PVDisplay &pvDisplay)
const;
338 epics::pvData::PVStructurePtr getDisplay()
const;
341 NTNDArray(epics::pvData::PVStructurePtr
const & pvStructure);
343 epics::pvData::int64 getExpectedUncompressedSize();
344 epics::pvData::int64 getValueSize();
345 epics::pvData::int64 getValueTypeSize();
347 epics::pvData::PVStructurePtr pvNTNDArray;
std::tr1::shared_ptr< detail::NTNDArrayBuilder > NTNDArrayBuilderPtr
Interface for in-line creating of NTNDArray.
static const std::string URI
std::tr1::shared_ptr< NTNDArray > NTNDArrayPtr
Convenience Class for NTNDArray.