Commit Graph
66 Commits
Author SHA1 Message Date
Michael Davidsaver 158b23cfce __attribute__ error added in gcc 4.3 2017-07-18 15:34:53 +02:00
Michael Davidsaver b2ef7cd0ec more shared_ptr compat 2017-07-18 15:10:32 +02:00
Michael Davidsaver 36be4d3bf7 pvac ensure cancel delivered 2017-07-18 14:02:47 +02:00
Michael Davidsaver 1a47e5fb0a pvac: add synchronous put to 'value' field 2017-07-18 14:02:14 +02:00
Michael Davidsaver edc54aae72 more shared_ptr compat 2017-07-18 13:21:18 +02:00
Michael Davidsaver 2c530868f6 split out caprovider as libpvAccessCA
fixup multi-library build
2017-07-17 13:51:20 +02:00
Michael Davidsaver a8d44dd8c5 remove deprecated form of ChannelProviderRegistry::getProviderNames()
I'm tired of sifting through all the auto_ptr deprecation warnings...
2017-07-17 12:00:11 +02:00
Michael Davidsaver 734b29f299 more simple client 2017-07-14 19:00:08 +02:00
Michael Davidsaver a3350a4f38 update doc 2017-07-14 18:59:02 +02:00
Michael Davidsaver 95a750c4f9 pvaTestClient rename files 2017-07-14 16:56:47 +02:00
Michael Davidsaver f1bc69816b remove compat ChannelProviderRegistry
signal effective API compatibility break due
to change in shared_ptr ownership rules
surrounding ChannelProvder.
2017-07-14 14:37:47 +02:00
Michael Davidsaver 0222463123 update requester.h
move to pvAccess namespace.
2017-07-12 14:26:28 +02:00
Michael Davidsaver 9244d78a5b add MonitorElement::Ref::attach() 2017-07-07 18:44:24 +02:00
Michael Davidsaver 006224b4d1 pva client break ref loop with ChannelRequester
pvutils: remove ChannelRequesterImpl
2017-07-07 18:44:24 +02:00
Michael Davidsaver e5a4fcba38 yet more import/export 2017-07-05 14:33:26 +02:00
Michael Davidsaver 13afc7f6c3 destroyable.h now in pva 2017-07-05 13:17:10 +02:00
Michael Davidsaver e75ba66409 move Destroyable to pva namespace 2017-07-05 11:57:10 +02:00
Michael Davidsaver ce56ac7b1c more Channel defaults 2017-07-03 19:24:00 +02:00
Michael Davidsaver 3d5696b644 compat 2017-07-03 19:23:59 +02:00
Michael Davidsaver 8b8ad08a7f minor 2017-07-03 19:23:46 +02:00
Michael Davidsaver 018858d840 add MonitorElement::Ref 2017-06-28 13:49:59 +02:00
Michael Davidsaver a3185f11da MonitorElement const and state tracking
Mark MonitorElement member pointers as const
to prevent user code from accidentally mangling.

Add 'state' tracking to help debugging
2017-06-27 15:42:27 +02:00
Michael Davidsaver 04c2df53a1 minor 2017-06-26 18:25:39 +02:00
Michael Davidsaver 7ccd8df02f PipelineMonitor -> Monitor
collapse PipelineMonitor into Monitor

no-op virtual call is probably less work than
dynamic_cast.
2017-06-22 13:09:42 +02:00
Michael Davidsaver 77bf33700e default ChannelProvider::channelList 2017-06-21 19:51:30 +02:00
Michael Davidsaver 9dbefeaee3 more doc 2017-06-21 17:41:32 +02:00
Michael Davidsaver 35d2c610bf separate ChannelProviderRegistry for client/server 2017-06-21 14:41:24 +02:00
Michael Davidsaver e7c6b83c43 add OVERRIDE FINAL to PVA client/server providers 2017-06-20 20:27:06 +02:00
Michael Davidsaver 7f625c43e3 ChannelProvider::createChannel() optional ChannelRequester 2017-06-20 19:01:22 +02:00
Michael Davidsaver 9a9896042a more doc 2017-06-20 15:33:36 +02:00
Michael Davidsaver a453dd75fe docs 2017-06-16 17:47:41 +02:00
Michael Davidsaver 8febd176bb PVA client ref. loop breaking
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!
2017-06-07 13:33:10 +02:00
Michael Davidsaver de84fadeb7 ChannelProviderRegistry::add w/ factory function 2017-06-06 10:35:13 +02:00
Michael Davidsaver 34eeb0717a SimpleChannelProviderFactory: weak_ptr to shared instance 2017-06-06 09:46:47 +02:00
Michael Davidsaver 860054a7a2 ChannelProviderRegistry update add()/remove()
add() return created SimpleChannelProviderFactory instance.

remove()

missing Lock
and remove by instance as well as by name.
2017-06-06 08:28:08 +02:00
Michael Davidsaver 7c2a093338 add ChannelBaseRequester::channelDisconnect()
per-operation notification of channel disconnect/destroy.
2017-05-25 18:01:41 -04:00
Michael Davidsaver d7a7b81900 move monitor.h from pvDataCPP 2017-05-24 17:20:17 -04:00
Michael Davidsaver 24c9b31cf6 update pvAccess.h doc comments
describe how things should be!
2017-05-24 17:20:17 -04:00
Michael Davidsaver bbe6cb2553 Lock provide default no-op implementation for lock/unlock 2017-05-24 17:20:17 -04:00
Michael Davidsaver d404769133 add default for first Channel::createChannel()
default for first form which calls the second
2017-05-24 17:20:17 -04:00
Michael Davidsaver 568054ce68 add virtual dtors
being pedantic...
2017-05-24 17:20:17 -04:00
Michael Davidsaver 9253c31c0b rework ChannelProviderRegistry
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.
2017-04-25 21:15:43 -04:00
Andrew Johnson 7ed5f8b4bf Wrong keyword, use epicsShareFunc 2016-04-06 10:59:22 -05:00
Matej Sekoranja cce2a6c4b7 Merge pull request #36 from mdavidsaver/reqoptypedef
Add requester_type and operation_type
2016-03-21 22:00:42 +01:00
Matej Sekoranja f14fdd207c merge 2016-03-21 21:54:37 +01:00
Michael Davidsaver 8679619c83 add requester_type and operation_type
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.
2016-03-20 10:17:43 -04:00
Michael Davidsaver 15449dde6b used aliased names for Monitor* 2016-03-18 15:01:48 -04:00
Michael Davidsaver 7af6031da6 alias Requester and Monitor into epics::pvAccess::
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.
2016-03-18 15:00:45 -04:00
Michael Davidsaver f3035ff758 Defaults for some Channel methods
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.
2016-03-18 14:57:21 -04:00
Matej Sekoranja 5279d247ca general indent beautification 2016-03-10 23:36:16 +01:00