Definition at line 243 of file rpcServer.cpp.
epics::pvAccess::RPCChannelProvider::RPCChannelProvider |
( |
| ) |
|
|
inline |
virtual void epics::pvAccess::RPCChannelProvider::cancel |
( |
| ) |
|
|
inlinevirtual |
virtual ChannelFind::shared_pointer epics::pvAccess::RPCChannelProvider::channelFind |
( |
std::string const & |
name, |
|
|
ChannelFindRequester::shared_pointer const & |
requester |
|
) |
| |
|
inlinevirtual |
Test to see if this provider has the named channel.
May call ChannelFindRequester::channelFindResult() before returning, or at some time later. If an exception is thrown, then channelFindResult() will never be called.
- Parameters
-
name | The channel name. |
requester | The Requester. |
- Returns
- An unique()==true handle for the pending response. May only return NULL if channelFindResult() called with an Error
Implements epics::pvAccess::ChannelProvider.
Definition at line 273 of file rpcServer.cpp.
279 found = (m_services.find(channelName) != m_services.end()) ||
280 findWildService(channelName);
282 ChannelFind::shared_pointer thisPtr(shared_from_this());
283 channelFindRequester->channelFindResult(
Status::Ok, thisPtr, found);
A lock for multithreading.
virtual ChannelFind::shared_pointer epics::pvAccess::RPCChannelProvider::channelList |
( |
ChannelListRequester::shared_pointer const & |
requester | ) |
|
|
inlinevirtual |
Request a list of all valid channel names for this provider.
May call ChannelListRequester::channelListResult() before returning, or at some time later. If an exception is thrown, then channelListResult() will never be called.
- Parameters
-
- Returns
- An unique()==true handle for the pending response. May only return NULL if channelFindResult() called with an Error
Reimplemented from epics::pvAccess::ChannelProvider.
Definition at line 288 of file rpcServer.cpp.
291 if (!channelListRequester.get())
292 throw std::runtime_error(
"null requester");
297 channelNames.
reserve(m_services.size());
298 for (RPCServiceMap::const_iterator iter = m_services.begin();
299 iter != m_services.end();
304 ChannelFind::shared_pointer thisPtr(shared_from_this());
305 channelListRequester->channelListResult(
Status::Ok, thisPtr, freeze(channelNames),
false);
A holder for a contiguous piece of memory.
A lock for multithreading.
void push_back(param_type v)
void reserve(size_t i)
Set array capacity.
virtual Channel::shared_pointer epics::pvAccess::RPCChannelProvider::createChannel |
( |
std::string const & |
name, |
|
|
ChannelRequester::shared_pointer const & |
requester, |
|
|
short |
priority |
|
) |
| |
|
inlinevirtual |
See longer form
Reimplemented from epics::pvAccess::ChannelProvider.
Definition at line 309 of file rpcServer.cpp.
314 RPCServiceAsync::shared_pointer service;
316 RPCServiceMap::const_iterator iter;
319 iter = m_services.find(channelName);
321 if (iter != m_services.end())
322 service = iter->second;
326 service = findWildService(channelName);
330 Channel::shared_pointer nullChannel;
336 std::tr1::shared_ptr<RPCChannel> tp(
342 Channel::shared_pointer rpcChannel = tp;
343 channelRequester->channelCreated(
Status::Ok, rpcChannel);
A lock for multithreading.
static const Status noSuchChannelStatus
virtual Channel::shared_pointer epics::pvAccess::RPCChannelProvider::createChannel |
( |
std::string const & |
name, |
|
|
ChannelRequester::shared_pointer const & |
requester, |
|
|
short |
priority, |
|
|
std::string const & |
address |
|
) |
| |
|
inlinevirtual |
virtual void epics::pvAccess::RPCChannelProvider::destroy |
( |
| ) |
|
|
inlinevirtual |
virtual std::tr1::shared_ptr<ChannelProvider> epics::pvAccess::RPCChannelProvider::getChannelProvider |
( |
| ) |
|
|
inlinevirtual |
virtual string epics::pvAccess::RPCChannelProvider::getProviderName |
( |
| ) |
|
|
inlinevirtual |
void epics::pvAccess::RPCChannelProvider::registerService |
( |
std::string const & |
serviceName, |
|
|
RPCServiceAsync::shared_pointer const & |
service |
|
) |
| |
|
inline |
Definition at line 357 of file rpcServer.cpp.
360 m_services[serviceName] = service;
362 if (isWildcardPattern(serviceName))
363 m_wildServices.push_back(std::make_pair(serviceName, service));
A lock for multithreading.
void epics::pvAccess::RPCChannelProvider::unregisterService |
( |
std::string const & |
serviceName | ) |
|
|
inline |
Definition at line 366 of file rpcServer.cpp.
369 m_services.erase(serviceName);
371 if (isWildcardPattern(serviceName))
373 for (RPCWildServiceList::iterator iter = m_wildServices.begin();
374 iter != m_wildServices.end();
376 if (iter->first == serviceName)
378 m_wildServices.erase(iter);
A lock for multithreading.
const Status epics::pvAccess::RPCChannelProvider::noSuchChannelStatus |
|
static |
const string epics::pvAccess::RPCChannelProvider::PROVIDER_NAME |
|
static |
The documentation for this class was generated from the following file: