From ae49f8ad99a48bd3fe50f1d63580b0c3764f4bc6 Mon Sep 17 00:00:00 2001 From: mrkraimer Date: Thu, 6 Jul 2017 14:04:26 -0400 Subject: [PATCH] add PvaClientMonitor::getPvaClientChannel() --- documentation/htmldoxygen/README.md | 5 ++ documentation/htmldoxygen/pvaClient.html | 51 +++++++++++++++++++ .../htmldoxygen/pvaClientChannel.html | 44 ++++++++++++++++ .../htmldoxygen/pvaClientChannelGet.html | 44 ++++++++++++++++ .../htmldoxygen/pvaClientChannelProcess.html | 44 ++++++++++++++++ .../htmldoxygen/pvaClientChannelPut.html | 44 ++++++++++++++++ .../htmldoxygen/pvaClientChannelPutGet.html | 44 ++++++++++++++++ .../pvaClientChannelStateChangeRequester.html | 44 ++++++++++++++++ .../htmldoxygen/pvaClientGetData.html | 44 ++++++++++++++++ .../htmldoxygen/pvaClientMonitor.html | 26 +++++----- .../htmldoxygen/pvaClientMonitorData.html | 44 ++++++++++++++++ .../pvaClientMonitorRequester.html | 44 ++++++++++++++++ .../htmldoxygen/pvaClientProcess.html | 44 ++++++++++++++++ .../htmldoxygen/pvaClientPutData.html | 44 ++++++++++++++++ documentation/htmldoxygen/pvaClientRPC.html | 44 ++++++++++++++++ .../htmldoxygen/pvaClientRPCRequester.html | 44 ++++++++++++++++ src/pv/pvaClient.h | 35 +++++++++---- src/pvaClientMonitor.cpp | 5 ++ 18 files changed, 671 insertions(+), 23 deletions(-) create mode 100644 documentation/htmldoxygen/README.md create mode 100644 documentation/htmldoxygen/pvaClient.html create mode 100644 documentation/htmldoxygen/pvaClientChannel.html create mode 100644 documentation/htmldoxygen/pvaClientChannelGet.html create mode 100644 documentation/htmldoxygen/pvaClientChannelProcess.html create mode 100644 documentation/htmldoxygen/pvaClientChannelPut.html create mode 100644 documentation/htmldoxygen/pvaClientChannelPutGet.html create mode 100644 documentation/htmldoxygen/pvaClientChannelStateChangeRequester.html create mode 100644 documentation/htmldoxygen/pvaClientGetData.html create mode 100644 documentation/htmldoxygen/pvaClientMonitorData.html create mode 100644 documentation/htmldoxygen/pvaClientMonitorRequester.html create mode 100644 documentation/htmldoxygen/pvaClientProcess.html create mode 100644 documentation/htmldoxygen/pvaClientPutData.html create mode 100644 documentation/htmldoxygen/pvaClientRPC.html create mode 100644 documentation/htmldoxygen/pvaClientRPCRequester.html diff --git a/documentation/htmldoxygen/README.md b/documentation/htmldoxygen/README.md new file mode 100644 index 0000000..372621f --- /dev/null +++ b/documentation/htmldoxygen/README.md @@ -0,0 +1,5 @@ +NOT FOR DIRECT USE +================== + +This directory holds files that are used by doxygen. +The files are not meant to be read except via the doxygen documention. diff --git a/documentation/htmldoxygen/pvaClient.html b/documentation/htmldoxygen/pvaClient.html new file mode 100644 index 0000000..ccaccc4 --- /dev/null +++ b/documentation/htmldoxygen/pvaClient.html @@ -0,0 +1,51 @@ + + + + + + PvaClient + + + + + + + + +

PvaClient

+ +

+Not Yet Written +

+ +

Overview

+

