This is Unofficial EPICS BASE Doxygen Site
PDBGroupMonitor Struct Reference

#include "pdbgroup.h"

+ Inheritance diagram for PDBGroupMonitor:
+ Collaboration diagram for PDBGroupMonitor:

Public Member Functions

 POINTER_DEFINITIONS (PDBGroupMonitor)
 
 PDBGroupMonitor (const PDBGroupPV::shared_pointer &pv, const requester_type::weak_pointer &requester, const epics::pvData::PVStructure::shared_pointer &pvReq)
 
virtual ~PDBGroupMonitor ()
 
virtual void onStart () OVERRIDE FINAL
 
virtual void onStop () OVERRIDE FINAL
 
virtual void requestUpdate () OVERRIDE FINAL
 
virtual void destroy () OVERRIDE FINAL
 
- Public Member Functions inherited from BaseMonitor
 POINTER_DEFINITIONS (BaseMonitor)
 
shared_pointer shared_from_this ()
 
 BaseMonitor (epicsMutex &lock, const requester_t::weak_pointer &requester, const epics::pvData::PVStructure::shared_pointer &pvReq)
 
virtual ~BaseMonitor ()
 
const epics::pvData::PVStructurePtrgetValue ()
 
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 More...
 
bool post (guard_t &guard)
 post update of pending changes. eg. call from requestUpdate() More...
 
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) More...
 
bool post (guard_t &guard, const epics::pvData::BitSet &updated)
 post update with changed More...
 
virtual void getStats (Stats &s) const
 
- Public Member Functions inherited from epics::pvAccess::Monitor
 POINTER_DEFINITIONS (Monitor)
 
virtual ~Monitor ()
 
virtual void reportRemoteQueueStatus (epics::pvData::int32 freeElements)
 
- Public Member Functions inherited from epics::pvAccess::Destroyable
 POINTER_DEFINITIONS (Destroyable)
 

Public Attributes

PDBGroupPV::shared_pointer pv
 
bool atomic
 
- Public Attributes inherited from BaseMonitor
weak_pointer weakself
 
epicsMutex & lock
 

Static Public Attributes

static size_t num_instances
 

Additional Inherited Members

- Public Types inherited from BaseMonitor
typedef epics::pvAccess::MonitorRequester requester_t
 
typedef epicsGuard< epicsMutex > guard_t
 
typedef epicsGuardRelease< epicsMutex > unguard_t
 
- Public Types inherited from epics::pvAccess::Monitor
typedef MonitorRequester requester_type
 
- Protected Member Functions inherited from epics::pvAccess::Destroyable
virtual ~Destroyable ()
 

Detailed Description

Definition at line 196 of file pdbgroup.h.

Constructor & Destructor Documentation

PDBGroupMonitor::PDBGroupMonitor ( const PDBGroupPV::shared_pointer &  pv,
const requester_type::weak_pointer &  requester,
const epics::pvData::PVStructure::shared_pointer &  pvReq 
)

Definition at line 418 of file pdbgroup.cpp.

421  :BaseMonitor(pv->lock, requester, pvReq)
422  ,pv(pv)
423 {
424  epics::atomic::increment(num_instances);
425 }
PDBGroupPV::shared_pointer pv
Definition: pdbgroup.h:200
Definition: tool_lib.h:67
const ChannelProcessRequester::weak_pointer requester
Definition: pvAccess.cpp:68
static size_t num_instances
Definition: pdbgroup.h:204
BaseMonitor(epicsMutex &lock, const requester_t::weak_pointer &requester, const epics::pvData::PVStructure::shared_pointer &pvReq)
Definition: pvahelper.h:94
PDBGroupMonitor::~PDBGroupMonitor ( )
virtual

Definition at line 427 of file pdbgroup.cpp.

428 {
429  destroy();
430  epics::atomic::decrement(num_instances);
431 }
virtual void destroy() OVERRIDE FINAL
Definition: pdbgroup.cpp:433
static size_t num_instances
Definition: pdbgroup.h:204

Member Function Documentation

void PDBGroupMonitor::destroy ( )
virtual

Destroy this instance.

Reimplemented from BaseMonitor.

Definition at line 433 of file pdbgroup.cpp.

434 {
436  PDBGroupPV::shared_pointer pv;
437  {
438  Guard G(lock);
439  this->pv.swap(pv);
440  }
441 }
PDBGroupPV::shared_pointer pv
Definition: pdbgroup.h:200
virtual void destroy()
Definition: pvahelper.h:273
epicsMutex & lock
Definition: pvahelper.h:77
void PDBGroupMonitor::onStart ( )
virtual

Reimplemented from BaseMonitor.

Definition at line 443 of file pdbgroup.cpp.

444 {
445  pv->addMonitor(this);
446 }
Definition: tool_lib.h:67
void PDBGroupMonitor::onStop ( )
virtual

Reimplemented from BaseMonitor.

Definition at line 448 of file pdbgroup.cpp.

449 {
450  pv->removeMonitor(this);
451 }
Definition: tool_lib.h:67
PDBGroupMonitor::POINTER_DEFINITIONS ( PDBGroupMonitor  )
void PDBGroupMonitor::requestUpdate ( )
virtual

called when within release() when the opportunity exists to end the overflow condition May do nothing, or lock and call post()

Reimplemented from BaseMonitor.

Definition at line 453 of file pdbgroup.cpp.

454 {
455  Guard G(pv->lock);
456  post(G);
457 }
Definition: tool_lib.h:67
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
Definition: pvahelper.h:136

Member Data Documentation

bool PDBGroupMonitor::atomic

Definition at line 202 of file pdbgroup.h.

size_t PDBGroupMonitor::num_instances
static

Definition at line 204 of file pdbgroup.h.

PDBGroupPV::shared_pointer PDBGroupMonitor::pv

Definition at line 200 of file pdbgroup.h.


The documentation for this struct was generated from the following files: