pvAccessCPP
7.1.7
|
Holds all PVA related. More...
Classes | |
class | MonitorElement |
An element for a monitorQueue. More... | |
class | Monitor |
Access to Monitor subscription and queue. More... | |
class | MonitorFIFO |
Utility implementation of Monitor. More... | |
class | ScopedLock |
Scope lock. More... | |
struct | NetStats |
Expose statistics related to network transport. More... | |
struct | ChannelBaseRequester |
Base for all Requesters (callbacks to client) More... | |
class | ChannelRequest |
Base interface for all channel requests (aka. More... | |
class | MonitorRequester |
Callback implemented by monitor clients. More... | |
class | ChannelArray |
Request to put and get Array Data. More... | |
class | ChannelArrayRequester |
The Requester for a ChannelArray. More... | |
class | ChannelGet |
Request to get data from a channel. More... | |
class | ChannelGetRequester |
Requester for channelGet. More... | |
class | ChannelProcess |
ChannelProcess - request that a channel be processed. More... | |
class | ChannelProcessRequester |
Requester for channelProcess. More... | |
class | ChannelPut |
Interface for a channel access put request. More... | |
class | ChannelPutRequester |
Requester for ChannelPut. More... | |
class | ChannelPutGet |
Channel access put/get request. More... | |
class | ChannelPutGetRequester |
Requester for ChannelPutGet. More... | |
class | ChannelRPC |
Handle for an RPC operation. More... | |
class | ChannelRPCRequester |
Notifications associated with Channel::createChannelRPC() More... | |
class | GetFieldRequester |
Completion notification for Channel::getField() More... | |
class | Channel |
The interface through which Operations (get, put, monitor, ...) are initiated. More... | |
class | ChannelRequester |
Event notifications associated with Channel life-cycle. More... | |
struct | DefaultChannelRequester |
Used when ChannelProvider::createChannel() is passed a NULL ChannelRequester. More... | |
class | ChannelProvider |
An instance of a Client or Server. More... | |
class | ChannelProviderFactory |
ChanneProvider factory interface. More... | |
struct | SimpleChannelProviderFactory |
Simple ChannelProviderFactory which requires the existance of a ctor Provider(const std::tr1::shared_ptr<Configuration>& conf) which is called with a Configuration instance or NULL (use some defaults) More... | |
struct | SingletonChannelProviderFactory |
Helper for ChannelProviders which access a singleton resource (eg. More... | |
class | ChannelProviderRegistry |
Interface for locating channel providers. More... | |
class | BeaconEmitter |
BeaconEmitter. More... | |
class | BeaconServerStatusProvider |
BeaconServerStatusProvider. More... | |
class | DefaultBeaconServerStatusProvider |
DefaultBeaconServerStatusProvider. More... | |
class | ServerBadResponse |
Bad request handler. More... | |
class | ServerConnectionValidationHandler |
Connection validation message handler. More... | |
class | ServerNoopResponse |
NOOP response. More... | |
class | ServerEchoHandler |
Echo request handler. More... | |
class | ServerSearchHandler |
Search channel request handler. More... | |
class | ServerCreateChannelHandler |
Create channel request handler. More... | |
class | ServerDestroyChannelHandler |
Destroy channel request handler. More... | |
class | ServerGetHandler |
Get request handler. More... | |
class | ServerPutHandler |
Put request handler. More... | |
class | ServerPutGetHandler |
Put request handler. More... | |
class | ServerMonitorHandler |
Monitor request handler. More... | |
class | ServerArrayHandler |
Array request handler. More... | |
class | ServerDestroyRequestHandler |
Destroy request handler. More... | |
class | ServerCancelRequestHandler |
Cancel request handler. More... | |
class | ServerProcessHandler |
Process request handler. More... | |
class | ServerGetFieldHandler |
Get field request handler. More... | |
class | ServerRPCHandler |
RPC handler. More... | |
class | ServerResponseHandler |
PVAS request handler - main handler which dispatches requests to appropriate handlers. More... | |
class | ServerContext |
The class representing a PVA Server context. More... | |
class | RPCClient |
RPCClient is an interface class that is used by a service client. More... | |
class | RPCServer |
Serves (only) RPCServiceAsync and RPCService instances. More... | |
class | Configuration |
Configuration. More... | |
class | ConfigurationMap |
Lookup configuration strings from an in memory store. More... | |
class | ConfigurationEnviron |
Lookup configuration strings from the process environment. More... | |
class | ConfigurationStack |
Lookup configuration strings from a heap of sub-Configurations. More... | |
class | ConfigurationProvider |
Configuration provider. More... | |
class | ConfigurationFactory |
Configuration factory. More... | |
class | Destroyable |
Instance declaring destroy method. More... | |
class | IntrospectionRegistry |
PVData Structure registry. More... | |
class | ReferenceCountingLock |
Reference counting mutex implementation w/ deadlock detection. More... | |
class | Requester |
Callback class for passing messages to a requester. More... | |
class | Wildcard |
Class which implements wildcard patterns and checks to see if a string matches a given pattern. More... | |
struct | ServerGUID |
Globally unique ID. More... | |
class | BeaconHandler |
BeaconHandler. More... | |
class | BlockingTCPConnector |
Channel Access TCP connector. More... | |
class | BlockingTCPAcceptor |
Channel Access Server TCP acceptor. More... | |
class | TransportSendControl |
Interface defining transport send control. More... | |
class | TransportSender |
Interface defining transport sender (instance sending data over transport). More... | |
class | Transport |
Interface defining transport (connection). More... | |
class | Context |
Not public IF, used by Transports, etc. More... | |
class | ResponseHandler |
Interface defining response handler. More... | |
class | ResponseRequest |
A request that expects an response. More... | |
struct | PeerInfo |
Information provded by a client to a server-type ChannelProvider. More... | |
class | AuthenticationSession |
A particular authentication exchange. More... | |
class | AuthenticationPluginControl |
Callbacks for use by AuthenticationSession. More... | |
class | AuthenticationPlugin |
Actor through which authentication exchanges are initiated. More... | |
class | AuthenticationRegistry |
Registry(s) for plugins. More... | |
class | AuthorizationPlugin |
I modify PeerInfo after authentication is complete. More... | |
Typedefs | |
typedef std::tr1::shared_ptr < MonitorElement > | MonitorElementPtr |
typedef std::vector < MonitorElementPtr > | MonitorElementPtrArray |
typedef std::tr1::shared_ptr < Monitor > | MonitorPtr |
typedef Monitor | PipelineMonitor |
Pipeline (streaming) support API (optional). More... | |
typedef ConfigurationEnviron | SystemConfigurationImpl |
typedef std::vector< osiSockAddr > | InetAddrVector |
typedef std::vector< ifaceNode > | IfaceNodeVector |
typedef std::map< const short, epics::pvData::FieldConstPtr > | registryMap_t |
typedef std::tr1::shared_ptr < Requester > | RequesterPtr |
typedef epicsInt32 | pvAccessID |
typedef std::vector < BlockingUDPTransport::shared_pointer > | BlockingUDPTransportVector |
Enumerations | |
enum | AccessRights { none, read, readWrite } |
enum | FlushStrategy { IMMEDIATE, DELAYED, USER_CONTROLED } |
The FlushStrategy enum. | |
enum | pvAccessLogLevel { logLevelAll = 0, logLevelTrace, logLevelDebug, logLevelInfo, logLevelWarn, logLevelError, logLevelFatal, logLevelOff } |
enum | MessageType { infoMessage, warningMessage, errorMessage, fatalErrorMessage } |
enum | InetAddressType { inetAddressType_all, inetAddressType_unicast, inetAddressType_broadcast_multicast } |
enum | QoS { QOS_DEFAULT = 0x00, QOS_REPLY_REQUIRED = 0x01, QOS_BESY_EFFORT = 0x02, QOS_PROCESS = 0x04, QOS_INIT = 0x08, QOS_DESTROY = 0x10, QOS_SHARE = 0x20, QOS_GET = 0x40, QOS_GET_PUT = 0x80 } |
enum | ApplicationCommands { CMD_BEACON = 0, CMD_CONNECTION_VALIDATION = 1, CMD_ECHO = 2, CMD_SEARCH = 3, CMD_SEARCH_RESPONSE = 4, CMD_AUTHNZ = 5, CMD_ACL_CHANGE = 6, CMD_CREATE_CHANNEL = 7, CMD_DESTROY_CHANNEL = 8, CMD_CONNECTION_VALIDATED = 9, CMD_GET = 10, CMD_PUT = 11, CMD_PUT_GET = 12, CMD_MONITOR = 13, CMD_ARRAY = 14, CMD_DESTROY_REQUEST = 15, CMD_PROCESS = 16, CMD_GET_FIELD = 17, CMD_MESSAGE = 18, CMD_MULTIPLE_DATA = 19, CMD_RPC = 20, CMD_CANCEL_REQUEST = 21, CMD_ORIGIN_TAG = 22 } |
enum | ControlCommands { CMD_SET_MARKER = 0, CMD_ACK_MARKER = 1, CMD_SET_ENDIANESS = 2 } |
Functions | |
ServerContext::shared_pointer | startPVAServer (std::string const &providerNames=PVACCESS_ALL_PROVIDERS, int timeToRun=0, bool runInSeparateThread=false, bool printInfo=false) |
void | providerRegInit (void *) |
Channel::shared_pointer | createRPCChannel (ChannelProvider::shared_pointer const &provider, std::string const &channelName, ChannelRequester::shared_pointer const &channelRequester, RPCServiceAsync::shared_pointer const &rpcService) |
std::ostream & | operator<< (std::ostream &strm, const HexDump &hex) |
int | discoverInterfaces (IfaceNodeVector &list, SOCKET socket, const osiSockAddr *pMatchAddr=0) |
void | encodeAsIPv6Address (epics::pvData::ByteBuffer *buffer, const osiSockAddr *address) |
Encode IPv4 address as IPv6 address. More... | |
bool | decodeAsIPv6Address (epics::pvData::ByteBuffer *buffer, osiSockAddr *address) |
Decode IPv6 address (as IPv4 address). More... | |
bool | isMulticastAddress (const osiSockAddr *address) |
Check if an IPv4 address is a multicast address. More... | |
void | getSocketAddressList (InetAddrVector &ret, const std::string &list, int defaultPort, const InetAddrVector *appendList=NULL) |
Parse space delimited addresss[:port] string and populate array of InetSocketAddress . More... | |
std::string | inetAddressToString (const osiSockAddr &addr, bool displayPort=true, bool displayHex=false) |
void | pvAccessLog (pvAccessLogLevel level, const char *format,...) |
void | pvAccessSetLogLevel (pvAccessLogLevel level) |
bool | pvAccessIsLoggable (pvAccessLogLevel level) |
std::string | getMessageTypeName (MessageType messageType) |
std::ostream & | operator<< (std::ostream &o, const Version &v) |
void | initializeUDPTransports (bool serverFlag, BlockingUDPTransportVector &udpTransports, const IfaceNodeVector &ifaceList, const ResponseHandler::shared_pointer &responseHandler, BlockingUDPTransport::shared_pointer &sendTransport, epics::pvData::int32 &listenPort, bool autoAddressList, const std::string &addressList, const std::string &ignoreAddressList) |
void | hackAroundRTEMSSocketInterrupt () |
void | osdGetRoles (const std::string &account, PeerInfo::roles_t &roles) |
Query OS specific DB for role/group names assocated with a user account. More... | |
Variables | |
const epics::pvData::int8 | PVA_MAGIC = static_cast<epics::pvData::int8>(0xCA) |
PVA protocol magic number. | |
const epics::pvData::int8 | PVA_SERVER_PROTOCOL_REVISION = 2 |
const epics::pvData::int8 | PVA_CLIENT_PROTOCOL_REVISION = 2 |
const epics::pvData::int8 | PVA_PROTOCOL_REVISION = 1 |
PVA protocol revision (implemented by this library). More... | |
const epics::pvData::int8 | PVA_VERSION = 1 |
PVA version signature used to report this implementation version in header. More... | |
const epics::pvData::int32 | PVA_SERVER_PORT = 5075 |
Default PVA server port. More... | |
const epics::pvData::int32 | PVA_BROADCAST_PORT = 5076 |
Default PVA beacon port. More... | |
const epics::pvData::int16 | PVA_MESSAGE_HEADER_SIZE = 8 |
PVA protocol message header size. More... | |
const epics::pvData::int32 | MAX_UDP_UNFRAGMENTED_SEND = 1440 |
UDP maximum send message size. More... | |
const epics::pvData::int32 | MAX_UDP_RECV = 65487 |
UDP maximum receive message size. More... | |
const epics::pvData::int32 | MAX_TCP_RECV = 1024*16 |
TCP maximum receive message size. More... | |
const epics::pvData::int32 | MAX_SEARCH_BATCH_COUNT = 0x7FFF |
Maximum number of search requests in one search message. More... | |
const epics::pvData::int16 | PVA_DEFAULT_PRIORITY = 0 |
Default priority (corresponds to POSIX SCHED_OTHER) | |
const epics::pvData::uint32 | MAX_CHANNEL_NAME_LENGTH = 500 |
Unreasonable channel name length. More... | |
const epics::pvData::int16 | INVALID_DATA_TYPE = 0xFFFF |
Invalid data type. More... | |
const epics::pvData::int32 | INVALID_IOID = 0 |
Invalid IOID. More... | |
const std::string | PVACCESS_DEFAULT_PROVIDER |
Default PVA provider name. More... | |
const std::string | PVACCESS_ALL_PROVIDERS |
"All-providers registered" PVA provider name. More... | |
const std::string | PVACCESS_DEBUG |
Name of the system env. More... | |
Holds all PVA related.
Pipeline (streaming) support API (optional).
This is used by pvAccess to implement pipeline (streaming) monitors.
Definition at line 1563 of file pvAccess.h.
Enumerator | |
---|---|
none |
Neither read or write access is allowed. |
read |
Read access is allowed but write access is not allowed. |
readWrite |
Both read and write access are allowed. |
Definition at line 71 of file pvAccess.h.
enum epics::pvAccess::QoS |
bool epics::pvAccess::decodeAsIPv6Address | ( | epics::pvData::ByteBuffer * | buffer, |
osiSockAddr * | address | ||
) |
Decode IPv6 address (as IPv4 address).
buffer | byte-buffer where to get encoded data. |
address | address where to decode. |
void epics::pvAccess::encodeAsIPv6Address | ( | epics::pvData::ByteBuffer * | buffer, |
const osiSockAddr * | address | ||
) |
Encode IPv4 address as IPv6 address.
buffer | byte-buffer where to put encoded data. |
address | address to encode. |
void epics::pvAccess::getSocketAddressList | ( | InetAddrVector & | ret, |
const std::string & | list, | ||
int | defaultPort, | ||
const InetAddrVector * | appendList = NULL |
||
) |
Parse space delimited addresss[:port] string and populate array of InetSocketAddress
.
ret | results stored hre |
list | space delimited addresss[:port] string. |
defaultPort | port take if not specified. |
appendList | list to be appended. |
InetSocketAddress
. bool epics::pvAccess::isMulticastAddress | ( | const osiSockAddr * | address | ) |
Check if an IPv4 address is a multicast address.
address | IPv4 address to check. |
void epics::pvAccess::osdGetRoles | ( | const std::string & | account, |
PeerInfo::roles_t & | roles | ||
) |
Query OS specific DB for role/group names assocated with a user account.
account | User name |
roles | Role names are added to this set. Existing names are not removed. |
const epics::pvData::int16 epics::pvAccess::INVALID_DATA_TYPE = 0xFFFF |
Invalid data type.
Definition at line 76 of file pvaConstants.h.
const epics::pvData::int32 epics::pvAccess::INVALID_IOID = 0 |
Invalid IOID.
Definition at line 79 of file pvaConstants.h.
const epics::pvData::uint32 epics::pvAccess::MAX_CHANNEL_NAME_LENGTH = 500 |
Unreasonable channel name length.
Definition at line 73 of file pvaConstants.h.
const epics::pvData::int32 epics::pvAccess::MAX_SEARCH_BATCH_COUNT = 0x7FFF |
Maximum number of search requests in one search message.
Definition at line 67 of file pvaConstants.h.
const epics::pvData::int32 epics::pvAccess::MAX_TCP_RECV = 1024*16 |
TCP maximum receive message size.
Definition at line 64 of file pvaConstants.h.
const epics::pvData::int32 epics::pvAccess::MAX_UDP_RECV = 65487 |
UDP maximum receive message size.
MAX_UDP: 65535 (max UDP packet size) - 20/40(IPv4/IPv6) - 8(UDP)
Definition at line 61 of file pvaConstants.h.
const epics::pvData::int32 epics::pvAccess::MAX_UDP_UNFRAGMENTED_SEND = 1440 |
UDP maximum send message size.
MAX_UDP: 1500 (max of ethernet and 802.{2,3} MTU) - 20/40(IPv4/IPv6)
Definition at line 55 of file pvaConstants.h.
const epics::pvData::int32 epics::pvAccess::PVA_BROADCAST_PORT = 5076 |
Default PVA beacon port.
Definition at line 44 of file pvaConstants.h.
const epics::pvData::int16 epics::pvAccess::PVA_MESSAGE_HEADER_SIZE = 8 |
PVA protocol message header size.
Definition at line 47 of file pvaConstants.h.
const epics::pvData::int8 epics::pvAccess::PVA_PROTOCOL_REVISION = 1 |
PVA protocol revision (implemented by this library).
Definition at line 35 of file pvaConstants.h.
const epics::pvData::int32 epics::pvAccess::PVA_SERVER_PORT = 5075 |
Default PVA server port.
Definition at line 41 of file pvaConstants.h.
const epics::pvData::int8 epics::pvAccess::PVA_VERSION = 1 |
PVA version signature used to report this implementation version in header.
Definition at line 38 of file pvaConstants.h.
const std::string epics::pvAccess::PVACCESS_ALL_PROVIDERS |
"All-providers registered" PVA provider name.
const std::string epics::pvAccess::PVACCESS_DEBUG |
Name of the system env.
variable to turn on debugging.
const std::string epics::pvAccess::PVACCESS_DEFAULT_PROVIDER |
Default PVA provider name.