+pvaClient is a synchronous wrapper for the pvAccess API, which is a callback based API. +Thus it is easier to use than pvAccess itself. +In addition pvaClient provides many convenience methods. +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientChannel.html b/documentation/htmldoxygen/pvaClientChannel.html new file mode 100644 index 0000000..8ba227e --- /dev/null +++ b/documentation/htmldoxygen/pvaClientChannel.html @@ -0,0 +1,44 @@ + + + + + + PvaClientChannel + + + + + + + + +

PvaClientChannel

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientChannelGet.html b/documentation/htmldoxygen/pvaClientChannelGet.html new file mode 100644 index 0000000..cab66cb --- /dev/null +++ b/documentation/htmldoxygen/pvaClientChannelGet.html @@ -0,0 +1,44 @@ + + + + + + PvaClientGet + + + + + + + + +

PvaClientGet

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientChannelProcess.html b/documentation/htmldoxygen/pvaClientChannelProcess.html new file mode 100644 index 0000000..70dda71 --- /dev/null +++ b/documentation/htmldoxygen/pvaClientChannelProcess.html @@ -0,0 +1,44 @@ + + + + + + PvaClientProcess + + + + + + + + +

PvaClientProcess

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientChannelPut.html b/documentation/htmldoxygen/pvaClientChannelPut.html new file mode 100644 index 0000000..882887a --- /dev/null +++ b/documentation/htmldoxygen/pvaClientChannelPut.html @@ -0,0 +1,44 @@ + + + + + + PvaClientChannelPut + + + + + + + + +

PvaClientChannelPut

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientChannelPutGet.html b/documentation/htmldoxygen/pvaClientChannelPutGet.html new file mode 100644 index 0000000..e8d6aec --- /dev/null +++ b/documentation/htmldoxygen/pvaClientChannelPutGet.html @@ -0,0 +1,44 @@ + + + + + + PvaClientPutGet + + + + + + + + +

PvaClientPutGet

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientChannelStateChangeRequester.html b/documentation/htmldoxygen/pvaClientChannelStateChangeRequester.html new file mode 100644 index 0000000..48d0ae6 --- /dev/null +++ b/documentation/htmldoxygen/pvaClientChannelStateChangeRequester.html @@ -0,0 +1,44 @@ + + + + + + PvaClientChannelStateChangeRequester + + + + + + + + +

PvaClientChannelStateChangeRequester

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientGetData.html b/documentation/htmldoxygen/pvaClientGetData.html new file mode 100644 index 0000000..06ac804 --- /dev/null +++ b/documentation/htmldoxygen/pvaClientGetData.html @@ -0,0 +1,44 @@ + + + + + + PvaClientGetData + + + + + + + + +

PvaClientGetData

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientMonitor.html b/documentation/htmldoxygen/pvaClientMonitor.html index 36d6461..f3b3f25 100644 --- a/documentation/htmldoxygen/pvaClientMonitor.html +++ b/documentation/htmldoxygen/pvaClientMonitor.html @@ -34,28 +34,30 @@

PvaClientMonitor

- +

+NOTE: This is a work in progress. +

Overview

This provides an easier way to create a monitor on a channel than to use pvAccessCPP itself. It provides two main ways to create a monitor:

-

The client first creates a pvaClientChannel and then creates a monitor

+

The client first creates a PvaClientMonitorChannel and then creates a monitor

The client calls:
 static PvaClientMonitorPtr create(
-    PvaClientPtr const &pvaClient,
-    PvaClientChannelPtr const & pvaClientChannel,
+    PvaClientMonitorPtr const &PvaClientMonitor,
+    PvaClientMonitorChannelPtr const & PvaClientMonitorChannel,
     epics::pvData::PVStructurePtr const &pvRequest
 );
 
 where
 
-pvaClient
-    The pvaClient.
+PvaClientMonitor
+    The PvaClientMonitor.
 
