Michael Davidsaver
165313d8f5
client.h add some exception guards
...
These are one shot operations anyway,
and allowing user exceptions to propagate
to core PVA isn't helpful.
2018-10-07 20:07:40 -07:00
Michael Davidsaver
abc1b448d5
minor
2018-10-03 23:41:30 -07:00
Michael Davidsaver
e67e00c968
client.h minor
2018-10-03 18:36:32 -07:00
Michael Davidsaver
51bc630755
add pvac::ClientChannel::info()
2018-09-26 10:28:18 -07:00
Michael Davidsaver
855335f3b1
client.h guard concurrent callbacks on cancel
...
cancel() blocks until concurrent callbacks have
completed. Also serializes any callbacks for each
Operation/Monitor.
2018-09-26 10:28:18 -07:00
Michael Davidsaver
d01421bf30
client.h cleanup
2018-09-26 10:28:18 -07:00
Michael Davidsaver
f7f4822c08
pva/client.h separate Get and Put
...
Apparently some servers (pvDatabase) have different
behavior for ChannelGet::get() and ChannelPut::get() .
ClientChannel::get() now uses ChannelGet::get()
while ClientChannel::put() will automatically
do a ChannelPut::get() and pass the result to
the putBuilder callback.
2018-09-26 10:25:31 -07:00
Michael Davidsaver
1f5c0eedcb
MonitorFIFO: open() handle compute() error internally
...
Introduce Error state when open() fails due to invalid
pvRequest mapping.
2018-09-21 11:35:57 -07:00
Michael Davidsaver
527cb3fe62
MonitorFIFO use PVRequestMapper
...
MonitorFIFO add config option dropEmptyUpdates
really distinct from ignoreRequestMask
2018-09-21 11:35:57 -07:00
Michael Davidsaver
07af87fb0b
pva/client.h RPC give dummy valid bit mask
...
avoid the need for a NULL check.
2018-08-06 20:34:27 -07:00
Michael Davidsaver
e52d31d0bf
Get2PutProxy pass along messages
2018-07-31 18:48:23 -07:00
Michael Davidsaver
8644f4230d
client: simplify monitor type handling
...
I think the original logic is correct, but I'm not sure.
Cleverness to avoiding storing a Structure pointer is a
premature optimization anyway.
2018-07-15 19:22:43 -07:00
Michael Davidsaver
99f68dac04
monitorfifo better default config handling
2018-07-14 15:06:44 -07:00
Michael Davidsaver
2912112419
MonitorFIFO use pvRequest field selection mask
2018-07-14 15:00:15 -07:00
Michael Davidsaver
512cc11923
client: avoid race during monitor shutdown
...
poll() vs. cancel()
2018-07-09 15:19:52 -07:00
Bruno Martins and mdavidsaver
3caea5991a
Fix PutCallback type comparison. Fix #112
2018-07-09 08:59:51 -07:00
Michael Davidsaver
c93f7a35f7
pva/client.h: no lastRequest()
...
until #97 is resolved. Avoids annoying message.
https://github.com/epics-base/pvAccessCPP/issues/97
2018-06-29 16:22:57 -07:00
Michael Davidsaver
135f66393d
pva/client.h: Get expose valid bitset
...
turns out this is useful after all.
2018-06-29 16:22:57 -07:00
Michael Davidsaver
80db41f1c4
pva/client.h Allow callbacks to unref Operations
...
Keep a local (internal) shared_ptr whenever
user callbacks are run. This allows user
callbacks to drop (reset()/dtor) Operations
or Monitors safely.
Ref must to captured before mutex is locked,
which is safe as the internal weak_ptr is
not changed after build() (despite being non-const)
2018-06-29 16:22:57 -07:00
Michael Davidsaver
5e887a6d02
add MonitorFIFO
2018-06-26 19:06:47 -07:00
Michael Davidsaver
a413f8f9db
add dummy ChannelFind implementation.
...
Since this class is not really used...
2018-06-26 11:23:50 -07:00
Michael Davidsaver
de6586b92f
MonitorElement::Ref swap() and move, but no copy
2018-06-05 09:32:22 -07:00
Michael Davidsaver
578dbc9456
add another ChannelProviderRegistry::addSingleton() overload
...
Construct a "factory" around a pre-allocated instance.
2018-06-05 09:32:22 -07:00
Michael Davidsaver
8000ed0637
client.h default ctor for ClientProvider
...
Allow an invalid ClientProvider to be created
for later assignment.
2018-06-05 09:32:22 -07:00
Michael Davidsaver
794d72ba6b
client.h MonitorSync missing init of member
2018-06-04 10:08:01 -07:00
Michael Davidsaver
bd88e35448
client.h update doc
2018-05-16 09:14:49 -07:00
Michael Davidsaver
7cf78d5b9b
client.h add ClientProvider::name()
2018-04-20 15:22:57 -07:00
Michael Davidsaver
3d85852c93
attempt to fix dllimport issue
2018-04-18 09:01:11 -07:00
Michael Davidsaver
61d43e498d
client.h std::ostream printing
2018-04-10 16:19:03 -07:00
Michael Davidsaver
0d40464541
client.h: expose reset()
...
can also be accomplished with assignment from empty.
op = pvac::Operation()
2018-04-10 15:17:18 -07:00
Michael Davidsaver
0c6fe2c1c6
client.h: add validity test for all handles
2018-04-08 16:04:36 -07:00
Michael Davidsaver
4fcbdff580
missing includes
2018-03-19 15:36:21 -07:00
Michael Davidsaver
acab4cd408
fix potential *NULL from Get2PutProxy
2018-03-08 11:42:56 -05:00
Michael Davidsaver
b5bf6a4ccd
client: (shallow) copy into Monitor::root
...
Avoid exposing refs. from monitor queue
which might then be used after release().
Also allows users the possibility of caching
getSubField() until root.get() actually changes.
2018-02-21 11:19:21 -08:00
Michael Davidsaver
d33356ced6
drop deprecated
2018-01-31 12:48:59 -08:00
Michael Davidsaver
c6b1786008
minor doc
2018-01-31 11:51:13 -08:00
Michael Davidsaver
4dcc8bffe1
minor
2017-12-12 09:57:24 -06:00
Andrew Johnson
65b0ac1a32
Fixes needed for older VxWorks GCC
2017-11-29 16:44:19 -06:00
Michael Davidsaver
bc0892a1ad
workaround for older gcc
2017-11-28 17:54:25 -06:00
Michael Davidsaver
d1cbb0abd5
pvac: ensure that listeners are done in ClientChannel
...
ensure no concurrent callback in progress
when removing listeners.
2017-11-22 14:20:26 -06:00
Michael Davidsaver
6055dbb983
pvac user internal/external refs.
2017-11-22 14:14:05 -06:00
Michael Davidsaver
250826ffb9
add reftrack to pvac
2017-11-22 12:32:38 -06:00
Michael Davidsaver
dc99e2ae4c
add ChannelProviderRegistry::addSingleton()
...
Helper for providers of singleton resources.
Useful for process-wide resources like the PDB.
2017-11-05 12:22:39 -06:00
Michael Davidsaver
5f96f5722e
pvac: client monitor locking
2017-11-05 12:19:10 -06:00
Michael Davidsaver
393ac72785
minor doc
2017-10-05 15:33:48 +02:00
Michael Davidsaver
4eb8856a00
pvac: fix MonitorSync method name collision
2017-09-30 14:22:25 -05:00
Michael Davidsaver
b806b7ca42
pvac: generalize sync. put()
2017-09-30 13:54:59 -05:00
Michael Davidsaver
9460fab294
pvac: ClientProvider ctor from ChannelProvider
2017-09-29 16:22:19 -05:00
Michael Davidsaver
25c7da43f2
pvac: better Requester names
...
pass through the client name (aka the channel name)
2017-09-06 13:49:46 -05:00
Michael Davidsaver
8a24f9cd9c
Channel::createChannelProcess default ensure process=true
2017-09-06 12:48:03 -05:00