pvAccessCPP  7.1.2
Public Types | Public Member Functions | Static Public Attributes | List of all members
epics::pvAccess::ChannelRequester Class Referenceabstract

Event notifications associated with Channel life-cycle. More...

#include <client/pv/pvAccess.h>

Inheritance diagram for epics::pvAccess::ChannelRequester:
Inheritance graph
[legend]
Collaboration diagram for epics::pvAccess::ChannelRequester:
Collaboration graph
[legend]

Public Types

typedef Channel operation_type
 

Public Member Functions

 POINTER_DEFINITIONS (ChannelRequester)
 
virtual void channelCreated (const epics::pvData::Status &status, Channel::shared_pointer const &channel)=0
 The request made with ChannelProvider::createChannel() is satisfied. More...
 
virtual void channelStateChange (Channel::shared_pointer const &channel, Channel::ConnectionState connectionState)=0
 Called occasionally after channelCreated() with Status::isOk() to give notification of connection state changes. More...
 
virtual std::tr1::shared_ptr< const PeerInfogetPeerInfo ()
 Return information on connected peer if applicable. More...
 
 POINTER_DEFINITIONS (Requester)
 
virtual std::string getRequesterName ()=0
 The requester must have a name. More...
 
virtual void message (std::string const &message, MessageType messageType=errorMessage)
 Push notification.
 

Static Public Attributes

static size_t num_instances
 

Detailed Description

Event notifications associated with Channel life-cycle.

See ChannelProvider::createChannel()

Definition at line 1141 of file pvAccess.h.

Member Function Documentation

◆ channelCreated()

virtual void epics::pvAccess::ChannelRequester::channelCreated ( const epics::pvData::Status status,
Channel::shared_pointer const &  channel 
)
pure virtual

The request made with ChannelProvider::createChannel() is satisfied.

Will be called at most once for each call to createChannel().

The Channel passed here must be the same as was returned by createChannel(), if it has returned. Note that this method may be called before createChanel() returns.

Status::isOk() indicates that the Channel is valid. Calls to Channel methods can be made from this method, and later until Channel::destroy() is called.

!Status::isOk() indicates that the Channel is not available. No calls to the Channel are permitted. channelStateChange() will never be called.

Caller must hold no locks.

Parameters
statusCompletion status.
channelThe channel.

Implemented in epics::pvAccess::DefaultChannelRequester.

◆ channelStateChange()

virtual void epics::pvAccess::ChannelRequester::channelStateChange ( Channel::shared_pointer const &  channel,
Channel::ConnectionState  connectionState 
)
pure virtual

Called occasionally after channelCreated() with Status::isOk() to give notification of connection state changes.

Caller must hold no locks.

Parameters
cThe channel.
connectionStateThe new connection state.

Implemented in epics::pvAccess::DefaultChannelRequester.

◆ getPeerInfo()

virtual std::tr1::shared_ptr<const PeerInfo> epics::pvAccess::ChannelRequester::getPeerInfo ( )
virtual

Return information on connected peer if applicable.

A server-type ChannelProvider will use this method to discover if a remote client has provided credentials which may be used in access control decisions.

Default implementation returns NULL.

isConnected()==true and getPeerInfo()==NULL when the ChannelProvider does not provide information about the peer. This should be treated as an unauthenticated, anonymous, peer.

The returned instance must not change, and a different instance should be returned if/when peer information changes (eg. after reconnect).

May return !NULL when !isConnected(). getPeerInfo() must be called before testing isConnected() in situations where connection state is being polled.

◆ getRequesterName()

virtual std::string epics::pvAccess::Requester::getRequesterName ( )
pure virtualinherited

The requester must have a name.

Returns
The requester's name.

Implemented in epics::pvAccess::DefaultChannelRequester.


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