12 #ifdef epicsExportSharedSymbols 13 # define nturiEpicsExportSharedSymbols 14 # undef epicsExportSharedSymbols 17 #ifdef nturiEpicsExportSharedSymbols 18 # define epicsExportSharedSymbols 19 # undef nturiEpicsExportSharedSymbols 26 namespace epics {
namespace nt {
29 typedef std::tr1::shared_ptr<NTURI>
NTURIPtr;
41 public std::tr1::enable_shared_from_this<NTURIBuilder>
50 shared_pointer addAuthority();
58 shared_pointer addQueryString(std::string
const & name);
66 shared_pointer addQueryDouble(std::string
const & name);
74 shared_pointer addQueryInt(std::string
const & name);
81 epics::pvData::StructureConstPtr createStructure();
89 epics::pvData::PVStructurePtr createPVStructure();
106 shared_pointer add(std::string
const & name, epics::pvData::FieldConstPtr
const & field);
113 std::vector<std::string> queryFieldNames;
114 std::vector<epics::pvData::ScalarType> queryTypes;
119 epics::pvData::StringArray extraFieldNames;
120 epics::pvData::FieldConstPtrArray extraFields;
122 friend class ::epics::nt::NTURI;
139 POINTER_DEFINITIONS(
NTURI);
141 static const std::string
URI;
154 static shared_pointer wrap(epics::pvData::PVStructurePtr
const & pvStructure);
165 static shared_pointer wrapUnsafe(epics::pvData::PVStructurePtr
const & pvStructure);
178 static bool is_a(epics::pvData::StructureConstPtr
const & structure);
191 static bool is_a(epics::pvData::PVStructurePtr
const & pvStructure);
202 static bool isCompatible(
203 epics::pvData::StructureConstPtr
const &structure);
214 static bool isCompatible(
215 epics::pvData::PVStructurePtr
const &pvStructure);
231 static NTURIBuilderPtr createBuilder();
242 epics::pvData::PVStructurePtr getPVStructure()
const;
248 epics::pvData::PVStringPtr getScheme()
const;
254 epics::pvData::PVStringPtr getAuthority()
const;
260 epics::pvData::PVStringPtr getPath()
const;
266 epics::pvData::PVStructurePtr getQuery()
const;
274 epics::pvData::StringArray
const & getQueryNames()
const;
281 epics::pvData::PVFieldPtr getQueryField(std::string
const & name)
const;
292 template<
typename PVT>
295 epics::pvData::PVFieldPtr pvField = getQueryField(name);
297 return std::tr1::dynamic_pointer_cast<PVT>(pvField);
299 return std::tr1::shared_ptr<PVT>();
303 NTURI(epics::pvData::PVStructurePtr
const & pvStructure);
304 epics::pvData::PVStructurePtr pvNTURI;
Convenience Class for NTURI.
static const std::string URI
Interface for in-line creating of NTURI.
std::tr1::shared_ptr< NTURI > NTURIPtr
std::tr1::shared_ptr< PVT > getQueryField(std::string const &name) const
std::tr1::shared_ptr< detail::NTURIBuilder > NTURIBuilderPtr