pvAccessCPP 7.1.8
Loading...
Searching...
No Matches
epics::pvAccess::ChannelProvider Class Referenceabstract

An instance of a Client or Server. More...

#include <client/pv/pvAccess.h>

Inheritance diagram for epics::pvAccess::ChannelProvider:
Collaboration diagram for epics::pvAccess::ChannelProvider:

Public Types

typedef std::tr1::shared_ptr< ChannelProvidershared_pointer
 
typedef std::tr1::shared_ptr< const ChannelProviderconst_shared_pointer
 
typedef std::tr1::weak_ptr< ChannelProviderweak_pointer
 
typedef std::tr1::weak_ptr< const ChannelProviderconst_weak_pointer
 

Public Member Functions

virtual std::string getProviderName ()=0
 Get the provider name.
 
virtual ChannelFind::shared_pointer channelFind (std::string const &name, ChannelFindRequester::shared_pointer const &requester)=0
 Test to see if this provider has the named channel.
 
virtual ChannelFind::shared_pointer channelList (ChannelListRequester::shared_pointer const &requester)
 Request a list of all valid channel names for this provider.
 
virtual Channel::shared_pointer createChannel (std::string const &name, ChannelRequester::shared_pointer const &requester=DefaultChannelRequester::build(), short priority=PRIORITY_DEFAULT)
 See longer form.
 
virtual Channel::shared_pointer createChannel (std::string const &name, ChannelRequester::shared_pointer const &requester, short priority, std::string const &address)=0
 Request a Channel.
 
virtual void destroy ()
 Destroy this instance.
 

Static Public Attributes

static const short PRIORITY_MIN = 0
 Minimal priority.
 
static const short PRIORITY_MAX = 99
 Maximal priority.
 
static const short PRIORITY_DEFAULT = PRIORITY_MIN
 Default priority.
 
static const short PRIORITY_LINKS_DB = PRIORITY_MAX
 DB links priority.
 
static const short PRIORITY_ARCHIVE = (PRIORITY_MAX + PRIORITY_MIN) / 2
 Archive priority.
 
static const short PRIORITY_OPI = PRIORITY_MIN
 OPI priority.
 
static size_t num_instances
 

Detailed Description

An instance of a Client or Server.

Uniquely configurable (via ChannelProviderFactory::newInstance(Configuration*)

Definition at line 1230 of file pvAccess.h.

Member Typedef Documentation

◆ const_shared_pointer

std::tr1::shared_ptr<const ChannelProvider> epics::pvAccess::ChannelProvider::const_shared_pointer

Definition at line 1234 of file pvAccess.h.

◆ const_weak_pointer

std::tr1::weak_ptr<const ChannelProvider> epics::pvAccess::ChannelProvider::const_weak_pointer

Definition at line 1234 of file pvAccess.h.

◆ shared_pointer

std::tr1::shared_ptr<ChannelProvider> epics::pvAccess::ChannelProvider::shared_pointer

Definition at line 1234 of file pvAccess.h.

◆ weak_pointer

std::tr1::weak_ptr<ChannelProvider> epics::pvAccess::ChannelProvider::weak_pointer

Definition at line 1234 of file pvAccess.h.

Member Function Documentation

◆ channelFind()

virtual ChannelFind::shared_pointer epics::pvAccess::ChannelProvider::channelFind ( std::string const & name,
ChannelFindRequester::shared_pointer const & requester )
pure virtual

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
nameThe channel name.
requesterThe Requester.
Returns
An unique()==true handle for the pending response. May only return NULL if channelFindResult() called with an Error

◆ channelList()

virtual ChannelFind::shared_pointer epics::pvAccess::ChannelProvider::channelList ( ChannelListRequester::shared_pointer const & requester)
virtual

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
requesterThe Requester.
Returns
An unique()==true handle for the pending response. May only return NULL if channelFindResult() called with an Error

◆ createChannel()

virtual Channel::shared_pointer epics::pvAccess::ChannelProvider::createChannel ( std::string const & name,
ChannelRequester::shared_pointer const & requester,
short priority,
std::string const & address )
pure virtual

Request a Channel.

Channel creation is immediate. ChannelRequester::channelCreated() will be called before returning. The shared_ptr which is passed to channelCreated() will also be returned.

Failures during channel creation are delivered to ChannelRequester::channelCreated() with Status::isSuccess()==false.

Postcondition
The returned Channel will hold a strong reference to the provided ChannelRequester and to the ChannelProvider through which it is created.
The shared_ptr passed to ChannelRequester::channelCreated() is unique. See Uniqueness
The new Channel will not hold a strong reference to this ChannelProvider. This provider must be kept alive in order to keep the Channel from being destoryed.
Parameters
nameThe name of the channel.
requesterWill receive notifications about channel state changes
prioritychannel priority, must be PRIORITY_MIN <= priority <= PRIORITY_MAX.
addressImplementation dependent condition. eg. A network address to bypass the search phase. Pass an empty() string for default behavour.
Returns
A non-NULL Channel unless channelCreated() called with an Error

◆ destroy()

virtual void epics::pvAccess::Destroyable::destroy ( )
inlinevirtualinherited

Destroy this instance.

Reimplemented in epics::pvAccess::MonitorFIFO.

Definition at line 30 of file destroyable.h.

◆ getProviderName()

virtual std::string epics::pvAccess::ChannelProvider::getProviderName ( )
pure virtual

Get the provider name.

Returns
The name.

Member Data Documentation

◆ num_instances

size_t epics::pvAccess::ChannelProvider::num_instances
static

Definition at line 1249 of file pvAccess.h.

◆ PRIORITY_ARCHIVE

const short epics::pvAccess::ChannelProvider::PRIORITY_ARCHIVE = (PRIORITY_MAX + PRIORITY_MIN) / 2
static

Archive priority.

Definition at line 1245 of file pvAccess.h.

◆ PRIORITY_DEFAULT

const short epics::pvAccess::ChannelProvider::PRIORITY_DEFAULT = PRIORITY_MIN
static

Default priority.

Definition at line 1241 of file pvAccess.h.

◆ PRIORITY_LINKS_DB

const short epics::pvAccess::ChannelProvider::PRIORITY_LINKS_DB = PRIORITY_MAX
static

DB links priority.

Definition at line 1243 of file pvAccess.h.

◆ PRIORITY_MAX

const short epics::pvAccess::ChannelProvider::PRIORITY_MAX = 99
static

Maximal priority.

Definition at line 1239 of file pvAccess.h.

◆ PRIORITY_MIN

const short epics::pvAccess::ChannelProvider::PRIORITY_MIN = 0
static

Minimal priority.

Definition at line 1237 of file pvAccess.h.

◆ PRIORITY_OPI

const short epics::pvAccess::ChannelProvider::PRIORITY_OPI = PRIORITY_MIN
static

OPI priority.

Definition at line 1247 of file pvAccess.h.


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