-pvaClientChannel
-    The pvaClientChannel that has already been created by the client.
+PvaClientMonitorChannel
+    The PvaClientMonitorChannel that has already been created by the client.
 
 pvRequest
     The pvRequest for creating the monitor.
@@ -66,18 +68,18 @@ This method blocks while the monitor is created.
 The client calls:
 
 static PvaClientMonitorPtr create(
-    PvaClientPtr const &pvaClient,
+    PvaClientMonitorPtr const &PvaClientMonitor,
     std::string const & channelName,
     std::string const & providerName,
     std::string const & request,
-    PvaClientChannelStateChangeRequesterPtr const & stateChangeRequester,
+    PvaClientMonitorChannelStateChangeRequesterPtr const & stateChangeRequester,
     PvaClientMonitorRequesterPtr const & monitorRequester
 );
 
 where
 
-pvaClient
-    The pvaClient.
+PvaClientMonitor
+    The PvaClientMonitor.
 
 channelName
     The name of the channel.
diff --git a/documentation/htmldoxygen/pvaClientMonitorData.html b/documentation/htmldoxygen/pvaClientMonitorData.html
new file mode 100644
index 0000000..0d8b29b
--- /dev/null
+++ b/documentation/htmldoxygen/pvaClientMonitorData.html
@@ -0,0 +1,44 @@
+
+
+
+
+  
+  PvaClientMonitotData
+  
+  
+  
+  
+  
+
+
+
+

PvaClientMonitotData

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientMonitorRequester.html b/documentation/htmldoxygen/pvaClientMonitorRequester.html new file mode 100644 index 0000000..43d36bd --- /dev/null +++ b/documentation/htmldoxygen/pvaClientMonitorRequester.html @@ -0,0 +1,44 @@ + + + + + + PvaClientMonitorRequester + + + + + + + + +

PvaClientMonitorRequester

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientProcess.html b/documentation/htmldoxygen/pvaClientProcess.html new file mode 100644 index 0000000..70dda71 --- /dev/null +++ b/documentation/htmldoxygen/pvaClientProcess.html @@ -0,0 +1,44 @@ + + + + + + PvaClientProcess + + + + + + + + +

PvaClientProcess

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientPutData.html b/documentation/htmldoxygen/pvaClientPutData.html new file mode 100644 index 0000000..c51d21c --- /dev/null +++ b/documentation/htmldoxygen/pvaClientPutData.html @@ -0,0 +1,44 @@ + + + + + + PvaClientPutData + + + + + + + + +

PvaClientPutData

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientRPC.html b/documentation/htmldoxygen/pvaClientRPC.html new file mode 100644 index 0000000..4a754c1 --- /dev/null +++ b/documentation/htmldoxygen/pvaClientRPC.html @@ -0,0 +1,44 @@ + + + + + + PvaClientRPC + + + + + + + + +

PvaClientRPC

+ +

+Not Yet Written +

+ + + + diff --git a/documentation/htmldoxygen/pvaClientRPCRequester.html b/documentation/htmldoxygen/pvaClientRPCRequester.html new file mode 100644 index 0000000..1476214 --- /dev/null +++ b/documentation/htmldoxygen/pvaClientRPCRequester.html @@ -0,0 +1,44 @@ + + + + + + PvaClientRPCRequester + + + + + + + + +

PvaClientRPCRequester

+ +

+Not Yet Written +

