#include <pvahelper.h>
Classes | |
struct | no_overflow |
Public Types | |
typedef epics::pvAccess::MonitorRequester | requester_t |
typedef epicsGuard< epicsMutex > | guard_t |
typedef epicsGuardRelease < epicsMutex > | unguard_t |
Public Member Functions | |
POINTER_DEFINITIONS (BaseMonitor) | |
shared_pointer | shared_from_this () |
BaseMonitor (epicsMutex &lock, const requester_t::weak_pointer &requester, const epics::pvData::PVStructure::shared_pointer &pvReq) | |
const epics::pvData::PVStructurePtr & | getValue () |
void | connect (guard_t &guard, const epics::pvData::PVStructurePtr &value) |
bool | post (guard_t &guard, const epics::pvData::BitSet &updated, no_overflow) |
post update if queue not full, if full return false w/o overflow | |
bool | post (guard_t &guard) |
post update of pending changes. eg. call from requestUpdate() | |
bool | post (guard_t &guard, const epics::pvData::BitSet &updated, const epics::pvData::BitSet &overflowed) |
post update with changed and overflowed masks (eg. when updates were lost in some upstream queue) | |
bool | post (guard_t &guard, const epics::pvData::BitSet &updated) |
post update with changed | |
virtual void | onStart () |
virtual void | onStop () |
virtual void | requestUpdate () |
virtual void | destroy () |
virtual void | getStats (Stats &s) const |
Public Attributes | |
weak_pointer | weakself |
epicsMutex & | lock |
Helper which implements a Monitor queue. connect()s to a complete copy of a PVStructure. When this struct has changed, post(BitSet) should be called.
Derived class may use onStart(), onStop(), and requestUpdate() to react to subscriber events.
Definition at line 69 of file pvahelper.h.
|
inline |
Must call before first post(). Sets .complete and calls monitorConnect()
Definition at line 110 of file pvahelper.h.
|
inlinevirtual |
called when within release() when the opportunity exists to end the overflow condition May do nothing, or lock and call post()
Reimplemented in PDBGroupMonitor, and PDBSingleMonitor.
Definition at line 271 of file pvahelper.h.