Package org.glassfish.grizzly.streams
Class AbstractStreamWriter
- java.lang.Object
-
- org.glassfish.grizzly.streams.AbstractStreamWriter
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,Stream,StreamWriter
- Direct Known Subclasses:
DefaultStreamWriter,TransformerStreamWriter
public abstract class AbstractStreamWriter extends java.lang.Object implements StreamWriter
Write the primitive Java type to the current ByteBuffer. If it doesn't fit, call the BufferHandler, and write to the result, which becomes the new current ByteBuffer. Arrays will be written across multiple ByteBuffers if necessary, but all primitives will be written to a single ByteBuffer.- Author:
- Ken Cavanaugh
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractStreamWriter.DisposeBufferCompletionHandler
-
Field Summary
Fields Modifier and Type Field Description protected booleanisOutputBufferedprotected static java.util.logging.Loggerloggerprotected Outputoutputprotected static java.lang.IntegerZEROprotected static GrizzlyFuture<java.lang.Integer>ZERO_READY_FUTURE
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractStreamWriter(Connection connection, Output streamOutput)Create a new ByteBufferWriter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()GrizzlyFuture<java.lang.Integer>close(CompletionHandler<java.lang.Integer> completionHandler)Close theStreamWriterand make sure all data was flushed.<E> GrizzlyFuture<Stream>encode(Transformer<E,Buffer> encoder, E object)<E> GrizzlyFuture<Stream>encode(Transformer<E,Buffer> encoder, E object, CompletionHandler<Stream> completionHandler)GrizzlyFuture<java.lang.Integer>flush()Cause the overflow handler to be called even if buffer is not full.GrizzlyFuture<java.lang.Integer>flush(CompletionHandler<java.lang.Integer> completionHandler)Cause the overflow handler to be called even if buffer is not full.ConnectiongetConnection()Get theConnectionthis StreamWriter belongs to.longgetTimeout(java.util.concurrent.TimeUnit timeunit)Get the timeout for StreamWriter I/O operations.booleanisClosed()Returns true, if StreamReader has been closed, or false otherwise.voidsetTimeout(long timeout, java.util.concurrent.TimeUnit timeunit)Set the timeout for StreamWriter I/O operations.voidwriteBoolean(boolean data)Write the boolean value to the StreamWriter.voidwriteBooleanArray(boolean[] data)Write the array of boolean values to the StreamWriter.voidwriteBuffer(Buffer b)Write theBufferto the StreamWriter.voidwriteByte(byte data)Write the byte value to the StreamWriter.voidwriteByteArray(byte[] data)Write the array of byte values to the StreamWriter.voidwriteByteArray(byte[] data, int offset, int length)Write the part of array of byte values to the StreamWriter, using specific offset and length values.voidwriteChar(char data)Write the char value to the StreamWriter.voidwriteCharArray(char[] data)Write the array of char values to the StreamWriter.voidwriteDouble(double data)Write the double value to the StreamWriter.voidwriteDoubleArray(double[] data)Write the array of double values to the StreamWriter.voidwriteFloat(float data)Write the float value to the StreamWriter.voidwriteFloatArray(float[] data)Write the array of float values to the StreamWriter.voidwriteInt(int data)Write the int value to the StreamWriter.voidwriteIntArray(int[] data)Write the array of int values to the StreamWriter.voidwriteLong(long data)Write the long value to the StreamWriter.voidwriteLongArray(long[] data)Write the array of long values to the StreamWriter.voidwriteShort(short data)Write the short value to the StreamWriter.voidwriteShortArray(short[] data)Write the array of short values to the StreamWriter.
-
-
-
Field Detail
-
logger
protected static final java.util.logging.Logger logger
-
ZERO
protected static final java.lang.Integer ZERO
-
ZERO_READY_FUTURE
protected static final GrizzlyFuture<java.lang.Integer> ZERO_READY_FUTURE
-
isOutputBuffered
protected final boolean isOutputBuffered
-
output
protected final Output output
-
-
Constructor Detail
-
AbstractStreamWriter
protected AbstractStreamWriter(Connection connection, Output streamOutput)
Create a new ByteBufferWriter. An instance maintains a current buffer for use in writing. Whenever the current buffer is insufficient to hold the required data, the BufferHandler is called, and the result of the handler is the new current buffer. The handler is responsible for the disposition of the contents of the old buffer.
-
-
Method Detail
-
flush
public GrizzlyFuture<java.lang.Integer> flush() throws java.io.IOException
Cause the overflow handler to be called even if buffer is not full.- Specified by:
flushin interfaceStreamWriter- Throws:
java.io.IOException
-
flush
public GrizzlyFuture<java.lang.Integer> flush(CompletionHandler<java.lang.Integer> completionHandler) throws java.io.IOException
Cause the overflow handler to be called even if buffer is not full.- Specified by:
flushin interfaceStreamWriter- Throws:
java.io.IOException
-
isClosed
public boolean isClosed()
Returns true, if StreamReader has been closed, or false otherwise.- Specified by:
isClosedin interfaceStreamWriter- Returns:
- true, if StreamReader has been closed, or false otherwise.
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
java.io.IOException
-
close
public GrizzlyFuture<java.lang.Integer> close(CompletionHandler<java.lang.Integer> completionHandler) throws java.io.IOException
Close theStreamWriterand make sure all data was flushed.- Specified by:
closein interfaceStreamWriter- Throws:
java.io.IOException
-
writeBuffer
public void writeBuffer(Buffer b) throws java.io.IOException
Write theBufferto the StreamWriter.- Specified by:
writeBufferin interfaceStreamWriter- Parameters:
b-Buffer.- Throws:
java.io.IOException
-
writeBoolean
public void writeBoolean(boolean data) throws java.io.IOExceptionWrite the boolean value to the StreamWriter.- Specified by:
writeBooleanin interfaceStreamWriter- Parameters:
data- boolean value.- Throws:
java.io.IOException
-
writeByte
public void writeByte(byte data) throws java.io.IOExceptionWrite the byte value to the StreamWriter.- Specified by:
writeBytein interfaceStreamWriter- Parameters:
data- byte value.- Throws:
java.io.IOException
-
writeChar
public void writeChar(char data) throws java.io.IOExceptionWrite the char value to the StreamWriter.- Specified by:
writeCharin interfaceStreamWriter- Parameters:
data- char value.- Throws:
java.io.IOException
-
writeShort
public void writeShort(short data) throws java.io.IOExceptionWrite the short value to the StreamWriter.- Specified by:
writeShortin interfaceStreamWriter- Parameters:
data- short value.- Throws:
java.io.IOException
-
writeInt
public void writeInt(int data) throws java.io.IOExceptionDescription copied from interface:StreamWriterWrite the int value to the StreamWriter.- Specified by:
writeIntin interfaceStreamWriter- Parameters:
data- int value.- Throws:
java.io.IOException
-
writeLong
public void writeLong(long data) throws java.io.IOExceptionWrite the long value to the StreamWriter.- Specified by:
writeLongin interfaceStreamWriter- Parameters:
data- long value.- Throws:
java.io.IOException
-
writeFloat
public void writeFloat(float data) throws java.io.IOExceptionWrite the float value to the StreamWriter.- Specified by:
writeFloatin interfaceStreamWriter- Parameters:
data- float value.- Throws:
java.io.IOException
-
writeDouble
public void writeDouble(double data) throws java.io.IOExceptionWrite the double value to the StreamWriter.- Specified by:
writeDoublein interfaceStreamWriter- Parameters:
data- double value.- Throws:
java.io.IOException
-
writeBooleanArray
public void writeBooleanArray(boolean[] data) throws java.io.IOExceptionWrite the array of boolean values to the StreamWriter.- Specified by:
writeBooleanArrayin interfaceStreamWriter- Parameters:
data- array of boolean values.- Throws:
java.io.IOException
-
writeByteArray
public void writeByteArray(byte[] data) throws java.io.IOExceptionWrite the array of byte values to the StreamWriter.- Specified by:
writeByteArrayin interfaceStreamWriter- Parameters:
data- array of byte values.- Throws:
java.io.IOException
-
writeByteArray
public void writeByteArray(byte[] data, int offset, int length) throws java.io.IOExceptionWrite the part of array of byte values to the StreamWriter, using specific offset and length values.- Specified by:
writeByteArrayin interfaceStreamWriter- Parameters:
data- array of byte values.offset- array offset to start from.length- number of bytes to write.- Throws:
java.io.IOException
-
writeCharArray
public void writeCharArray(char[] data) throws java.io.IOExceptionWrite the array of char values to the StreamWriter.- Specified by:
writeCharArrayin interfaceStreamWriter- Parameters:
data- array of char values.- Throws:
java.io.IOException
-
writeShortArray
public void writeShortArray(short[] data) throws java.io.IOExceptionWrite the array of short values to the StreamWriter.- Specified by:
writeShortArrayin interfaceStreamWriter- Parameters:
data- array of short values.- Throws:
java.io.IOException
-
writeIntArray
public void writeIntArray(int[] data) throws java.io.IOExceptionWrite the array of int values to the StreamWriter.- Specified by:
writeIntArrayin interfaceStreamWriter- Parameters:
data- array of int values.- Throws:
java.io.IOException
-
writeLongArray
public void writeLongArray(long[] data) throws java.io.IOExceptionWrite the array of long values to the StreamWriter.- Specified by:
writeLongArrayin interfaceStreamWriter- Parameters:
data- array of long values.- Throws:
java.io.IOException
-
writeFloatArray
public void writeFloatArray(float[] data) throws java.io.IOExceptionWrite the array of float values to the StreamWriter.- Specified by:
writeFloatArrayin interfaceStreamWriter- Parameters:
data- array of float values.- Throws:
java.io.IOException
-
writeDoubleArray
public void writeDoubleArray(double[] data) throws java.io.IOExceptionWrite the array of double values to the StreamWriter.- Specified by:
writeDoubleArrayin interfaceStreamWriter- Parameters:
data- array of double values.- Throws:
java.io.IOException
-
encode
public <E> GrizzlyFuture<Stream> encode(Transformer<E,Buffer> encoder, E object) throws java.io.IOException
- Specified by:
encodein interfaceStreamWriter- Throws:
java.io.IOException
-
encode
public <E> GrizzlyFuture<Stream> encode(Transformer<E,Buffer> encoder, E object, CompletionHandler<Stream> completionHandler) throws java.io.IOException
- Specified by:
encodein interfaceStreamWriter- Throws:
java.io.IOException
-
getConnection
public Connection getConnection()
Get theConnectionthis StreamWriter belongs to.- Specified by:
getConnectionin interfaceStream- Specified by:
getConnectionin interfaceStreamWriter- Returns:
- the
Connectionthis StreamWriter belongs to.
-
getTimeout
public long getTimeout(java.util.concurrent.TimeUnit timeunit)
Get the timeout for StreamWriter I/O operations.- Specified by:
getTimeoutin interfaceStreamWriter- Parameters:
timeunit- timeout unitTimeUnit.- Returns:
- the timeout for StreamWriter I/O operations.
-
setTimeout
public void setTimeout(long timeout, java.util.concurrent.TimeUnit timeunit)Set the timeout for StreamWriter I/O operations.- Specified by:
setTimeoutin interfaceStreamWriter- Parameters:
timeout- the timeout for StreamWriter I/O operations.timeunit- timeout unitTimeUnit.
-
-