#include "chancache.h"
Definition at line 67 of file chancache.h.
MonitorUser::MonitorUser |
( |
const MonitorCacheEntry::shared_pointer & |
e | ) |
|
Definition at line 244 of file moncache.cpp.
MonitorCacheEntry::shared_pointer entry
EPICS_ATOMIC_INLINE size_t epicsAtomicIncrSizeT(size_t *pTarget)
static size_t num_instances
MonitorUser::~MonitorUser |
( |
| ) |
|
|
virtual |
Definition at line 255 of file moncache.cpp.
EPICS_ATOMIC_INLINE size_t epicsAtomicDecrSizeT(size_t *pTarget)
static size_t num_instances
void MonitorUser::destroy |
( |
| ) |
|
|
virtual |
std::string MonitorUser::getRequesterName |
( |
| ) |
|
|
virtual |
Definition at line 378 of file moncache.cpp.
380 return "MonitorCacheEntry";
epicsMutex& MonitorUser::mutex |
( |
| ) |
const |
|
inline |
If monitor has occurred return data.
- Returns
- monitorElement for modified data. Must call get to determine if data is available.
May recursively call MonitorRequester::unlisten()
Implements epics::pvAccess::Monitor.
Definition at line 332 of file moncache.cpp.
epicsMutex & mutex() const
std::tr1::shared_ptr< MonitorElement > MonitorElementPtr
std::deque< epics::pvData::MonitorElementPtr > filled
std::set< epics::pvData::MonitorElementPtr > inuse
void MonitorUser::release |
( |
epics::pvData::MonitorElementPtr const & |
monitorElement | ) |
|
|
virtual |
Definition at line 346 of file moncache.cpp.
350 std::set<epics::pvData::MonitorElementPtr>::iterator it =
inuse.find(monitorElement);
351 if(it!=
inuse.end()) {
367 empty.push_back(monitorElement);
372 throw std::invalid_argument(
"Can't release MonitorElement not in use");
std::deque< epics::pvData::MonitorElementPtr > empty
epics::pvData::MonitorElementPtr overflowElement
epicsMutex & mutex() const
std::deque< epics::pvData::MonitorElementPtr > filled
std::set< epics::pvData::MonitorElementPtr > inuse
Start monitoring.
- Returns
- completion status.
Implements epics::pvAccess::Monitor.
Definition at line 271 of file moncache.cpp.
273 pvd::MonitorRequester::shared_pointer
req(this->
req.lock());
281 if(!
entry->startresult.isSuccess())
282 return entry->startresult;
286 lval =
entry->lastelem->pvStructurePtr;
294 for(
unsigned i=0;
i<
empty.size();
i++) {
304 if(lval && !
empty.empty()) {
308 elem->pvStructurePtr->copy(*lval);
309 elem->changedBitSet->set(0);
310 elem->overrunBitSet->clear();
epics::pvData::MonitorRequester::weak_pointer req
std::deque< epics::pvData::MonitorElementPtr > empty
std::tr1::shared_ptr< const Structure > StructureConstPtr
An element for a monitorQueue.
epics::pvData::MonitorElementPtr overflowElement
std::tr1::shared_ptr< PVDataCreate > PVDataCreatePtr
std::tr1::shared_ptr< PVStructure > PVStructurePtr
std::tr1::shared_ptr< MonitorElement > MonitorElementPtr
FORCE_INLINE const PVDataCreatePtr & getPVDataCreate()
std::deque< epics::pvData::MonitorElementPtr > filled
std::deque<epics::pvData::MonitorElementPtr> MonitorUser::empty |
MonitorCacheEntry::shared_pointer MonitorUser::entry |
std::deque<epics::pvData::MonitorElementPtr> MonitorUser::filled |
bool MonitorUser::initial |
bool MonitorUser::inoverflow |
std::set<epics::pvData::MonitorElementPtr> MonitorUser::inuse |
size_t MonitorUser::ndropped |
size_t MonitorUser::nevents |
size_t MonitorUser::num_instances |
|
static |
size_t MonitorUser::nwakeups |
epics::pvData::MonitorElementPtr MonitorUser::overflowElement |
epics::pvData::MonitorRequester::weak_pointer MonitorUser::req |
bool MonitorUser::running |
std::tr1::weak_ptr<GWChannel> MonitorUser::srvchan |
weak_pointer MonitorUser::weakref |
The documentation for this struct was generated from the following files: