From 1a7db1df17554a8bf0ecfb12d8b8f3149737dfc7 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Fri, 29 Jan 2016 12:14:34 -0500 Subject: [PATCH] pass in upstream provider as argument --- p2pApp/chancache.cpp | 4 ++-- p2pApp/chancache.h | 2 +- p2pApp/server.cpp | 7 ++++--- p2pApp/server.h | 3 ++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/p2pApp/chancache.cpp b/p2pApp/chancache.cpp index b95ea18..75e933b 100644 --- a/p2pApp/chancache.cpp +++ b/p2pApp/chancache.cpp @@ -126,8 +126,8 @@ struct ChannelCache::cacheClean : public epicsTimerNotify } }; -ChannelCache::ChannelCache() - :provider(pva::getChannelProviderRegistry()->getProvider("pva")) +ChannelCache::ChannelCache(const pva::ChannelProvider::shared_pointer& prov) + :provider(prov) ,timerQueue(&epicsTimerQueueActive::allocate(1, epicsThreadPriorityCAServerLow-2)) ,cleaner(new cacheClean(this)) ,cleanerRuns(0) diff --git a/p2pApp/chancache.h b/p2pApp/chancache.h index 17109f9..1500d40 100644 --- a/p2pApp/chancache.h +++ b/p2pApp/chancache.h @@ -161,7 +161,7 @@ struct ChannelCache size_t cleanerRuns; size_t cleanerDust; - ChannelCache(); + ChannelCache(const epics::pvAccess::ChannelProvider::shared_pointer& prov); ~ChannelCache(); }; diff --git a/p2pApp/server.cpp b/p2pApp/server.cpp index abe7b0a..aefb31c 100644 --- a/p2pApp/server.cpp +++ b/p2pApp/server.cpp @@ -152,7 +152,8 @@ void GWServerChannelProvider::destroy() std::cout<<"GWServer destory request\n"; } -GWServerChannelProvider::GWServerChannelProvider() +GWServerChannelProvider::GWServerChannelProvider(const pva::ChannelProvider::shared_pointer& prov) + :cache(prov) { std::cout<<"GW Server ctor\n"; } @@ -176,7 +177,7 @@ struct GWServerChannelProviderFactory : public pva::ChannelProviderFactory { pva::ChannelProvider::shared_pointer P(last_provider.lock()); if(!P) { - P.reset(new GWServerChannelProvider); + P.reset(new GWServerChannelProvider(pva::getChannelProviderRegistry()->getProvider("pva"))); last_provider = P; } return P; @@ -184,7 +185,7 @@ struct GWServerChannelProviderFactory : public pva::ChannelProviderFactory virtual pva::ChannelProvider::shared_pointer newInstance() { - pva::ChannelProvider::shared_pointer P(new GWServerChannelProvider); + pva::ChannelProvider::shared_pointer P(new GWServerChannelProvider(pva::getChannelProviderRegistry()->getProvider("pva"))); last_provider = P; return P; } diff --git a/p2pApp/server.h b/p2pApp/server.h index a68b492..0f66653 100644 --- a/p2pApp/server.h +++ b/p2pApp/server.h @@ -31,7 +31,8 @@ struct GWServerChannelProvider : public short priority, std::string const & addressx); virtual void configure(epics::pvData::PVStructure::shared_pointer /*configuration*/); virtual void destroy(); - GWServerChannelProvider(); + + GWServerChannelProvider(const epics::pvAccess::ChannelProvider::shared_pointer& prov); virtual ~GWServerChannelProvider(); };