Michael Davidsaver
2fec84461d
use of CMD_* instead of magic numbers
2018-10-02 12:52:24 -07:00
Michael Davidsaver
e6902ee41f
avoid UB in decodeAsIPv6Address()
...
Order of evaluation within an expression is
undefined behavior.
2018-10-02 12:52:24 -07:00
Michael Davidsaver
4e5aef3e42
SharedPV allow rpc() while close()'d
...
No reason to prevent this as RPCs need not use
the same type (Structure) as get/put/monitor.
2018-10-02 12:52:24 -07:00
Michael Davidsaver
4296c5e015
more SharedPV::close()
2018-09-27 13:56:13 -07:00
Michael Davidsaver
83b2105241
StaticProvider createChannel() avoid possible deadlock
...
connect() may invoke SharedPV onFirstConnect() callback.
2018-09-26 16:38:22 -07:00
Michael Davidsaver
7ed6f1315f
SharedPV::open() less work under lock
2018-09-26 10:31:33 -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
31261cee24
client context less noise
2018-09-25 18:55:21 -07:00
Michael Davidsaver
6b463d77e1
SharedPV ensure callback pairing
...
Ensure that onLastDisconnect() isn't called
unless onFirstConnect() is/has been called.
2018-09-21 11:35:57 -07:00
Michael Davidsaver
a6eca51fa0
StaticProvider dtor close() with destroy=true
2018-09-21 11:35:57 -07:00
Michael Davidsaver
293dd3c2e9
sharedpv simplify logic
...
duh... always empty() after clear()
2018-09-21 11:35:57 -07:00
Michael Davidsaver
52e0bd09f8
sharedpv: defend against dying objects in SharedPV::close()
...
Likely when destroy=true
2018-09-21 11:35:57 -07:00
Michael Davidsaver
5f03fafba7
sharedstate minor doc
2018-09-21 11:35:57 -07:00
Michael Davidsaver
3bc1603f47
SharedPV.close() call onLastDisconnect()
...
ensure that onLastDisconnect() is called when
the channels list becomes empty (edge), and
not afterwards.
2018-09-21 11:35:57 -07:00
Michael Davidsaver
9ec0172520
sharedstate: close() from dtor
2018-09-21 11:35:57 -07:00
Michael Davidsaver
dd1e2b4048
sharedstate handle compute() error internally
2018-09-21 11:35:57 -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
643f7e47c8
Apply PVRequestMapper to shared state put/get
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
Andrew Johnson
28002fa6d7
Merge pull request #121 from epics-base/issue119
...
From Marty, fixes #119
2018-08-29 13:56:27 -05:00
Andrew Johnson
24b80151d5
Merge pull request #120 from epics-base/issue118
...
caProvider: Fixes issue #118 and adds more put/get equality tests for pvScalar
2018-08-13 10:22:08 -05: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
mrkraimer
f210c81e45
fix issue 119
2018-08-02 05:55:22 -04:00
mrkraimer
9ec087c7ed
fix issue 118; add put/get equal tests for pvScalar
2018-08-01 09:40:09 -04:00
Michael Davidsaver
e52d31d0bf
Get2PutProxy pass along messages
2018-07-31 18:48:23 -07:00
Michael Davidsaver
8b60d87e42
pvac fix MailboxHandler
...
This is why OVERRIDE is so important...
2018-07-31 18:48:23 -07:00
Michael Davidsaver
f39174cb74
StaticProvider need to expose iterator type
2018-07-17 20:42:21 -07:00
Andrew Johnson
613bfc5289
Merge pull request #96 from mrkraimer/master
...
Merged Marty's rewrite of the CA provider
2018-07-17 11:00:10 -05: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
f4b245710d
sharedstate: Get use pvRequest field selection mask
2018-07-14 15:00:15 -07:00
Michael Davidsaver
2912112419
MonitorFIFO use pvRequest field selection mask
2018-07-14 15:00:15 -07:00
Michael Davidsaver
bf8b0bde16
quiet warning
2018-07-14 13:58:00 -07:00
mrkraimer
df45c70149
add putDoneThread and getDoneThread; fix issue 114
2018-07-14 11:46:26 -04:00
Michael Davidsaver
e29cda2a74
sharedstate: missed a reftrack
2018-07-11 18:14:54 -07:00
Michael Davidsaver
512cc11923
client: avoid race during monitor shutdown
...
poll() vs. cancel()
2018-07-09 15:19:52 -07:00
Bruno Martins
3caea5991a
Fix PutCallback type comparison. Fix #112
2018-07-09 08:59:51 -07:00
Michael Davidsaver
1a459d75d5
dllimport/export part 4
2018-07-06 16:00:33 -07:00
Michael Davidsaver
c61dad10c8
dllimport/export part 3
2018-07-06 15:33:40 -07:00
Michael Davidsaver
77b4934966
dllimport/export part 2
2018-07-06 14:59:29 -07:00
Michael Davidsaver
39e6e443aa
dllimport/export part 1
2018-07-06 14:41:32 -07:00
Michael Davidsaver
93dc0f4f1a
drop unused
2018-07-06 11:20:34 -07:00
mdavidsaver
ab696f00b6
Merge pull request #111 from mdavidsaver/sharedpv
...
Include SharedPV et al.
2018-07-06 11:20:13 -07:00
Michael Davidsaver
59a65ce317
discoverInterfaces() fixup bcast address on win32
...
Apparently SIO_GET_INTERFACE_LIST sometimes gives
the global broadcast (255.255.255.255) for one of
the interfaces. In this case silently compute
the iface bcast address.
2018-07-02 18:54:05 -07:00
Michael Davidsaver
7912718664
discoverInterfaces() compat RTEMS
2018-07-02 15:32:10 -07:00
Michael Davidsaver
b97e37da98
de-duplicate address lists
2018-07-02 14:50:24 -07:00
Michael Davidsaver
fc037f0a39
drop getBroadcastAddresses()
...
in favor of discoverInterfaces().
if we have to do NIC discovery ourselves, then at least
avoid mixing our results with the similar, but not identical
results of osiSockDiscoverBroadcastAddresses() from Base.
2018-07-02 14:39:37 -07:00