Class ReadAheadBufferedStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
org.mariadb.jdbc.client.socket.impl.ReadAheadBufferedStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
Permit to buf socket data, reading not only asked bytes, but available number of bytes when
possible.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final byte[]
private static final int
private int
private int
Fields inherited from class java.io.FilterInputStream
in
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
void
close()
private void
fillingBuffer
(int minNeededBytes) Fill buf with required length, or available bytes.boolean
int
read()
int
read
(byte[] externalBuf, int off, int len) Returning byte array, from cache of reading socket if needed.void
reset()
long
skip
(long n) Methods inherited from class java.io.FilterInputStream
mark, read
-
Field Details
-
BUF_SIZE
private static final int BUF_SIZE- See Also:
-
buf
private final byte[] buf -
end
private int end -
pos
private int pos
-
-
Constructor Details
-
ReadAheadBufferedStream
ConstructorImplementation doesn't use synchronized/semaphore because all used are already locked by Statement/PreparedStatement Reentrant lock
- Parameters:
in
- socket input stream
-
-
Method Details
-
read
Returning byte array, from cache of reading socket if needed.- Overrides:
read
in classFilterInputStream
- Parameters:
externalBuf
- buf to filloff
- offsetlen
- length to read- Returns:
- number of added bytes
- Throws:
IOException
- if exception during socket reading
-
fillingBuffer
Fill buf with required length, or available bytes.- Parameters:
minNeededBytes
- asked number of bytes- Throws:
IOException
- in case of failing reading stream.
-
markSupported
public boolean markSupported()- Overrides:
markSupported
in classFilterInputStream
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classFilterInputStream
- Throws:
IOException
-
available
- Overrides:
available
in classFilterInputStream
- Throws:
IOException
-
read
- Overrides:
read
in classFilterInputStream
- Throws:
IOException
-
skip
- Overrides:
skip
in classFilterInputStream
- Throws:
IOException
-
reset
- Overrides:
reset
in classFilterInputStream
- Throws:
IOException
-