This is Unofficial EPICS BASE Doxygen Site
pvas::DynamicProvider Class Reference

A Provider which has no pre-configured list of names. More...

#include "server.h"

Classes

struct  Handler
 
struct  Impl
 
class  Search
 A single client serach request. May be associated with more than one name. More...
 

Public Types

typedef std::vector< Searchsearch_type
 

Public Member Functions

 POINTER_DEFINITIONS (DynamicProvider)
 
 DynamicProvider (const std::string &name, const std::tr1::shared_ptr< Handler > &handler)
 
 ~DynamicProvider ()
 
Handler::shared_pointer getHandler () const
 
std::tr1::shared_ptr< epics::pvAccess::ChannelProviderprovider () const
 Fetch the underlying ChannelProvider. Usually to build a ServerContext around. More...
 

Detailed Description

A Provider which has no pre-configured list of names.

Through an associated Handler, this provider sees all searchs, and may claim them.

See also
Server API shared_ptr Ownership

Definition at line 163 of file server.h.

Member Typedef Documentation

Definition at line 191 of file server.h.

Constructor & Destructor Documentation

pvas::DynamicProvider::DynamicProvider ( const std::string &  name,
const std::tr1::shared_ptr< Handler > &  handler 
)

Build a new provider.

Parameters
nameProvider Name. Only relevant if registerAsServer() is called, then must be unique in this process.
handlerOur callbacks. Internally stored a shared_ptr (strong reference).

Definition at line 258 of file server.cpp.

260  :impl(new Impl(name, handler))
261 {
262  impl->internal_self = impl;
263  impl->finder = pva::ChannelFind::buildDummy(impl);
264  // wrap ref to call destroy when all external refs (from DyamicProvider::impl) are released.
265  impl.reset(impl.get(), pva::Destroyable::cleaner(impl));
266  impl->external_self = impl;
267 }
static ChannelFind::shared_pointer buildDummy(const std::tr1::shared_ptr< ChannelProvider > &provider)
Definition: pvAccess.cpp:473
pvas::DynamicProvider::~DynamicProvider ( )

Definition at line 269 of file server.cpp.

269 {}

Member Function Documentation

DynamicProvider::Handler::shared_pointer pvas::DynamicProvider::getHandler ( ) const

Definition at line 271 of file server.cpp.

272 {
273  return impl->handler;
274 }
pvas::DynamicProvider::POINTER_DEFINITIONS ( DynamicProvider  )
std::tr1::shared_ptr< epics::pvAccess::ChannelProvider > pvas::DynamicProvider::provider ( ) const

Fetch the underlying ChannelProvider. Usually to build a ServerContext around.

Definition at line 276 of file server.cpp.

277 {
278  return Impl::shared_pointer(impl->internal_self);
279 }

The documentation for this class was generated from the following files: