Adjust ownership of BaseRequestImpl sub-classes.
Keep two weak_ptr<>.
one (internal) for tracking relations with Channel.
one (external) for tracking relations w/ user code, and send Q.
external wraps internal, and calls destroy() to break
ref. loops involving internal.
death to m_thisPointer!
Replace interface+impls with a single concrete container
which wraps a map.
This breaks code which was sub-classing.
However, no external code can be found which does this.
A build() method is used instead of simple ctor so
that the ctor is private, which will cause theoretical
external sub-class code to fail to compile.
Code using getChannelProviderRegistry()
and existing methods will behave as before.
Add ChannelProviderRegistry::getFactory() for pass through
to ChannelProviderFactory (Registery is just a proxy()...)
Remove existing get/create virtual method in favor of getFactory.
Update both existing implementations.
Add SimpleChannelProviderFactory to cut down on boilerplace
for the common case.
Add method to clear mapping and release any saved sharedInstance.
Typedefs to link associated *Requester classes
with their associated "operation"s.
eg. ChannelGet::requester_type is ChannelGetRequester
and ChannelGetRequester::operation_type is ChannelGet.
ChannelFind/List is an ambiguous. All others
are 1-to-1.
ChannelFind::requester_type is ChannelFind
operation_type for both ChannelListRequester and
ChannelFindRequester is ChannelFind.
While defined in pvDataCPP neither of these
is actually used there.
Alias into the epics::pvAccess:: namespace
as a first step towards moving
these definitions to this module.
printInfo() to std::cout, as a no-op
isConnected() using getConnectionState()
various create*() fail with "Not Implemented"
Requester methods try to forward to ChannelRequest,
fallback to std::cerr.