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
Methods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
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
-