425 FOREACH(channels_t::vector_type::const_iterator, it, end, toupdate)
430 FOREACH(TestPVChannel::monitors_t::vector_type::const_iterator, it2, end2, tomon)
437 mon->
overflow->pvStructurePtr->copyUnchecked(*
value, changed);
439 if(mon->
free.empty()) {
441 mon->
overflow->overrunBitSet->or_and(*mon->
overflow->changedBitSet, changed);
442 *mon->
overflow->changedBitSet |= changed;
443 testDiag(
"overflow changed '%s' overrun '%s'",
456 elem->pvStructurePtr->copyUnchecked(*mon->
overflow->pvStructurePtr);
457 *elem->changedBitSet = changed;
458 elem->overrunBitSet->
clear();
460 mon->
buffer.push_back(elem);
461 mon->
free.pop_front();
462 testDiag(
"push %p changed '%s' overflow '%s'", elem.get(),
463 toString(*elem->changedBitSet).c_str(),
464 toString(*elem->overrunBitSet).c_str());
470 pva::MonitorRequester::shared_pointer req(mon->
requester.lock());
473 req->monitorEvent(*it2);
#define assert(exp)
Declare that a condition should be true.
BitSet & clear(uint32 bitIndex)
#define FOREACH(ITERTYPE, IT, END, C)
const epics::pvData::MonitorRequester::weak_pointer requester
epics::pvData::MonitorElementPtr overflow
int testDiag(const char *fmt,...)
vector_type lock_vector() const
std::deque< epics::pvData::MonitorElementPtr > buffer
std::deque< epics::pvData::MonitorElementPtr > free
std::vector< value_pointer > vector_type
std::tr1::shared_ptr< MonitorElement > MonitorElementPtr
std::string toString(const T &tbs)