ChannelPutLocalPtr ChannelPutLocal::create( ChannelLocalPtr const &channelLocal, ChannelPutRequester::shared_pointer const & channelPutRequester, PVStructurePtr const & pvRequest, PVRecordPtr const &pvRecord) { PVCopyPtr pvCopy = PVCopy::create( pvRecord->getPVRecordStructure()->getPVStructure(), pvRequest, ""); if(!pvCopy) { Status status( Status::STATUSTYPE_ERROR, "invalid pvRequest"); ChannelPut::shared_pointer channelPut; PVStructurePtr pvStructure; BitSetPtr bitSet; channelPutRequester->channelPutConnect( status, channelPut, nullStructure); ChannelPutLocalPtr localPut; return localPut; } ChannelPutLocalPtr put(new ChannelPutLocal( getProcess(pvRequest,true), channelLocal, channelPutRequester, pvCopy, pvRecord)); channelPutRequester->channelPutConnect( Status::Ok, put, pvCopy->getStructure()); if(pvRecord->getTraceLevel()>0) { cout << "ChannelPutLocal::create"; cout << " recordName " << pvRecord->getRecordName() << endl; } return put; }
ChannelPut::shared_pointer ChannelBase::createChannelPut( ChannelPutRequester::shared_pointer const &channelPutRequester, PVStructure::shared_pointer const &pvRequest) { Status status(Status::STATUSTYPE_ERROR, String("ChannelPut not supported")); channelPutRequester->channelPutConnect( status, ChannelPut::shared_pointer(), PVStructure::shared_pointer(), BitSet::shared_pointer()); return ChannelPut::shared_pointer(); }
ChannelPut::shared_pointer DbPv::createChannelPut( ChannelPutRequester::shared_pointer const &channelPutRequester, PVStructure::shared_pointer const &pvRequest) { DbPvPut::shared_pointer dbPvPut( new DbPvPut(getPtrSelf(),channelPutRequester)); if(!dbPvPut->init(pvRequest)) { Status createFailed(Status::STATUSTYPE_ERROR, "create dbPvPut failed"); channelPutRequester->channelPutConnect( createFailed, dbPvPut, nullStructure); } return dbPvPut; }