13#include <pv/sharedPtr.h>
14#include <pv/sharedVector.h>
110 std::tr1::shared_ptr<Impl> impl;
118 virtual std::tr1::shared_ptr<epics::pvAccess::Channel>
connect(
const std::tr1::shared_ptr<epics::pvAccess::ChannelProvider>&
provider,
120 const std::tr1::shared_ptr<epics::pvAccess::ChannelRequester>& requester) =0;
128 typedef builders_t::const_iterator const_iterator;
142 const std::tr1::shared_ptr<ChannelBuilder>& builder);
149 std::tr1::shared_ptr<epics::pvAccess::ChannelProvider>
provider()
const;
152 const_iterator begin()
const;
153 const_iterator end()
const;
168 std::tr1::shared_ptr<Impl> impl;
175 const ::epics::pvAccess::PeerInfo* peerinfo;
177 :isclaimed(
false),cname(
name),peerinfo(
peer)
189 const ::epics::pvAccess::PeerInfo*
peer()
const {
return peerinfo; }
208 virtual std::tr1::shared_ptr<epics::pvAccess::Channel>
createChannel(
const std::tr1::shared_ptr<epics::pvAccess::ChannelProvider>&
provider,
210 const std::tr1::shared_ptr<epics::pvAccess::ChannelRequester>& requester) =0;
219 const std::tr1::shared_ptr<Handler>& handler);
222 Handler::shared_pointer getHandler()
const;
227 std::tr1::shared_ptr<epics::pvAccess::ChannelProvider>
provider()
const;
basic_string< char > string
The interface through which Operations (get, put, monitor, ...) are initiated.
An instance of a Client or Server.
Event notifications associated with Channel life-cycle.
void claim()
Has been claimed().
bool claimed() const
Stake a claim.
const ::epics::pvAccess::PeerInfo * peer() const
const std::string & name() const
The name being queried.
DynamicProvider(const std::string &name, const std::tr1::shared_ptr< Handler > &handler)
std::tr1::shared_ptr< epics::pvAccess::ChannelProvider > provider() const
Fetch the underlying ChannelProvider. Usually to build a ServerContext around.
void close(bool destroy=false)
void add(const std::string &name, const std::tr1::shared_ptr< ChannelBuilder > &builder)
Add a PV (eg. SharedPV) to this provider.
StaticProvider(const std::string &name)
std::tr1::shared_ptr< epics::pvAccess::ChannelProvider > provider() const
Fetch the underlying ChannelProvider. Usually to build a ServerContext around.
std::tr1::shared_ptr< ChannelBuilder > remove(const std::string &name)
Copyright - See the COPYRIGHT that is included with this distribution.
Information provded by a client to a server-type ChannelProvider.
Callbacks associated with DynamicProvider.
virtual std::tr1::shared_ptr< epics::pvAccess::Channel > createChannel(const std::tr1::shared_ptr< epics::pvAccess::ChannelProvider > &provider, const std::string &name, const std::tr1::shared_ptr< epics::pvAccess::ChannelRequester > &requester)=0
Called when a client is attempting to open a new channel to this SharedPV.
virtual void listChannels(names_type &names, bool &dynamic)
Called when a client is requesting a list of channel names we provide. Callee should set dynamic=fals...
virtual void destroy()
Called when the last reference to a DynamicProvider is released. Should close any channels.
virtual void hasChannels(search_type &name)=0
Called with name(s) which some client is searching for.
Interface for something which can provide Channels. aka A "PV". Typically a SharedPV.
virtual void disconnect(bool destroy, const epics::pvAccess::ChannelProvider *provider)=0
virtual std::tr1::shared_ptr< epics::pvAccess::Channel > connect(const std::tr1::shared_ptr< epics::pvAccess::ChannelProvider > &provider, const std::string &name, const std::tr1::shared_ptr< epics::pvAccess::ChannelRequester > &requester)=0
called to create a new Channel through the given ChannelProvider