Commit Graph

1696 Commits

Author SHA1 Message Date
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
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