+ + + + diff --git a/src/pv/pvaClient.h b/src/pv/pvaClient.h index 8a3bb46..61baf49 100644 --- a/src/pv/pvaClient.h +++ b/src/pv/pvaClient.h @@ -3,6 +3,10 @@ * EPICS pvData is distributed subject to a Software License Agreement found * in file LICENSE that is included with this distribution. */ +/** + * @author mrk + * @date 2015.02 + */ #ifndef PVACLIENT_H #define PVACLIENT_H @@ -82,11 +86,7 @@ typedef std::tr1::shared_ptr PvaClientChannelCachePtr; /** * @brief pvaClient is a synchronous wrapper for the pvAccess API, which is a callback based API. * - * Thus it is easier to use than pvAccess itself. - * In addition pvaClient provides many convenience methods. - * - * @author mrk - * @date 2015.02 + * pvaClient */ class epicsShareClass PvaClient : public epics::pvData::Requester, @@ -197,7 +197,8 @@ typedef std::tr1::shared_ptr PvaClientPutCachePtr; /** * @brief A callback for change in connection status. * - * @author mrk + * pvaClientChannelStateChangeRequesterpvaClientChannel */ class epicsShareClass PvaClientChannel : @@ -469,6 +470,7 @@ public: /** * @brief A class that holds data returned by PvaClientGet or PvaClientPutGet * + * pvaClientGetData */ class epicsShareClass PvaClientGetData { @@ -607,6 +609,7 @@ class PvaClientPostHandlerPvt; // private to PvaClientPutData /** * @brief A class that holds data given to by PvaClientPut or PvaClientPutGet * + * pvaClientPutData */ class epicsShareClass PvaClientPutData { @@ -745,6 +748,7 @@ private: /** * @brief A class that holds data returned by PvaClientMonitor * + * pvaClientMonitorData */ class epicsShareClass PvaClientMonitorData { @@ -902,7 +906,7 @@ typedef std::tr1::shared_ptr ChannelProcessRequeste /** * @brief An easy to use alternative to ChannelProcess. * - * @author mrk + * pvaClientChannelProcess */ class epicsShareClass PvaClientProcess { @@ -996,7 +1000,7 @@ typedef std::tr1::shared_ptr ChannelGetRequesterImplPtr /** * @brief An easy to use alternative to ChannelGet. * - * @author mrk + * pvaClientChannelGet */ class epicsShareClass PvaClientGet { @@ -1103,7 +1107,7 @@ typedef std::tr1::shared_ptr ChannelPutRequesterImplPtr /** * @brief An easy to use alternative to ChannelPut. * - * @author mrk + * pvaClientChannelPut */ class epicsShareClass PvaClientPut { @@ -1222,7 +1226,7 @@ typedef std::tr1::shared_ptr ChannelPutGetRequesterI /** * @brief An easy to use alternative to ChannelPutGet. * - * @author mrk + * pvaClientChannelPutGet */ class epicsShareClass PvaClientPutGet { @@ -1365,6 +1369,7 @@ private : /** * @brief Optional client callback. * + * pvaClientMonitorRequester */ class PvaClientMonitorRequester { @@ -1483,7 +1488,13 @@ public: /** @brief Release the monitorElement returned by poll */ void releaseEvent(); + /** @brief Get the PvaClientChannel; + * + * @return The interface. + */ + PvaClientChannelPtr getPvaClientChannel(); /** @brief The data in which monitor events are placed. + * * @return The interface. */ PvaClientMonitorDataPtr getData(); @@ -1541,6 +1552,7 @@ public: /** * @brief Optional client callback. * + * pvaClientRPCRequester */ class PvaClientRPCRequester { @@ -1566,6 +1578,7 @@ typedef std::tr1::shared_ptr RPCRequesterImplPtr; /** * @brief An easy to use alternative to RPC. * + * pvaClientRPC */ class epicsShareClass PvaClientRPC : public std::tr1::enable_shared_from_this diff --git a/src/pvaClientMonitor.cpp b/src/pvaClientMonitor.cpp index 8b78d81..57ecaa8 100644 --- a/src/pvaClientMonitor.cpp +++ b/src/pvaClientMonitor.cpp @@ -489,6 +489,11 @@ void PvaClientMonitor::releaseEvent() monitor->release(monitorElement); } +PvaClientChannelPtr PvaClientMonitor::getPvaClientChannel() +{ + return pvaClientChannel; +} + PvaClientMonitorDataPtr PvaClientMonitor::getData() { if(PvaClient::getDebug()) {