Commit Graph

791 Commits

Author SHA1 Message Date
2718a0d706 install additional header files for caGateway 2018-02-22 17:17:34 +01:00
Andrew Johnson
22debb3532 Fix for LP: #1702298 2017-09-25 15:41:31 -05:00
Xiaoqiang Wang
82396ee3ef fix data size of gdd container type
getDataSizeElement of gdd container returns the number of sub fields.
It has to be called on the "value" field. This fix has already been done
in monitorReponse.
2017-05-10 10:22:13 -05:00
Andrew Johnson
3e58c59377 Fix CA server bind issue from Freddie Akeroyd 2017-01-19 12:33:54 -06:00
Andrew Johnson
94397b52fc Resolve some cppcheck errors & warnings 2016-12-07 13:53:26 -06:00
Andrew Johnson
7fe152ce1b Merge Bruce Hill's pcas-deadlock-fix-3.14 branch 2016-12-07 10:43:06 -06:00
Bruce Hill
d3568605ce Fetch nativeCount() in casChannelI constructor to avoid deadlock
if we fetch it from eventSysProcess()
2016-12-06 13:43:59 -08:00
0f7f4710c6 PCAS dynamic array support for GDD container types 2016-11-30 11:58:24 -06:00
Andrew Johnson
0743417231 Merged the pcas-vararray-3.14 branch, with fixes and notes 2016-10-20 12:22:00 -05:00
Ralph Lange
92ffe1d726 cas: fix first subscription update returning only 1 element when 0 were requested 2016-10-18 11:39:38 +02:00
Andrew Johnson
1351eceead Clean up unused code warnings from Clang 2016-10-14 13:48:56 -05:00
Ralph Lange
9ac237b3de cas: Add real implementation for variable length arrays (Bruce Hill, Matej Sekoranja) 2016-10-12 13:41:55 +02:00
Andrew Johnson
6e2705c23f Merged commit 12741 from Michael's pcas-fake-dynamic branch 2016-10-10 15:12:26 -05:00
Ralph Lange
b3ac81923a cas: update enum string table on updates for enum type data 2016-08-13 14:00:57 +02:00
Andrew Johnson
f4a16a1e1e Remaining Revision-Id keywords in source 2016-05-22 05:43:09 +02:00
Andrew Johnson
4a0880003c Support MinGW cross-builds on linux-x86 and x86_64 2015-02-24 14:30:42 -06:00
Jeff Hill
42f4c3a0a5 fixed potential memory leak 2013-10-17 09:23:47 -06:00
Andrew Johnson
01f0fdbf1e More file permission fixes. 2013-08-19 15:46:51 -05:00
Andrew Johnson
cbde3ea9fd cas: Added propertyEventMask support
Allows server tools to send DBE_PROPERTY events to clients.
New functionality not tested, but fairly trivial and doesn't
break existing server tools.
2012-11-30 17:42:47 -06:00
Jeff Hill
d8f7c3731d fixed various archaic sun pro build failures repoted by Dirk 2011-12-12 16:10:24 -07:00
Andrew Johnson
b27e22d75e Makefile cleanup
Various minor changes to comments and build variable names.
2011-11-14 12:33:07 -06:00
Andrew Johnson
038ac0cd38 Fix some build issues with old Solaris C++ compiler.
src/libCom/test/epicsExceptionTest.cpp:
  exThread needs a destructor

src/cas/generic/st/casStreamOS.cc:
  Can't use inline as armSend already called
2011-04-05 16:08:49 -05:00
Andrew Johnson
46b912bc16 cas: Workaround for vxWorks-ppc604 compiler issue. 2010-10-29 12:15:48 -05:00
Andrew Johnson
fbda9f3280 RCS keyword updates for Bazaar
Replaced $Id$ and $Header$ keywords with $Revision-Id$
Deleted $Log$ keywords and any log messages
2010-10-05 14:27:37 -05:00
Andrew Johnson
58b5b81cb3 cas: fixed new[] .. free() mismatch (in OOM path)
Found by cppchecker, http://cppcheck.sf.net/
2010-09-29 00:44:47 -05:00
Andrew Johnson
eda402cf66 Merged Ralph's ca-over-tcp branch.
Fixed some vxWorks compile errors, and made a number of edits
to the HTML in the CAref.html documentation.
2010-08-10 16:05:46 -05:00
Ralph Lange
23612a7afe Merged Codeathon 2008 changes (10292..10293 on cvs-trunk branch).
* Fixed conflicts until base compiles
 * COMPLETELY UNTESTED
