16 namespace epics{
namespace pvAccess{
17 class ChannelProvider;
19 class ChannelRequester;
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,
119 const std::string& name,
120 const std::tr1::shared_ptr<epics::pvAccess::ChannelRequester>&
requester) =0;
126 typedef std::map<std::string, std::tr1::shared_ptr<ChannelBuilder> > builders_t;
138 void close(
bool destroy=
false);
141 void add(
const std::string& name,
142 const std::tr1::shared_ptr<ChannelBuilder>& builder);
146 std::tr1::shared_ptr<ChannelBuilder>
remove(
const std::string& name);
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;
176 Search(
const std::string& name, const ::epics::pvAccess::PeerInfo* peer)
177 :isclaimed(
false),cname(name),peerinfo(peer)
181 const std::string&
name()
const {
return cname; }
189 const ::epics::pvAccess::PeerInfo*
peer()
const {
return peerinfo; }
204 virtual void hasChannels(search_type& name) =0;
208 virtual std::tr1::shared_ptr<epics::pvAccess::Channel> createChannel(
const std::tr1::shared_ptr<epics::pvAccess::ChannelProvider>& provider,
209 const std::string& name,
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;
234 #endif // PVA_SERVER_H A single client serach request. May be associated with more than one name.
Interface for something which can provide Channels. aka A "PV". Typically a SharedPV.
std::vector< Search > search_type
TODO only here because of the Lockable.
Mark external symbols and entry points for shared libraries.
virtual void destroy()
Called when the last reference to a DynamicProvider is released. Should close any channels...
builders_t::const_iterator const_iterator
const ::epics::pvAccess::PeerInfo * peer() const
A Provider which has no pre-configured list of names.
const std::string & name() const
The name being queried.
#define POINTER_DEFINITIONS(clazz)
const ChannelProcessRequester::weak_pointer requester
epics::pvData::shared_vector< std::string > names_type
A Provider based on a list of SharedPV instance.
void claim()
Has been claimed()
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...
bool claimed() const
Stake a claim.