make more compatible with pvDatabaseJava; work on on-line delete and also termination
This commit is contained in:
@@ -53,7 +53,7 @@ public:
|
||||
}
|
||||
virtual ChannelProvider::shared_pointer newInstance()
|
||||
{
|
||||
return channelProvider;
|
||||
throw std::logic_error("newInstance not Implemented");
|
||||
}
|
||||
private:
|
||||
LocalChannelProviderFactory(
|
||||
@@ -76,7 +76,7 @@ ChannelProviderLocalPtr getChannelProviderLocal()
|
||||
channelProviderLocal->channelFinder =
|
||||
SyncChannelFind::shared_pointer(new SyncChannelFind(xxx));
|
||||
LocalChannelProviderFactoryPtr factory(LocalChannelProviderFactory::create(channelProviderLocal));
|
||||
registerChannelProviderFactory(factory);
|
||||
|
||||
}
|
||||
return channelProviderLocal;
|
||||
}
|
||||
@@ -89,7 +89,6 @@ ChannelProviderLocal::ChannelProviderLocal()
|
||||
|
||||
ChannelProviderLocal::~ChannelProviderLocal()
|
||||
{
|
||||
// TODO should I call destroy() here
|
||||
destroy();
|
||||
}
|
||||
|
||||
@@ -99,6 +98,7 @@ void ChannelProviderLocal::destroy()
|
||||
if(beingDestroyed) return;
|
||||
beingDestroyed = true;
|
||||
pvDatabase->destroy();
|
||||
pvDatabase.reset();
|
||||
}
|
||||
|
||||
string ChannelProviderLocal::getProviderName()
|
||||
@@ -145,15 +145,6 @@ Channel::shared_pointer ChannelProviderLocal::createChannel(
|
||||
string const & channelName,
|
||||
ChannelRequester::shared_pointer const &channelRequester,
|
||||
short priority)
|
||||
{
|
||||
return createChannel(channelName,channelRequester,priority,"");
|
||||
}
|
||||
|
||||
Channel::shared_pointer ChannelProviderLocal::createChannel(
|
||||
string const & channelName,
|
||||
ChannelRequester::shared_pointer const &channelRequester,
|
||||
short priority,
|
||||
string const &address)
|
||||
{
|
||||
Lock xx(mutex);
|
||||
PVRecordPtr pvRecord = pvDatabase->findRecord(channelName);
|
||||
@@ -171,6 +162,17 @@ Channel::shared_pointer ChannelProviderLocal::createChannel(
|
||||
notFoundStatus,
|
||||
Channel::shared_pointer());
|
||||
return Channel::shared_pointer();
|
||||
|
||||
}
|
||||
|
||||
Channel::shared_pointer ChannelProviderLocal::createChannel(
|
||||
string const & channelName,
|
||||
ChannelRequester::shared_pointer const &channelRequester,
|
||||
short priority,
|
||||
string const &address)
|
||||
{
|
||||
if(!address.empty()) throw std::invalid_argument("address not allowed for local implementation");
|
||||
return createChannel(channelName, channelRequester, priority);
|
||||
}
|
||||
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user