interim commit

This commit is contained in:
Marty Kraimer
2013-06-04 07:22:51 -04:00
parent 29df17d580
commit ea0e2cd570
3 changed files with 8 additions and 0 deletions

View File

@ -807,6 +807,7 @@ void ChannelLocal::destroy()
if(beingDestroyed) return;
beingDestroyed = true;
}
pvRecord->removePVRecordClient(getPtrSelf());
while(true) {
std::multiset<ChannelProcess::shared_pointer>::iterator it;
it = channelProcessList.begin();
@ -852,6 +853,10 @@ void ChannelLocal::destroy()
provider->removeChannel(getPtrSelf());
}
void ChannelLocal::detach(PVRecordPtr const & pvRecord)
{
destroy();
}
void ChannelLocal::addChannelProcess(ChannelProcess::shared_pointer const & channelProcess)
{

View File

@ -221,6 +221,7 @@ Channel::shared_pointer ChannelProviderLocal::createChannel(
std::cout << "ChannelProviderLocal::createChannel";
std::cout << " channelName " << channelName << std::endl;
}
pvRecord->addPVRecordClient(channel);
channelList.insert(channel);
return channel;
}

View File

@ -137,6 +137,7 @@ private:
class ChannelLocal :
public epics::pvAccess::Channel,
public PVRecordClient,
public std::tr1::enable_shared_from_this<ChannelLocal>
{
public:
@ -190,6 +191,7 @@ public:
epics::pvData::PVStructurePtr const &pvRequest);
virtual void printInfo();
virtual void printInfo(epics::pvData::StringBuilder out);
virtual void detach(PVRecordPtr const &pvRecord);
// following called by derived classes
void addChannelProcess(epics::pvAccess::ChannelProcess::shared_pointer const &);
void addChannelGet(epics::pvAccess::ChannelGet::shared_pointer const &);