diff --git a/documentation/release_notes.h b/documentation/release_notes.h index bb47f7a..0729638 100644 --- a/documentation/release_notes.h +++ b/documentation/release_notes.h @@ -22,6 +22,7 @@ Release 6.0.0 (UNRELEASED) The "pva" and "ca" providers are registered with the clients() singleton. epics::pvAccess::ServerContext() looks up names with the servers() singleton. - Removed deprecated epics::pvAccess::Properties + - The data members of epics::pvAccess::MonitorElement become const, preventing these pointers from being re-targeted. - Simplifications - use of the epics::pvAccess::ChannelRequester interface is optional and may be omitted when calling createChannel(). diff --git a/examples/Makefile b/examples/Makefile index 5961f13..1d0b871 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -5,13 +5,25 @@ include $(TOP)/configure/CONFIG PROD_LIBS += pvAccessCA ca pvAccess pvData Com TESTPROD_HOST += getme +getme_SRCS = getme.cpp + TESTPROD_HOST += putme +putme_SRCS = putme.cpp + TESTPROD_HOST += monitorme +monitorme_SRCS = monitorme.cpp + TESTPROD_HOST += spamme +spamme_SRCS = spamme.cpp TESTPROD_HOST += miniget +miniget_SRCS = miniget.cpp + TESTPROD_HOST += miniput +miniput_SRCS = miniput.cpp + TESTPROD_HOST += minimonitor +minimonitor_SRCS = minimonitor.cpp include $(TOP)/configure/RULES #---------------------------------------- diff --git a/examples/monitorme.cpp b/examples/monitorme.cpp index bdb59a8..6e05b4e 100644 --- a/examples/monitorme.cpp +++ b/examples/monitorme.cpp @@ -258,7 +258,7 @@ int main(int argc, char *argv[]) { pvac::ClientChannel chan(provider.connect(pv)); - mon->mon = chan.monitor(mon.get()); + mon->mon = chan.monitor(mon.get(), pvReq); monitors.push_back(mon); } diff --git a/src/client/pv/monitor.h b/src/client/pv/monitor.h index 2f6a2d5..1d56398 100644 --- a/src/client/pv/monitor.h +++ b/src/client/pv/monitor.h @@ -49,17 +49,10 @@ typedef std::tr1::shared_ptr MonitorPtr; class epicsShareClass MonitorElement { public: POINTER_DEFINITIONS(MonitorElement); - MonitorElement(){} MonitorElement(epics::pvData::PVStructurePtr const & pvStructurePtr); const epics::pvData::PVStructurePtr pvStructurePtr; const epics::pvData::BitSet::shared_pointer changedBitSet; const epics::pvData::BitSet::shared_pointer overrunBitSet; - // info to assist monitor debugging - enum state_t { - Free, //!< data invalid. eg. on internal free list - Queued, //!< data valid. Owned by Monitor. Waiting for Monitor::poll() - InUse //!< data valid. Owned by MonitorRequester. Waiting for Monitor::release() - } state; class Ref; }; diff --git a/src/client/pvAccess.cpp b/src/client/pvAccess.cpp index 7577adb..731b752 100644 --- a/src/client/pvAccess.cpp +++ b/src/client/pvAccess.cpp @@ -143,7 +143,6 @@ MonitorElement::MonitorElement(epics::pvData::PVStructurePtr const & pvStructure : pvStructurePtr(pvStructurePtr) ,changedBitSet(epics::pvData::BitSet::create(static_cast(pvStructurePtr->getNumberFields()))) ,overrunBitSet(epics::pvData::BitSet::create(static_cast(pvStructurePtr->getNumberFields()))) - ,state(Free) {} }} // namespace epics::pvAccess diff --git a/src/remote/blockingUDPTransport.cpp b/src/remote/blockingUDPTransport.cpp index e8fc8e3..4387ce3 100644 --- a/src/remote/blockingUDPTransport.cpp +++ b/src/remote/blockingUDPTransport.cpp @@ -14,7 +14,6 @@ #include #include -#include #include #include diff --git a/src/remote/pv/blockingTCP.h b/src/remote/pv/blockingTCP.h index 61d2b61..c4c235b 100644 --- a/src/remote/pv/blockingTCP.h +++ b/src/remote/pv/blockingTCP.h @@ -17,7 +17,6 @@ #endif #include -#include #include #include #include diff --git a/src/remote/pv/blockingUDP.h b/src/remote/pv/blockingUDP.h index 5f34b86..8ccd69d 100644 --- a/src/remote/pv/blockingUDP.h +++ b/src/remote/pv/blockingUDP.h @@ -13,7 +13,6 @@ #endif #include -#include #include #include diff --git a/src/remote/pv/remote.h b/src/remote/pv/remote.h index 888315d..9d9b7fb 100644 --- a/src/remote/pv/remote.h +++ b/src/remote/pv/remote.h @@ -16,7 +16,6 @@ #include #include -#include #include #include diff --git a/src/remote/pv/security.h b/src/remote/pv/security.h index 75ccbb6..efb925f 100644 --- a/src/remote/pv/security.h +++ b/src/remote/pv/security.h @@ -14,7 +14,6 @@ #include #include -#include #include #include diff --git a/src/remoteClient/clientContextImpl.cpp b/src/remoteClient/clientContextImpl.cpp index 130d872..8495832 100644 --- a/src/remoteClient/clientContextImpl.cpp +++ b/src/remoteClient/clientContextImpl.cpp @@ -3912,23 +3912,15 @@ public: m_needSubscriptionUpdate = true; - int count = 0; - std::vector rrs(m_responseRequests.size()); for (IOIDResponseRequestMap::iterator iter = m_responseRequests.begin(); iter != m_responseRequests.end(); iter++) { - rrs[count++] = iter->second; + ResponseRequest::shared_pointer ptr(iter->second.lock()); + if(ptr) + EXCEPTION_GUARD(ptr->reportStatus(state)); } - ResponseRequest::shared_pointer ptr; - for (int i = 0; i< count; i++) - { - if((ptr = rrs[i].lock())) - { - EXCEPTION_GUARD(ptr->reportStatus(state)); - } - } } /**