6 #ifndef NTNDARRAYATTRIBUTE_H 7 #define NTNDARRAYATTRIBUTE_H 9 #ifdef epicsExportSharedSymbols 10 # define ntndarrayAttributeEpicsExportSharedSymbols 11 # undef epicsExportSharedSymbols 14 #ifdef ntndarrayAttributeEpicsExportSharedSymbols 15 # define epicsExportSharedSymbols 16 # undef ntndarrayAttributeEpicsExportSharedSymbols 23 namespace epics {
namespace nt {
39 public std::tr1::enable_shared_from_this<NTNDArrayAttributeBuilder>
48 shared_pointer addTags();
54 shared_pointer addDescriptor();
60 shared_pointer addAlarm();
66 shared_pointer addTimeStamp();
73 epics::pvData::StructureConstPtr createStructure();
80 epics::pvData::PVStructurePtr createPVStructure();
87 NTNDArrayAttributePtr create();
95 shared_pointer add(std::string
const & name, epics::pvData::FieldConstPtr
const & field);
111 friend class ::epics::nt::NTNDArrayAttribute;
130 static const std::string
URI;
144 static shared_pointer wrap(epics::pvData::PVStructurePtr
const & pvStructure);
156 static shared_pointer wrapUnsafe(epics::pvData::PVStructurePtr
const & pvStructure);
169 static bool is_a(epics::pvData::StructureConstPtr
const & structure);
182 static bool is_a(epics::pvData::PVStructurePtr
const & pvStructure);
195 static bool isCompatible(
196 epics::pvData::StructureConstPtr
const &structure);
209 static bool isCompatible(
210 epics::pvData::PVStructurePtr
const &pvStructure);
227 static NTNDArrayAttributeBuilderPtr createBuilder();
240 bool attachTimeStamp(epics::pvData::PVTimeStamp &pvTimeStamp)
const;
248 bool attachAlarm(epics::pvData::PVAlarm &pvAlarm)
const;
254 epics::pvData::PVStructurePtr getPVStructure()
const;
260 epics::pvData::PVStringPtr getDescriptor()
const;
266 epics::pvData::PVStructurePtr getTimeStamp()
const;
272 epics::pvData::PVStructurePtr getAlarm()
const;
278 epics::pvData::PVStringPtr getName()
const;
284 epics::pvData::PVUnionPtr getValue()
const;
290 epics::pvData::PVStringArrayPtr getTags()
const;
296 epics::pvData::PVIntPtr getSourceType()
const;
302 epics::pvData::PVStringPtr getSource()
const;
308 epics::pvData::PVStructurePtr pvNTNDArrayAttribute;
309 epics::pvData::PVUnionPtr pvValue;
Validation methods for NT types.
std::tr1::shared_ptr< detail::NTNDArrayAttributeBuilder > NTNDArrayAttributeBuilderPtr
static const std::string URI
Interface for in-line creating of NTAttribute extended as required by NTNDArray.
std::tr1::shared_ptr< NTNDArrayAttribute > NTNDArrayAttributePtr
Convenience Class for NTNDArrayAttribute.
Convenience Class for NTNDArray.
epics::pvData::StringArray extraFieldNames
epics::pvData::FieldConstPtrArray extraFields