From 764e42ef505e237923fab176041849b469decabc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20SVENSSON?= Date: Tue, 3 Sep 2019 17:21:29 +0200 Subject: [PATCH] Bug 482946: Implement InputStream.available() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Iac15816fd4d68206184549c7b47670f9d3137527 Signed-off-by: Torbjörn SVENSSON --- .../jni/serial.c | 27 ++++++++++++++++++ .../os/linux/x86_64/libserial.so | Bin 13280 -> 13408 bytes .../os/macosx/x86_64/libserial.jnilib | Bin 13620 -> 13756 bytes .../os/win32/x86_64/serial.dll | Bin 125772 -> 126038 bytes .../org/eclipse/cdt/serial/SerialPort.java | 11 +++++++ 5 files changed, 38 insertions(+) diff --git a/native/org.eclipse.cdt.native.serial/jni/serial.c b/native/org.eclipse.cdt.native.serial/jni/serial.c index be6c549b1e8..5e783b61c7f 100644 --- a/native/org.eclipse.cdt.native.serial/jni/serial.c +++ b/native/org.eclipse.cdt.native.serial/jni/serial.c @@ -26,6 +26,7 @@ #include #include #include +#include #else #define WIN32_LEAN_AND_MEAN #define UNICODE @@ -251,6 +252,32 @@ JNIEXPORT void JNICALL FUNC(close0)(JNIEnv *env, jobject jobj, jlong handle) #endif } +JNIEXPORT jint JNICALL FUNC(available0)(JNIEnv * env, jobject jobj, jlong jhandle) +{ +#ifndef __MINGW32__ + int result = 0; + if (ioctl(jhandle, FIONREAD, &result ) < 0) { + throwIOException(env, "Error calling ioctl"); + return 0; + } + return result; +#else + COMSTAT stat; + DWORD errCode; +#ifdef _WIN64 + HANDLE handle = (HANDLE)jhandle; +#else + HANDLE handle = (HANDLE)(unsigned)jhandle; +#endif + + if (ClearCommError(handle, &errCode, &stat) == 0) { + throwIOException(env, "Error calling ClearCommError"); + return -1; + } + return (int)stat.cbInQue; +#endif +} + JNIEXPORT jint JNICALL FUNC(read1)(JNIEnv * env, jobject jobj, jlong jhandle, jbyteArray bytes, jint offset, jint size) { #ifndef __MINGW32__ diff --git a/native/org.eclipse.cdt.native.serial/os/linux/x86_64/libserial.so b/native/org.eclipse.cdt.native.serial/os/linux/x86_64/libserial.so index 8d792d5a42a25accf9a58bde42c7ea6678b22d38..3b73b67c7a90a5f4ddaa29b807f4dd6b40d394d3 100755 GIT binary patch delta 2857 zcmZuz4Qy0Z7QXk*Pv@_6{_0G@&b=uH826x@9$!d(G1*0Kq#AvkHpKRF(&LG*9)rA5JZ_l~!zIB;! zl6SxRoqNuG=iYbjJ#TLF+`xF)zs=2rqzqu{;)$D@U585zdbo6AOWe6fG1%n9zGo|L z3mT*lyW|92(8-^>Y)jSlrMr6GasHDGEco1j568!j&+h4_tk<4e zOS&*V<=|7I*52;tv(Tv2*)7b;QZ87p+{fpDTS9O`(fA1V68yEPCQA`dM=&-o3$Z<_ zitgV_lhB9RWP$z<_+~%zura@3`=E3=gh={iv7z`gMT!!X_QgJfR~o=##{BTd8eiIr zI=_fi4oc9ZZ$kQ}rJfe+XT|KBz_s=}rTuTE{omy9X{pc4nC-}gtXsGF$6FtnO4tUt zxBs#J!J+>3Lk~By!L1v%55Ycr9lU6N8@h{bN|OU;3JZ#;4d>wCAg(5mkW0U@YY^I*tN8ZkmvBRTXI3n|wB^!sVh0?tyYgs7x+RSbh^VJSY(Yu*wnQ zrSP!h3+{#%=Q{3%z0OctE?L;`l5Z$NCbLlJwai(EHfnpJRAt)J)7x!1H?CL9yz4k7 zhMB%}KMv`!1K5^CQ`jRuK!f=?9VPZF;MPYJ~jNkL~d z-zaz+aoYL3D)=Qf-2iIuE%x@)W%vW&_Elr5%g&F^IG)(>0anONqlVSpMucfj&dJ#xoaMnKpoprt7Tfg3Sh4X{kMCx(UxJ< z=i2d=ISreK-m?v$f`5CA_I*>lB>Hm<2|vzQ%W)r0npw$qxbwYexv3<22kJ*{*#Lax zzKwqhE|03*S_BQATBWQAdOUaXov_#QdnIXy?&4Ma?x|lFZ{y0 zjvu3K(BOdgapmYdl=~jwF?hn)p&YpYGroZJ_yt{uz1|Lp_#ajNaULf8okhpalOKaQ z|I+^U;o+^r>W2QIp}|KstKt+>KzxzqRt=HTr5epQBHlc&>%Txek9ZjIlmF=Yhlt-I zo<$tKqU#<^=+#$sy#etx#4ZlKflB+E|JHTJ;h8|CGI;@B4Mcbw91ld5E0^I+AX1@U z)^%}FwJz{JqugF>S4KQV`05*R)_3vg1!r)P?Mv*HLp}DaIQ!bE&fr!@n|VW+Hv-xS zp@T(2w-1TO0KD0aj=Xa5K7_VNFJA-uB2nH2Gm!)zfOC?10K>oabP5 zG|CUaqtSz~Ms4i;T+Vk|;(3X7S>tYySR=7nVu!^0B#uK?J&0j6RfKT%{)$qIo#hZi zJPZ@a9BdXb#8Yq%nTz!iE^)Iy>2CySv=&^gS!1u&uU|Ei3@!`&Ly#NqOK*Rflt% zG&%}RRZ&oztXNpQ>`*DJukOINy;7YhD-21&Z^^0L!nx`@l`%i8h{fv*>)R1Dx?U~) zno2moN^O}BbK!b*I}GPyp)#u8*Q=1rXq4Y8T1*Y>|5UWU6zwFet_h`oCwx7uu!{ag z>I*AG4 z*aA;2j{DY7?LjdSPtW3n?|?ioCbj{OC!9H{&A~14Wv;M1TX?2M;>|wusF^qbGx3DW zJgN9Eb}8QM?~@11M7&Pg5^i}D}H#1ynP zCVXbvnb-wSqIOr%Sfq*7Q!|Zej+xq;Ou*|&6~>dQ)BG%$>B*IR4_r*HRALRVV#yDj bCsf0KIXt;!S)HTKVCA^;|1aikW$OM5boOb6 delta 2598 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 delta 15349 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 z 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 diff --git a/native/org.eclipse.cdt.native.serial/src/org/eclipse/cdt/serial/SerialPort.java b/native/org.eclipse.cdt.native.serial/src/org/eclipse/cdt/serial/SerialPort.java index 0b8f071b8ec..672895179cc 100644 --- a/native/org.eclipse.cdt.native.serial/src/org/eclipse/cdt/serial/SerialPort.java +++ b/native/org.eclipse.cdt.native.serial/src/org/eclipse/cdt/serial/SerialPort.java @@ -131,6 +131,15 @@ public class SerialPort { public void close() throws IOException { SerialPort.this.close(); } + + @Override + public int available() throws IOException { + if (isOpen()) { + return available0(handle); + } else { + return 0; + } + } }; private OutputStream outputStream = new OutputStream() { @@ -208,6 +217,8 @@ public class SerialPort { private native int read1(long handle, byte[] b, int off, int len) throws IOException; + private native int available0(long handle) throws IOException; + private native void write0(long handle, int b) throws IOException; private native void write1(long handle, byte[] b, int off, int len) throws IOException;