Commit Graph

1701 Commits

Author SHA1 Message Date
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
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
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
mrkraimer
bef689d8c8 add more DBRlongout tests 2018-08-13 09:12:57 -04: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
5a271ecf71 testCaProvider: Increase CA timeout delays for Jenkins 2018-07-17 14:13:02 -05:00
Andrew Johnson
35ff77e940 Include envDefs.h in the right place... 2018-07-17 12:49:08 -05:00
Andrew Johnson
5cbc21983a Fix for MacOS (clang) 2018-07-17 12:15:05 -05:00
Andrew Johnson
aaafa924ee Remove unneeded WIN32-only code 2018-07-17 11:49:06 -05:00
Andrew Johnson
6576ec9db7 Fix for Windows and VxWorks (setenv is not portable) 2018-07-17 11:48:13 -05: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