2010-04-06 17:59:35 -04:00
Jeff Hill
140b8a468d we dont need tocheck the return from new with assert 2009-08-24 17:09:55 +00:00
Jeff Hill
fa24d119dd use verify instead of assert (in tests) 2009-08-24 17:07:03 +00:00
Jeff Hill
db3a655374 fixed improper calculation of signal needed state in postEvent
(this is an issue I introduced when writing the patch where IO
and subscription update events are maintained on seperate
and independent queues). The issue does not exist in an
EPICS base release.
2009-08-18 00:40:00 +00:00
Jeff Hill
8ae0c8960f corrected spelling in message 2009-08-18 00:36:22 +00:00
Jeff Hill
50ddd62502 o always arm the send independent of how many messages are placed
in the out buf. The send will not arm if the out buf is empty
o when receiving the io blocked state notify callback always reactivate the
receive if space is available
2009-08-13 23:55:03 +00:00
Jeff Hill
9fc48c9a6b always arm the send independent of how many messages are placed
in the out buf. The send will not arm if the out buf is empty.
2009-08-13 23:51:40 +00:00
Jeff Hill
e4075da4d7 o added new ioQue so the server will not wedge one of its clients
when simultaneouly in flow control mode and also asynchronous io
postponed mode.
o simplified the status from the process func because callers should
not need to know how many messages have been sent
2009-08-13 23:49:59 +00:00
Jeff Hill
8ace886cfe o added new ioQue so the server will not wedge one of its clients
when simultaneouly in flow control mode and also asynchronous io
postponed mode.
o simplified the status from the process func because callers should
not need to know how many messages have been sent
2009-08-13 23:42:37 +00:00
Jeff Hill
6c61c0de34 signal the io blocked list each time that server centric async io completes 2009-08-13 23:38:41 +00:00
Jeff Hill
e581e88223 simplified the return from eventSysProcess because callers should not need to
know how many messages were sent
2009-08-13 23:37:30 +00:00
Jeff Hill
f4cbdec5ee removed io blocked list signal because the base class does not
know if the blocked list is with the pv or the server
2009-08-13 23:32:18 +00:00
Jeff Hill
40b6d1b0ba moved IO pending count to caServer 2009-08-06 02:24:00 +00:00
Jeff Hill
4464cfedaa fixed warning message 2009-08-06 01:36:56 +00:00
Jeff Hill
b9fbf2e45b fixed error code numbering 2009-08-06 01:36:30 +00:00
Jeff Hill
42ce1bd2db o reset pendingResponseStatus, reqPayloadNeedsByteSwap,
responseIsPending, and pValueRead whenever removing a
message from the stream
o eliminated error prone reuse of status variables
o dont allow service to postpone IO when no IO is pending against the target
o be extra careful not to do things twice when send blocked or IO postponed
2009-08-06 00:06:59 +00:00
Jeff Hill
7de356519d o added pValueRead gdd snart pointer
o payloadNeedsByteSwap renamed to reqPayloadNeedsByteSwap
o added issuePosponeWhenNonePendingWarning static func
2009-08-05 23:58:40 +00:00
Jeff Hill
ff5ca5e041 added ioIsPending func 2009-08-05 23:56:26 +00:00
Jeff Hill
d1bb71809b added S_cas_posponeWhenNonePending status 2009-08-05 23:56:01 +00:00
Andrew Johnson
c035566d7d Use compile-time assertions, from Micheal Davidsaver. 2009-08-04 19:10:30 +00:00
Jeff Hill
e3a61ce4e4 fix for mantis 358 2009-08-03 22:09:52 +00:00
Jeff Hill
191668023b independent of whether receive bytes are pending or not. This improves
event latency, and allows events to flow if we are blocked due to the
service postponing an IO operation. This was a bug fix.

o call processMessage directly from the IO completion callback
that restarts when in an IO postponement state. This makes the logic easier
to understand and maintain, but isnt a functional change
o call processMessage directly from the receive callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
o call processMessage directly from the send callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
o removed the eventFlush function
2009-07-31 00:47:56 +00:00
Jeff Hill
7a23b74a76 o when processing subscription update events, always activate the send
independent of whether receive bytes are pending or not. This improves
event latency, and allows events to flow if we are blocked due to the
service postponing an IO operation. This was a bug fix.
o when finishing processing input activate a send if more than one half
of the TCP buffering would be used. In the past the send was not activated
until either the send buffer was full or the receive buffer (including any
bytes waiting in the socket) was empty. This could cause latency and
performance issues because send receive piplining would not occur if they
have very large buffers due to a large EPICS_CA_MAX_ARRAY_SIZE.
o always activate a send if we enter a service is postponing IO state. Users
would probably prefer to receive past responses and not wait until the
postponed IO initiates.

o casStrmClient::inBufBytesAvailable renamed to
casStrmClient:: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
o casStrmClient::outBufBytesPresent renamed to
casStrmClient::outBufBytesPending for consistency with inBufBytesPending
o removed the eventFlush function
o removed sendBlocked flag
o call processMessage directly from the IO completion callback
that restarts when in an IO postponement state. This makes the logic easier
to understand and maintain, but isnt a functional change
o call processMessage directly from the receive callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
o call processMessage directly from the send callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
2009-07-31 00:41:34 +00:00
Jeff Hill
511d818d18 o removed sendBlocked flag
o removed processInput function
o removed eventFlush function
o made casStreamIOWakeup and casStreamEvWakeup friends
2009-07-31 00:00:42 +00:00