6#ifndef NTMULTICHANNEL_H
7#define NTMULTICHANNEL_H
12#ifdef epicsExportSharedSymbols
13# define ntmultiChannelEpicsExportSharedSymbols
14# undef epicsExportSharedSymbols
17#include <pv/pvDisplay.h>
18#include <pv/pvControl.h>
20#ifdef ntmultiChannelEpicsExportSharedSymbols
21# define epicsExportSharedSymbols
22# undef ntmultiChannelEpicsExportSharedSymbols
30namespace epics {
namespace nt {
46 public std::tr1::enable_shared_from_this<NTMultiChannelBuilder>
55 shared_pointer value(epics::pvData::UnionConstPtr valuePtr);
61 shared_pointer addDescriptor();
67 shared_pointer addAlarm();
73 shared_pointer addTimeStamp();
79 shared_pointer addSeverity();
85 shared_pointer addStatus();
91 shared_pointer addMessage();
97 shared_pointer addSecondsPastEpoch();
103 shared_pointer addNanoseconds();
109 shared_pointer addUserTag();
115 shared_pointer addIsConnected();
122 epics::pvData::StructureConstPtr createStructure();
129 epics::pvData::PVStructurePtr createPVStructure();
144 shared_pointer add(std::string
const & name, epics::pvData::FieldConstPtr
const & field);
151 epics::pvData::UnionConstPtr valueType;
158 bool secondsPastEpoch;
164 epics::pvData::StringArray extraFieldNames;
165 epics::pvData::FieldConstPtrArray extraFields;
167 friend class ::epics::nt::NTMultiChannel;
186 static const std::string
URI;
199 static shared_pointer wrap(epics::pvData::PVStructurePtr
const & pvStructure);
210 static shared_pointer wrapUnsafe(epics::pvData::PVStructurePtr
const & pvStructure);
223 static bool is_a(epics::pvData::StructureConstPtr
const & structure);
236 static bool is_a(epics::pvData::PVStructurePtr
const & pvStructure);
248 epics::pvData::StructureConstPtr
const &structure);
260 epics::pvData::PVStructurePtr
const &pvStructure);
289 bool attachTimeStamp(epics::pvData::PVTimeStamp &pvTimeStamp)
const;
297 bool attachAlarm(epics::pvData::PVAlarm &pvAlarm)
const;
304 {
return pvNTMultiChannel;}
311 {
return pvDescriptor;}
318 {
return pvTimeStamp;}
339 {
return pvChannelName;};
346 {
return pvIsConnected;};
374 {
return pvSecondsPastEpoch;}
381 {
return pvNanoseconds;}
391 NTMultiChannel(epics::pvData::PVStructurePtr
const & pvStructure);
392 epics::pvData::PVStructurePtr pvNTMultiChannel;
393 epics::pvData::PVStructurePtr pvTimeStamp;
394 epics::pvData::PVStructurePtr pvAlarm;
395 epics::pvData::PVUnionArrayPtr pvValue;
396 epics::pvData::PVStringArrayPtr pvChannelName;
397 epics::pvData::PVBooleanArrayPtr pvIsConnected;
398 epics::pvData::PVIntArrayPtr pvSeverity;
399 epics::pvData::PVIntArrayPtr pvStatus;
400 epics::pvData::PVStringArrayPtr pvMessage;
401 epics::pvData::PVLongArrayPtr pvSecondsPastEpoch;
402 epics::pvData::PVIntArrayPtr pvNanoseconds;
403 epics::pvData::PVIntArrayPtr pvUserTag;
404 epics::pvData::PVStringPtr pvDescriptor;
Convenience Class for NTMultiChannel.
static const std::string URI
POINTER_DEFINITIONS(NTMultiChannel)
static bool is_a(epics::pvData::PVStructurePtr const &pvStructure)
epics::pvData::PVIntArrayPtr getSeverity() const
epics::pvData::PVIntArrayPtr getStatus() const
static bool isCompatible(epics::pvData::PVStructurePtr const &pvStructure)
static bool is_a(epics::pvData::StructureConstPtr const &structure)
epics::pvData::PVStructurePtr getAlarm() const
epics::pvData::PVStringPtr getDescriptor() const
epics::pvData::PVStringArrayPtr getChannelName() const
epics::pvData::PVIntArrayPtr getUserTag() const
epics::pvData::PVLongArrayPtr getSecondsPastEpoch() const
epics::pvData::PVStructurePtr getTimeStamp() const
epics::pvData::PVUnionArrayPtr getValue() const
epics::pvData::PVBooleanArrayPtr getIsConnected() const
epics::pvData::PVStructurePtr getPVStructure() const
epics::pvData::PVStringArrayPtr getMessage() const
epics::pvData::PVIntArrayPtr getNanoseconds() const
static bool isCompatible(epics::pvData::StructureConstPtr const &structure)
Interface for in-line creating of NTMultiChannel.
POINTER_DEFINITIONS(NTMultiChannelBuilder)
std::tr1::shared_ptr< NTMultiChannel > NTMultiChannelPtr
std::tr1::shared_ptr< detail::NTMultiChannelBuilder > NTMultiChannelBuilderPtr