Michael Davidsaver
a486f3d4c7
SharedPV::Handler better defaults
2018-10-18 17:52:56 -07:00
Michael Davidsaver
31ed0b55ec
minor
2018-10-18 17:52:56 -07:00
Michael Davidsaver
1b273d3787
deprecate createFileLogger()
2018-10-18 17:52:56 -07:00
Michael Davidsaver
729f16f94e
SharedPV move internal names under detail::
2018-10-18 17:52:35 -07:00
Michael Davidsaver
0a5f8b44db
doc
2018-10-18 15:18:00 -07:00
Michael Davidsaver
ac9ebc47ba
improper use of rand() w/o RAND_MAX
...
... with an extra dose of integer modulo thrown in.
2018-10-18 15:18:00 -07:00
Michael Davidsaver
9de8676a6f
pvlist debugging
2018-10-18 15:18:00 -07:00
Michael Davidsaver
731767b086
SharedPV fix onFirstConnect() on monitor creation
2018-10-08 07:10:13 -07:00
Michael Davidsaver
9ca7487e29
SharedPV allow use of Channel::destroy() to trigger onLastDisconnect()
...
Add dead flag to catch double destroy() or use after destroy()
2018-10-07 20:07:40 -07:00
Michael Davidsaver
ed1bd1b962
SharedPV defer onFirstConnect() to first getField/Put/Monitor
2018-10-07 20:07:40 -07:00
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
53b95dd336
more SharedPV rpc state tracking
...
handle re-open() with RPC
2018-10-06 17:55:57 -07:00
Michael Davidsaver
f6eeeac649
more UDP debugging
2018-10-04 21:08:15 -07:00
Michael Davidsaver
48770f132f
fix global string constants
2018-10-04 21:08:15 -07:00
Michael Davidsaver
605c172d3c
fix SharedPV allow rpc() while close()'d
...
Don't call channelRPCConnect() again during open().
Turns out that a second channelRPCConnect() has
the effect of sending a reply with OK and NULL.
2018-10-04 07:31:01 -07:00
Michael Davidsaver
542d51a215
RPC troubleshooting
...
something funny is going on
2018-10-03 23:41:30 -07:00
Michael Davidsaver
abc1b448d5
minor
2018-10-03 23:41:30 -07:00
Michael Davidsaver
421d50e3ba
SharedPV too many notifiedConn
...
notifiedConn set more often than it should.
2018-10-03 18:36:32 -07:00
Michael Davidsaver
e67e00c968
client.h minor
2018-10-03 18:36:32 -07:00
Michael Davidsaver
d4f3abf461
more descriptive UDP logging
2018-10-02 12:52:24 -07:00
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