Commit Graph

1431 Commits

Author SHA1 Message Date
Andrew Johnson
e61d10200e Merge pull request #74 from mrkraimer/master
This fixes the problems raised in issue #71
2017-11-28 09:04:47 -06:00
Michael Davidsaver
955c1896a1 pvget: always print Timeout 2017-11-27 20:10:33 -06:00
Michael Davidsaver
d1cbb0abd5 pvac: ensure that listeners are done in ClientChannel
ensure no concurrent callback in progress
when removing listeners.
2017-11-22 14:20:26 -06:00
Michael Davidsaver
6055dbb983 pvac user internal/external refs. 2017-11-22 14:14:05 -06:00
Michael Davidsaver
250826ffb9 add reftrack to pvac 2017-11-22 12:32:38 -06:00
mrkraimer
46b19866c7 Merge https://github.com/epics-base/pvAccessCPP 2017-11-20 08:46:58 -05:00
mrkraimer
e4182d0b00 fix incorrect logic 2017-11-18 07:05:34 -05:00
mrkraimer
32d0ece858 fix all problems raised in issue #71 2017-11-17 15:18:21 -05:00
Michael Davidsaver
3f51c74ba1 fix mingw build error 2017-11-16 18:47:39 -06:00
Michael Davidsaver
cf7827ceab quiet mingw include order warning
#warning Please include winsock2.h before windows.h
2017-11-16 18:45:44 -06:00
Michael Davidsaver
e626ca0aaf client const-ify where possible 2017-11-16 17:38:11 -06:00
Michael Davidsaver
f45de1de68 client minor locking 2017-11-16 17:38:11 -06:00
Michael Davidsaver
8e846b02bc tighten up validation 2017-11-16 17:38:11 -06:00
Michael Davidsaver
cc9c666731 Improve client pvRequest option parsing
Give some notice of parse errors
2017-11-16 17:38:11 -06:00
Michael Davidsaver
00e01d5211 tighten up client operation send state handling 2017-11-16 17:03:10 -06:00
Michael Davidsaver
1d56ee7283 pva client ignore CMD_DESTROY_REQUEST reply.
Presently CMD_DESTROY_REQUEST and CMD_CANCEL_REQUEST aren't acknowledged.
This allows ambiguity in when the request ioid goes out of scope.

Currently, the client forgets about an ioid as soon as the destroy request is sent.
So any in-flight response will be erroneously flagged as "Undecipherable message".

Similarly, a cancel request can cross paths with a reply.
This creates confusion in the event the client starts a new
request immediately after canceling the first.

Let's build some forward compatibility by ignoring replies to
cancel and destroy requests.
2017-11-16 17:03:10 -06:00
Michael Davidsaver
b3fcffb18e avoid magic number 2017-11-16 14:56:59 -06:00
Michael Davidsaver
6f39f02f3a more client locking violations
As with #72 more use of m_pendingRequest w/o locking
2017-11-16 14:56:48 -06:00
Michael Davidsaver
ba3b777978 missed one
cf 2f0bb7d448
2017-11-16 11:18:13 -06:00
Michael Davidsaver
5bcbc0d717 Incorrect locking in client monitor 2017-11-15 20:02:25 -06:00
Michael Davidsaver
2f0bb7d448 "Not-a-first segmented message" is a critical error
Let's try to scare users into reporting it more promptly.
2017-11-15 19:38:26 -06:00
Ralph Lange
8a208c5aaa jenkins: remove pvCommon dependency from CB build 2017-11-15 17:23:59 +01:00
Andrew Johnson
dac9337bab Merge pull request #70 from mrkraimer/master
Remove lastRequest messages; in activate() only do callbacks when connected; more weak pointer changes.
2017-11-14 14:26:33 -06:00
mrkraimer
784c6665a6 make pvRequest weak_pointer for get, put, and monitor 2017-11-14 09:11:27 -05:00
mrkraimer
6cd7de069a remove lastRequest messages; in activate only make callback if connected 2017-11-13 05:53:24 -05:00
Michael Davidsaver
3b565d0c56 server GetField ensure no duplicate reply 2017-11-06 16:48:34 -06:00
Michael Davidsaver
84a0729bcf minor 2017-11-06 16:27:52 -06:00
Michael Davidsaver
c469d49ecb server: keep most recent GetFieldRequester alive 2017-11-06 16:27:43 -06:00
Michael Davidsaver
0ec4e16373 skip unnecessary static_pointer_casts 2017-11-06 16:12:13 -06:00
Michael Davidsaver
576b241faa consolidate TransportClient and ChannelImpl as ClientChannelImpl 2017-11-06 15:51:43 -06:00
Michael Davidsaver
7118e34222 merge DataResponse into ResponseRequest
DataResponse is only sub-"interface"/class of ResponseRequest.
2017-11-06 15:26:05 -06:00
Michael Davidsaver
3154e3431e consolidate SubscriptionRequest with BaseRequestImpl
"interface" with a single implementation.
combine and de-virtualize
2017-11-06 15:22:09 -06:00
Michael Davidsaver
073c77b1ef consolidate ServerChannel and ServerChannelImpl
"interface" with a single implementation.
combine and de-virtualize.
2017-11-06 15:14:41 -06:00
Michael Davidsaver
46df4c07ca cleanup ServerChannelImpl
const-ify and remove descriptive comments
2017-11-06 14:58:15 -06:00
Michael Davidsaver
5f78671b36 compose ServerResponseHandler 2017-11-06 14:47:10 -06:00
Michael Davidsaver
1d7f15de25 combine AbstractResponseHandler and ResponseHandler 2017-11-06 14:27:46 -06:00
Michael Davidsaver
3071a06000 cleanup server response handlers
avoid unnecessary dynamic_cast and ref. counter activity
2017-11-06 14:07:02 -06:00
Michael Davidsaver
aaef110507 eliminate ChannelHostingTransport
an "interface" used once.  Drop it and de-virtualize.
2017-11-06 13:41:58 -06:00
Michael Davidsaver
02a11fc539 drop long defunct test code 2017-11-06 12:52:26 -06:00
Michael Davidsaver
dcb74b781d be explicit about epics::auto_ptr 2017-11-06 12:46:13 -06:00
Michael Davidsaver
9bf03fbfbe no more returning auto_ptr 2017-11-06 12:44:36 -06:00
Michael Davidsaver
0fde239f23 std::auto_ptr -> epics::auto_ptr 2017-11-06 12:37:42 -06:00
Michael Davidsaver
f91b593aea no need to dllexport inline class w/o virtuals 2017-11-06 11:02:08 -06:00
Michael Davidsaver
161280220e avoid std::min 2017-11-06 10:57:09 -06:00
Michael Davidsaver
7b301c4c98 pvasr() call Channel::printInfo() 2017-11-05 17:26:52 -06:00
Michael Davidsaver
8d5c27143b pvasr list client channels 2017-11-05 17:11:28 -06:00
Michael Davidsaver
49173ec884 disable pvAccessMB and unused ref-counting boilerplate 2017-11-05 16:54:10 -06:00
Michael Davidsaver
5e900b1f11 remove super abstract authNZInitialize(void*)
with separate client and server calls.

Still dynamic_cast ugliness as Transport and Codec
hierarchies don't have a common root.
2017-11-05 16:41:59 -06:00
Michael Davidsaver
47332fdf90 server status reporting via iocsh 2017-11-05 15:59:01 -06:00
Michael Davidsaver
dc99e2ae4c add ChannelProviderRegistry::addSingleton()
Helper for providers of singleton resources.
Useful for process-wide resources like the PDB.
2017-11-05 12:22:39 -06:00