void PvaClientPut::getDone( const Status& status, ChannelPut::shared_pointer const & channelPut, PVStructurePtr const & pvStructure, BitSetPtr const & bitSet) { if(PvaClient::getDebug()) { cout << "PvaClientPut::getDone" << " channelName " << pvaClientChannel->getChannel()->getChannelName() << " status.isOK " << (status.isOK() ? "true" : "false") << endl; } { Lock xx(mutex); channelGetPutStatus = status; if(status.isOK()) { PVStructurePtr pvs = pvaClientData->getPVStructure(); pvs->copyUnchecked(*pvStructure,*bitSet); BitSetPtr bs = pvaClientData->getChangedBitSet(); bs->clear(); *bs |= *bitSet; putState = putComplete; } } PvaClientPutRequesterPtr req(pvaClientPutRequester.lock()); if(req) { req->getDone(status,shared_from_this()); } waitForGetPut.signal(); }
void PvaClientPutGet::getPutDone( const Status& status, ChannelPutGet::shared_pointer const & channelPutGet, PVStructurePtr const & putPVStructure, BitSetPtr const & putBitSet) { if(isDestroyed) throw std::runtime_error("pvaClientPutGet was destroyed"); channelPutGetStatus = status; if(status.isOK()) { PVStructurePtr pvs = pvaClientPutData->getPVStructure(); pvs->copyUnchecked(*putPVStructure,*putBitSet); BitSetPtr bs = pvaClientPutData->getChangedBitSet(); bs->clear(); *bs |= *putBitSet; } waitForPutGet.signal(); }