Commit Graph
685 Commits
Author SHA1 Message Date
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 JohnsonandGitHub 28002fa6d7 Merge pull request #121 from epics-base/issue119
From Marty, fixes #119
2018-08-29 13:56:27 -05:00
Andrew JohnsonandGitHub 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
Andrew JohnsonandGitHub 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 Martinsandmdavidsaver 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
Michael Davidsaver 39e6e443aa dllimport/export part 1 2018-07-06 14:41:32 -07:00
Michael Davidsaver 93dc0f4f1a drop unused 2018-07-06 11:20:34 -07:00
mdavidsaverandGitHub ab696f00b6 Merge pull request #111 from mdavidsaver/sharedpv
Include SharedPV et al.
2018-07-06 11:20:13 -07:00
Michael Davidsaver 59a65ce317 discoverInterfaces() fixup bcast address on win32
Apparently SIO_GET_INTERFACE_LIST sometimes gives
the global broadcast (255.255.255.255) for one of
the interfaces.  In this case silently compute
the iface bcast address.
2018-07-02 18:54:05 -07:00
Michael Davidsaver 7912718664 discoverInterfaces() compat RTEMS 2018-07-02 15:32:10 -07:00
Michael Davidsaver b97e37da98 de-duplicate address lists 2018-07-02 14:50:24 -07:00
Michael Davidsaver fc037f0a39 drop getBroadcastAddresses()
in favor of discoverInterfaces().

if we have to do NIC discovery ourselves, then at least
avoid mixing our results with the similar, but not identical
results of osiSockDiscoverBroadcastAddresses() from Base.
2018-07-02 14:39:37 -07:00
Michael Davidsaver beb977bd78 revise address list expansion 2018-07-02 14:39:36 -07:00
Michael Davidsaver c5419f9487 revise discoverInterfaces()
change interface to distingush between bcast and point2point.
add netmask to truly distinguish unicast from bcast.
fix some minor (I think) errors in the bsd socks impl (use of clobbered buffer).
cleanup win32 impl. bcast and p2p handling.
2018-07-02 14:39:36 -07:00
Michael Davidsaver 53a63f9a1f inetAddressUtil: save ifr_addr before query of IFFLAGS
Save before later calls clobber the buffer (was corrupting
sin_family).
2018-07-02 14:39:36 -07:00
Michael Davidsaver 74c2ec1ec3 Add SharedPV 2018-06-29 16:55:27 -07:00
Michael Davidsaver 146fbbc719 add pva/server.h 2018-06-29 16:55:27 -07:00
Michael Davidsaver c93f7a35f7 pva/client.h: no lastRequest()
until #97 is resolved.  Avoids annoying message.

https://github.com/epics-base/pvAccessCPP/issues/97
2018-06-29 16:22:57 -07:00
Michael Davidsaver 135f66393d pva/client.h: Get expose valid bitset
turns out this is useful after all.
2018-06-29 16:22:57 -07:00
Michael Davidsaver 80db41f1c4 pva/client.h Allow callbacks to unref Operations
Keep a local (internal) shared_ptr whenever
user callbacks are run.  This allows user
callbacks to drop (reset()/dtor) Operations
or Monitors safely.

Ref must to captured before mutex is locked,
which is safe as the internal weak_ptr is
not changed after build() (despite being non-const)
2018-06-29 16:22:57 -07:00
Michael Davidsaver a1a2e71ecc fix ServerCancelRequestHandler::handleResponse
Thus far this has been dead code as ServerChannel::getRequest()
returned a Destroyable which was actually a BaseChannelRequester
sub-class, not a ChannelRequest sub-class.
2018-06-29 16:22:56 -07:00
Michael Davidsaver 3ffbf9c597 ServerChannel::_requests holds BaseChannelRequester
Make it a bit more obvious that things are backwards here.
2018-06-29 16:22:56 -07:00