7 #include <pv/configuration.h>
8 #include <pv/pvAccess.h>
18 POINTER_DEFINITIONS(
PDBPV);
20 epics::pvData::StructureConstPtr fielddesc;
26 epics::pvAccess::Channel::shared_pointer
27 connect(
const std::tr1::shared_ptr<PDBProvider>& prov,
28 const epics::pvAccess::ChannelRequester::shared_pointer& req) =0;
31 virtual void show(
int lvl) {}
34 struct QSRV_API
PDBProvider :
public epics::pvAccess::ChannelProvider,
35 public epics::pvAccess::ChannelFind,
36 public std::tr1::enable_shared_from_this<PDBProvider>
40 explicit PDBProvider(
const epics::pvAccess::Configuration::const_shared_pointer& =epics::pvAccess::Configuration::const_shared_pointer());
44 virtual void destroy() OVERRIDE FINAL;
45 virtual std::string getProviderName() OVERRIDE FINAL;
46 virtual epics::pvAccess::ChannelFind::shared_pointer channelFind(std::string
const & channelName,
47 epics::pvAccess::ChannelFindRequester::shared_pointer
const & channelFindRequester) OVERRIDE FINAL;
48 virtual epics::pvAccess::ChannelFind::shared_pointer channelList(epics::pvAccess::ChannelListRequester::shared_pointer
const & channelListRequester) OVERRIDE FINAL;
49 virtual epics::pvAccess::Channel::shared_pointer createChannel(std::string
const & channelName,
50 epics::pvAccess::ChannelRequester::shared_pointer
const & channelRequester,
51 short priority = PRIORITY_DEFAULT) OVERRIDE FINAL;
52 virtual epics::pvAccess::Channel::shared_pointer createChannel(std::string
const & channelName,
53 epics::pvAccess::ChannelRequester::shared_pointer
const & channelRequester,
54 short priority, std::string
const & address) OVERRIDE FINAL;
57 virtual std::tr1::shared_ptr<ChannelProvider> getChannelProvider() OVERRIDE FINAL {
return shared_from_this(); }
58 virtual void cancel() OVERRIDE FINAL {}
60 typedef std::map<std::string, PDBPV::shared_pointer> persist_pv_map_t;
61 persist_pv_map_t persist_pv_map;
66 dbEventCtx event_context;
68 typedef std::list<std::string> group_files_t;
69 static group_files_t group_files;
71 static size_t num_instances;
75 void QSRVRegistrar_counters();
83 asTrapWriteAfterWrite(pvt);
86 std::swap(pvt, o.pvt);