void PvaClientChannelCache::addChannel(PvaClientChannelPtr const & pvaClientChannel) { Channel::shared_pointer channel = pvaClientChannel->getChannel(); string name = channel->getChannelName() + channel->getProvider()->getProviderName(); pvaClientChannelMap.insert(std::pair<string,PvaClientChannelPtr>( name,pvaClientChannel)); }
bool PvaClientMultiChannel::connectionChange() { for(size_t i=0; i<numChannel; ++i) { PvaClientChannelPtr pvaClientChannel = pvaClientChannelArray[i]; Channel::shared_pointer channel = pvaClientChannel->getChannel(); Channel::ConnectionState stateNow = channel->getConnectionState(); bool connectedNow = stateNow==Channel::CONNECTED ? true : false; if(connectedNow!=isConnected[i]) return true; } return false; }
bool PvaClientMultiChannel::connectionChange() { if(isDestroyed) throw std::runtime_error("pvaClientMultiChannel was destroyed"); for(size_t i=0; i<numChannel; ++i) { PvaClientChannelPtr pvaClientChannel = pvaClientChannelArray[i]; Channel::shared_pointer channel = pvaClientChannel->getChannel(); Channel::ConnectionState stateNow = channel->getConnectionState(); bool connectedNow = stateNow==Channel::CONNECTED ? true : false; if(connectedNow!=isConnected[i]) return true; } return false; }
void PvaClientChannelCache::addChannel(PvaClientChannelPtr const & pvaClientChannel) { Channel::shared_pointer channel = pvaClientChannel->getChannel(); string name = channel->getChannelName() + channel->getProvider()->getProviderName(); map<string,PvaClientChannelPtr>::iterator iter = pvaClientChannelMap.find(name); if(iter!=pvaClientChannelMap.end()) { throw std::runtime_error("pvaClientChannelCache::addChannel channel already cached"); } pvaClientChannelMap.insert(std::pair<string,PvaClientChannelPtr>( name,pvaClientChannel)); }
void PvaClientChannelCache::showCache() { map<string,PvaClientChannelPtr>::iterator iter; for(iter = pvaClientChannelMap.begin(); iter != pvaClientChannelMap.end(); ++iter) { PvaClientChannelPtr pvaChannel = iter->second; Channel::shared_pointer channel = pvaChannel->getChannel(); string channelName = channel->getChannelName(); string providerName = channel->getProvider()->getProviderName(); cout << "channel " << channelName << " provider " << providerName << endl; pvaChannel->showCache(); } }
epics::pvData::shared_vector<epics::pvData::boolean> PvaClientMultiChannel::getIsConnected() { for(size_t i=0; i<numChannel; ++i) { PvaClientChannelPtr pvaClientChannel = pvaClientChannelArray[i]; if(!pvaClientChannel) { isConnected[i] = false; continue; } Channel::shared_pointer channel = pvaClientChannel->getChannel(); Channel::ConnectionState stateNow = channel->getConnectionState(); isConnected[i] = (stateNow==Channel::CONNECTED) ? true : false; } return isConnected; }
PvaClientProcess::PvaClientProcess( PvaClientPtr const &pvaClient, PvaClientChannelPtr const & pvaClientChannel, PVStructurePtr const &pvRequest) : pvaClient(pvaClient), pvaClientChannel(pvaClientChannel), pvRequest(pvRequest), connectState(connectIdle), processState(processIdle) { if(PvaClient::getDebug()) { cout<< "PvaClientProcess::PvaClientProcess()" << " channelName " << pvaClientChannel->getChannel()->getChannelName() << endl; } }
PvaClientProcessPtr PvaClientProcess::create( PvaClientPtr const &pvaClient, PvaClientChannelPtr const & pvaClientChannel, PVStructurePtr const &pvRequest) { if(PvaClient::getDebug()) { cout<< "PvaClientProcess::create(pvaClient,channelName,pvRequest)\n" << " channelName " << pvaClientChannel->getChannel()->getChannelName() << " pvRequest " << pvRequest << endl; } PvaClientProcessPtr channelProcess(new PvaClientProcess(pvaClient,pvaClientChannel,pvRequest)); channelProcess->channelProcessRequester = ChannelProcessRequesterImplPtr( new ChannelProcessRequesterImpl(channelProcess,pvaClient)); return channelProcess; }