Commit Graph

739 Commits

Author SHA1 Message Date
Michael Davidsaver d48971dbb9 BlockingUDPConnector cleanup
remove unused options and arguments.  Avoid alloc.
2019-01-12 12:02:25 -08:00
Michael Davidsaver be3729cdb1 oops 2018-12-08 18:45:30 -08:00
Michael Davidsaver 81af0d72e8 client.h monitor missing NULL test 2018-12-08 17:50:09 -08:00
Michael Davidsaver eb8be48807 preemptive dllimport 2018-12-08 17:50:09 -08:00
Andrew Johnson eaf422669b Fix Windows symbol decorations in src/client implementation 2018-11-28 13:29:32 -06:00
Michael Davidsaver 095011d013 note 2018-11-26 10:40:43 -08:00
Michael Davidsaver 0959f9be88 use epicsGuard 2018-10-31 09:21:23 -07:00
Andrew Johnson 39d0706cf1 Fix typo in CAChannelGet class member 2018-10-30 16:19:12 -05:00
Andrew Johnson 2b998541ee Merge caProvider changes (PR #131) from mrkraimer
ANJ: Added some items to release_notes.dox
Fixes: Github issue #126
2018-10-29 18:20:50 -05:00
Michael Davidsaver f84774e3ec PVA server earlier check of monitor window
Check window size before attemting poll() as apparently
"spurious" send() is possible.
2018-10-22 14:07:22 -07:00
Michael Davidsaver 3f85f7c2ad cleanup 2018-10-22 10:04:57 -07:00
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
mrkraimer bca188d597 Merge https://github.com/epics-base/pvAccessCPP 2018-10-03 05:54:04 -04: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 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