2023 Commits

Author SHA1 Message Date
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
mrkraimer
ad1a719604 caProvider.md: just link to html documentation 2018-10-05 10:12:33 -04: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
mrkraimer
bca188d597 Merge https://github.com/epics-base/pvAccessCPP 2018-10-03 05:54:04 -04:00
Evan J. Smith
30f07f2fb6 Changing default request string to 'field()' 2018-10-02 20:29:02 -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
mrkraimer
d7dff7ebbf Merge https://github.com/epics-base/pvAccessCPP 2018-09-27 10:02:46 -04:00
mrkraimer
1204874481 implement field options 2018-09-27 10:02:00 -04: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
mrkraimer
e9d2114e96 latest changes to match caProvider.html 2018-09-24 13:45:21 -04: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
68f284f687 fix epicschat example 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
eab36d5123 minor 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
Michael Davidsaver
281447c909 pvtools: force flush cout
Apparently windows CRT doesn't have a timed flush.
2018-09-17 10:37:36 -07:00
mrkraimer
10bb8039e5 fix problem with pvget and pvinfo 2018-09-13 08:36:33 -04:00
mrkraimer
7b7511fc0f channelConnectThread changes 2018-09-12 14:12:08 -04:00
mrkraimer
36e18bfd21 merge with epics-base 2018-09-10 14:11:19 -04:00
mrkraimer
ef623eef91 merge with epics-base 2018-09-10 13:46:50 -04:00
Andrew Johnson
28002fa6d7 Merge pull request #121 from epics-base/issue119
From Marty, fixes #119
2018-08-29 13:56:27 -05:00
mrkraimer
8e40907171 fix issues 117 118 119 2018-08-13 14:19:10 -04: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
mrkraimer
bef689d8c8 add more DBRlongout tests 2018-08-13 09:12:57 -04:00
mrkraimer
39ede57fe2 change ChannelConnectThread to channelConnectThread 2018-08-10 15:11:02 -04:00