9 #ifdef epicsExportSharedSymbols 10 # define ntaggregateEpicsExportSharedSymbols 11 # undef epicsExportSharedSymbols 14 #ifdef ntaggregateEpicsExportSharedSymbols 15 # define epicsExportSharedSymbols 16 # undef ntaggregateEpicsExportSharedSymbols 23 namespace epics {
namespace nt {
38 public std::tr1::enable_shared_from_this<NTAggregateBuilder>
47 shared_pointer addDispersion();
53 shared_pointer addFirst();
59 shared_pointer addFirstTimeStamp();
65 shared_pointer addLast();
71 shared_pointer addLastTimeStamp();
77 shared_pointer addMax();
83 shared_pointer addMin();
89 shared_pointer addDescriptor();
95 shared_pointer addAlarm();
101 shared_pointer addTimeStamp();
108 epics::pvData::StructureConstPtr createStructure();
115 epics::pvData::PVStructurePtr createPVStructure();
122 NTAggregatePtr create();
130 shared_pointer add(std::string
const & name, epics::pvData::FieldConstPtr
const & field);
150 epics::pvData::StringArray extraFieldNames;
151 epics::pvData::FieldConstPtrArray extraFields;
153 friend class ::epics::nt::NTAggregate;
171 static const std::string
URI;
184 static shared_pointer wrap(epics::pvData::PVStructurePtr
const & pvStructure);
195 static shared_pointer wrapUnsafe(epics::pvData::PVStructurePtr
const & pvStructure);
208 static bool is_a(epics::pvData::StructureConstPtr
const & structure);
221 static bool is_a(epics::pvData::PVStructurePtr
const & pvStructure);
232 static bool isCompatible(
233 epics::pvData::StructureConstPtr
const &structure);
244 static bool isCompatible(
245 epics::pvData::PVStructurePtr
const &pvStructure);
262 static NTAggregateBuilderPtr createBuilder();
275 bool attachTimeStamp(epics::pvData::PVTimeStamp &pvTimeStamp)
const;
283 bool attachAlarm(epics::pvData::PVAlarm &pvAlarm)
const;
289 epics::pvData::PVStructurePtr getPVStructure()
const;
295 epics::pvData::PVStringPtr getDescriptor()
const;
301 epics::pvData::PVStructurePtr getTimeStamp()
const;
307 epics::pvData::PVStructurePtr getAlarm()
const;
313 epics::pvData::PVDoublePtr getValue()
const;
319 epics::pvData::PVLongPtr getN()
const;
325 epics::pvData::PVDoublePtr getDispersion()
const;
331 epics::pvData::PVDoublePtr getFirst()
const;
337 epics::pvData::PVStructurePtr getFirstTimeStamp()
const;
343 epics::pvData::PVDoublePtr getLast()
const;
349 epics::pvData::PVStructurePtr getLastTimeStamp()
const;
355 epics::pvData::PVDoublePtr getMax()
const;
361 epics::pvData::PVDoublePtr getMin()
const;
364 NTAggregate(epics::pvData::PVStructurePtr
const & pvStructure);
365 epics::pvData::PVStructurePtr pvNTAggregate;
366 epics::pvData::PVDoublePtr pvValue;
static const std::string URI
std::tr1::shared_ptr< NTAggregate > NTAggregatePtr
Convenience Class for NTAggregate.
std::tr1::shared_ptr< detail::NTAggregateBuilder > NTAggregateBuilderPtr
Interface for in-line creating of NTAggregate.