water
Class AutoBuffer

java.lang.Object
  extended by water.AutoBuffer

public final class AutoBuffer
extends java.lang.Object

A ByteBuffer backed mixed Input/OutputStream class. Reads/writes empty/fill the ByteBuffer as needed. When it is empty/full it we go to the ByteChannel for more/less. Because DirectByteBuffers are expensive to make, we keep a few pooled.


Nested Class Summary
static class AutoBuffer.TCPIsUnreliableException
           
 
Field Summary
 int _arys
           
 java.nio.ByteBuffer _bb
           
 H2ONode _h2o
           
 byte _persist
           
 int _size
           
 long _time_close_ms
           
 long _time_io_ns
           
 long _time_start_ms
           
 int _zeros
           
static int BBSIZE
           
static int MTU
           
static int TCP_WRITE_ATTEMPTS
           
 
Constructor Summary
AutoBuffer()
          Write to an ever-expanding byte[].
AutoBuffer(byte[] buf)
          Read from a fixed byte[]; should not be closed.
AutoBuffer(byte[] buf, int off)
          Read from a fixed byte[]; should not be closed.
AutoBuffer(java.nio.channels.DatagramChannel sock)
           
AutoBuffer(java.net.DatagramPacket pack)
           
AutoBuffer(java.nio.channels.FileChannel fc, boolean read, byte persist)
           
AutoBuffer(H2ONode h2o)
           
AutoBuffer(int len)
          Write to a known sized byte[].
AutoBuffer(java.nio.channels.SocketChannel sock)
           
 
Method Summary
 byte[] buf()
           
 byte[] bufClose()
           
 AutoBuffer clearForWriting()
           
 int close()
           
 int close(boolean expect_tcp, boolean failed)
           
 AutoBuffer copyArrayFrom(int offset, AutoBuffer ab, int abOff, int len)
           
 void drainClose()
           
 boolean eof()
           
 AutoBuffer flipForReading()
           
<T extends Iced>
T
get()
           
<T extends Freezable>
T
get(java.lang.Class<T> t)
           
 int get1()
           
 int get1(int off)
           
 char get2()
           
 char get2(int off)
           
 int get3()
           
 int get4()
           
 int get4(int off)
           
 float get4f()
           
 float get4f(int off)
           
 long get8()
           
 long get8(int off)
           
 double get8d()
           
 double get8d(int off)
           
<T extends Iced>
T[]
getA(java.lang.Class<T> tc)
           
 byte[] getA1()
           
 byte[] getA1(int len)
           
 short[] getA2()
           
 int[] getA4()
           
 float[] getA4f()
           
 long[] getA8()
           
 double[] getA8d()
           
<T extends Iced>
T[][]
getAA(java.lang.Class<T> tc)
           
 byte[][] getAA1()
           
 short[][] getAA2()
           
 int[][] getAA4()
           
 float[][] getAA4f()
           
 long[][] getAA8()
           
 double[][] getAA8d()
           
<T extends Iced>
T[][][]
getAAA(java.lang.Class<T> tc)
           
 int[][][] getAAA4()
           
 java.lang.String[][] getAAStr()
           
 java.lang.String[] getAStr()
           
 int getCtrl()
           
 int getFlag()
           
 int getInt()
           
 int getPort()
           
 java.lang.String getStr()
           
 java.lang.String getStr(int off, int len)
           
 int getTask()
           
 boolean getZ()
           
 long getZA()
           
 int limit()
           
 int peek1()
           
 int position()
           
 void position(int pos)
           
 void positionWithResize(int value)
           
 AutoBuffer put(Freezable f)
           
 AutoBuffer put(Iced f)
           
 AutoBuffer put1(int b)
           
 AutoBuffer put1(int off, int v)
           
 AutoBuffer put2(char c)
           
 AutoBuffer put2(int off, char v)
           
 AutoBuffer put2(int off, short v)
           
 AutoBuffer put2(short s)
           
 AutoBuffer put3(int x)
           
 AutoBuffer put4(int i)
           
 AutoBuffer put4(int off, int v)
           
 AutoBuffer put4f(float f)
           
 AutoBuffer put4f(int off, float v)
           
 AutoBuffer put8(int off, long v)
           
 AutoBuffer put8(long l)
           
 AutoBuffer put8d(double d)
           
 AutoBuffer put8d(int off, double v)
           
 AutoBuffer putA(Iced[] fs)
           
 AutoBuffer putA1(byte[] ary)
           
 AutoBuffer putA1(byte[] ary, int length)
           
 AutoBuffer putA1(byte[] ary, int sofar, int length)
           
 AutoBuffer putA2(short[] ary)
           
 AutoBuffer putA4(int[] ary)
           
 AutoBuffer putA4f(float[] ary)
           
 AutoBuffer putA8(long[] ary)
           
 AutoBuffer putA8d(double[] ary)
           
 AutoBuffer putAA(Iced[][] fs)
           
 AutoBuffer putAA1(byte[][] ary)
           
 AutoBuffer putAA2(short[][] ary)
           
 AutoBuffer putAA4(int[][] ary)
           
 AutoBuffer putAA4f(float[][] ary)
           
 AutoBuffer putAA8(long[][] ary)
           
 AutoBuffer putAA8d(double[][] ary)
           
 AutoBuffer putAAA(Iced[][][] fs)
           
 AutoBuffer putAAA4(int[][][] ary)
           
 AutoBuffer putAAStr(java.lang.String[][] fs)
           
 AutoBuffer putAStr(java.lang.String[] fs)
           
 AutoBuffer putEnum(java.lang.Enum x)
           
 AutoBuffer putEnumJSON(java.lang.Enum e)
           
 AutoBuffer putEnumJSON(java.lang.String name, java.lang.Enum e)
           
 AutoBuffer putInt(int x)
           
 AutoBuffer putJSON(Iced ice)
           
 AutoBuffer putJSON(java.lang.String name, Iced f)
           
 AutoBuffer putJSON1(byte b)
           
 AutoBuffer putJSON4(int i)
           
 AutoBuffer putJSON4(java.lang.String name, int i)
           
 AutoBuffer putJSON4f(float f)
           
 AutoBuffer putJSON4f(java.lang.String name, float f)
           
 AutoBuffer putJSON8(long l)
           
 AutoBuffer putJSON8(java.lang.String name, long l)
           
 AutoBuffer putJSON8d(double d)
           
 AutoBuffer putJSON8d(java.lang.String name, double d)
           
 AutoBuffer putJSONA(Iced[] fs)
           
 AutoBuffer putJSONA(java.lang.String name, Iced[] f)
           
 AutoBuffer putJSONA1(byte[] ary)
           
 AutoBuffer putJSONA4(int[] a)
           
 AutoBuffer putJSONA4(java.lang.String name, int[] a)
           
 AutoBuffer putJSONA4f(float[] a)
           
 AutoBuffer putJSONA4f(java.lang.String name, float[] a)
           
 AutoBuffer putJSONA8(long[] ary)
           
 AutoBuffer putJSONA8(java.lang.String name, long[] ary)
           
 AutoBuffer putJSONA8d(double[] a)
           
 AutoBuffer putJSONA8d(java.lang.String name, double[] a)
           
 AutoBuffer putJSONAA(Iced[][] fs)
           
 AutoBuffer putJSONAA(java.lang.String name, Iced[][] f)
           
 AutoBuffer putJSONAA1(byte[][] ary)
           
 AutoBuffer putJSONAA1(java.lang.String name, byte[][] ary)
           
 AutoBuffer putJSONAA4(java.lang.String name, int[][] a)
           
 AutoBuffer putJSONAA4f(java.lang.String name, float[][] a)
           
 AutoBuffer putJSONAA8(long[][] ary)
           
 AutoBuffer putJSONAA8(java.lang.String name, long[][] ary)
           
 AutoBuffer putJSONAA8d(java.lang.String name, double[][] a)
           
 AutoBuffer putJSONAAStr(java.lang.String name, java.lang.String[][] a)
           
 AutoBuffer putJSONAStr(java.lang.String[] fs)
           
 AutoBuffer putJSONAStr(java.lang.String name, java.lang.String[] fs)
           
 AutoBuffer putJSONStr(java.lang.String s)
           
 AutoBuffer putJSONStr(java.lang.String name, java.lang.String value)
           
 AutoBuffer putNULL()
           
 AutoBuffer putStr(java.lang.String s)
           
 AutoBuffer putStr2(java.lang.String s)
           
 AutoBuffer putTask(int ctrl, int tasknum)
           
 AutoBuffer putTask(UDP.udp type, int tasknum)
           
 AutoBuffer putUdp(UDP.udp type)
           
 AutoBuffer putZ(boolean b)
           
 long putZA(java.lang.Object[] A)
           
 int read(byte[] buf, int off, int len)
           
 int remaining()
           
 void shift(int source, int target, int length)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TCP_WRITE_ATTEMPTS

public static final int TCP_WRITE_ATTEMPTS
See Also:
Constant Field Values

_bb

public java.nio.ByteBuffer _bb

_h2o

public final H2ONode _h2o

_size

public int _size

_zeros

public int _zeros

_arys

public int _arys

_time_start_ms

public long _time_start_ms

_time_close_ms

public long _time_close_ms

_time_io_ns

public long _time_io_ns

_persist

public final byte _persist

MTU

public static final int MTU
See Also:
Constant Field Values

BBSIZE

public static final int BBSIZE
See Also:
Constant Field Values
Constructor Detail

AutoBuffer

public AutoBuffer(java.nio.channels.DatagramChannel sock)
           throws java.io.IOException
Throws:
java.io.IOException

AutoBuffer

public AutoBuffer(java.nio.channels.SocketChannel sock)
           throws java.io.IOException
Throws:
java.io.IOException

AutoBuffer

public AutoBuffer(H2ONode h2o)

AutoBuffer

public AutoBuffer(java.nio.channels.FileChannel fc,
                  boolean read,
                  byte persist)

AutoBuffer

public AutoBuffer(java.net.DatagramPacket pack)

AutoBuffer

public AutoBuffer(byte[] buf)
Read from a fixed byte[]; should not be closed.


AutoBuffer

public AutoBuffer(byte[] buf,
                  int off)
Read from a fixed byte[]; should not be closed.


AutoBuffer

public AutoBuffer()
Write to an ever-expanding byte[]. Instead of calling close(), call buf() to retrieve the final byte[].


AutoBuffer

public AutoBuffer(int len)
Write to a known sized byte[]. Instead of calling close(), call bufClose() to retrieve the final byte[].

Method Detail

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

close

public final int close()

close

public final int close(boolean expect_tcp,
                       boolean failed)

drainClose

public void drainClose()

remaining

public int remaining()

position

public int position()

position

public void position(int pos)

limit

public int limit()

positionWithResize

public void positionWithResize(int value)

buf

public final byte[] buf()

bufClose

public final byte[] bufClose()

eof

public final boolean eof()

clearForWriting

public AutoBuffer clearForWriting()

flipForReading

public AutoBuffer flipForReading()

peek1

public int peek1()

getStr

public java.lang.String getStr(int off,
                               int len)

getZ

public boolean getZ()

get1

public int get1()

get2

public char get2()

get4

public int get4()

get4f

public float get4f()

get8

public long get8()

get8d

public double get8d()

get3

public int get3()

put3

public AutoBuffer put3(int x)

get1

public int get1(int off)

get2

public char get2(int off)

get4

public int get4(int off)

get4f

public float get4f(int off)

get8

public long get8(int off)

get8d

public double get8d(int off)

put1

public AutoBuffer put1(int off,
                       int v)

put2

public AutoBuffer put2(int off,
                       char v)

put2

public AutoBuffer put2(int off,
                       short v)

put4

public AutoBuffer put4(int off,
                       int v)

put4f

public AutoBuffer put4f(int off,
                        float v)

put8

public AutoBuffer put8(int off,
                       long v)

put8d

public AutoBuffer put8d(int off,
                        double v)

putZ

public AutoBuffer putZ(boolean b)

put1

public AutoBuffer put1(int b)

put2

public AutoBuffer put2(char c)

put2

public AutoBuffer put2(short s)

put4

public AutoBuffer put4(int i)

put4f

public AutoBuffer put4f(float f)

put8

public AutoBuffer put8(long l)

put8d

public AutoBuffer put8d(double d)

put

public AutoBuffer put(Freezable f)

put

public AutoBuffer put(Iced f)

putInt

public AutoBuffer putInt(int x)

getInt

public int getInt()

putZA

public long putZA(java.lang.Object[] A)

getZA

public long getZA()

putA

public AutoBuffer putA(Iced[] fs)

putAA

public AutoBuffer putAA(Iced[][] fs)

putAAA

public AutoBuffer putAAA(Iced[][][] fs)

get

public <T extends Freezable> T get(java.lang.Class<T> t)

get

public <T extends Iced> T get()

getA

public <T extends Iced> T[] getA(java.lang.Class<T> tc)

getAA

public <T extends Iced> T[][] getAA(java.lang.Class<T> tc)

getAAA

public <T extends Iced> T[][][] getAAA(java.lang.Class<T> tc)

putAStr

public AutoBuffer putAStr(java.lang.String[] fs)

getAStr

public java.lang.String[] getAStr()

putAAStr

public AutoBuffer putAAStr(java.lang.String[][] fs)

getAAStr

public java.lang.String[][] getAAStr()

read

public int read(byte[] buf,
                int off,
                int len)

getCtrl

public int getCtrl()

getPort

public int getPort()

getTask

public int getTask()

getFlag

public int getFlag()

putUdp

public AutoBuffer putUdp(UDP.udp type)

putTask

public AutoBuffer putTask(UDP.udp type,
                          int tasknum)

putTask

public AutoBuffer putTask(int ctrl,
                          int tasknum)

getA1

public byte[] getA1()

getA1

public byte[] getA1(int len)

getA2

public short[] getA2()

getA4

public int[] getA4()

getA4f

public float[] getA4f()

getA8

public long[] getA8()

getA8d

public double[] getA8d()

getAA1

public byte[][] getAA1()

getAA2

public short[][] getAA2()

getAA4

public int[][] getAA4()

getAA4f

public float[][] getAA4f()

getAA8

public long[][] getAA8()

getAA8d

public double[][] getAA8d()

getAAA4

public int[][][] getAAA4()

getStr

public java.lang.String getStr()

putA1

public AutoBuffer putA1(byte[] ary)

putA1

public AutoBuffer putA1(byte[] ary,
                        int length)

putA1

public AutoBuffer putA1(byte[] ary,
                        int sofar,
                        int length)

putA2

public AutoBuffer putA2(short[] ary)

putA4

public AutoBuffer putA4(int[] ary)

putA8

public AutoBuffer putA8(long[] ary)

putA4f

public AutoBuffer putA4f(float[] ary)

putA8d

public AutoBuffer putA8d(double[] ary)

putAA1

public AutoBuffer putAA1(byte[][] ary)

putAA2

public AutoBuffer putAA2(short[][] ary)

putAA4

public AutoBuffer putAA4(int[][] ary)

putAA4f

public AutoBuffer putAA4f(float[][] ary)

putAA8

public AutoBuffer putAA8(long[][] ary)

putAA8d

public AutoBuffer putAA8d(double[][] ary)

putAAA4

public AutoBuffer putAAA4(int[][][] ary)

putStr

public AutoBuffer putStr(java.lang.String s)

putEnum

public AutoBuffer putEnum(java.lang.Enum x)

copyArrayFrom

public AutoBuffer copyArrayFrom(int offset,
                                AutoBuffer ab,
                                int abOff,
                                int len)

shift

public void shift(int source,
                  int target,
                  int length)

putStr2

public AutoBuffer putStr2(java.lang.String s)

putNULL

public AutoBuffer putNULL()

putJSONStr

public AutoBuffer putJSONStr(java.lang.String s)

putJSONStr

public AutoBuffer putJSONStr(java.lang.String name,
                             java.lang.String value)

putJSONAStr

public AutoBuffer putJSONAStr(java.lang.String name,
                              java.lang.String[] fs)

putJSONAStr

public AutoBuffer putJSONAStr(java.lang.String[] fs)

putJSONAAStr

public AutoBuffer putJSONAAStr(java.lang.String name,
                               java.lang.String[][] a)

putJSON

public AutoBuffer putJSON(Iced ice)

putJSONA

public AutoBuffer putJSONA(Iced[] fs)

putJSONAA

public AutoBuffer putJSONAA(Iced[][] fs)

putJSON1

public AutoBuffer putJSON1(byte b)

putJSONA1

public AutoBuffer putJSONA1(byte[] ary)

putJSONAA1

public AutoBuffer putJSONAA1(byte[][] ary)

putJSONAA1

public AutoBuffer putJSONAA1(java.lang.String name,
                             byte[][] ary)

putJSON8

public AutoBuffer putJSON8(long l)

putJSONA8

public AutoBuffer putJSONA8(long[] ary)

putJSONAA8

public AutoBuffer putJSONAA8(long[][] ary)

putEnumJSON

public AutoBuffer putEnumJSON(java.lang.Enum e)

putJSON

public AutoBuffer putJSON(java.lang.String name,
                          Iced f)

putJSONA

public AutoBuffer putJSONA(java.lang.String name,
                           Iced[] f)

putJSONAA

public AutoBuffer putJSONAA(java.lang.String name,
                            Iced[][] f)

putJSON8

public AutoBuffer putJSON8(java.lang.String name,
                           long l)

putEnumJSON

public AutoBuffer putEnumJSON(java.lang.String name,
                              java.lang.Enum e)

putJSONA8

public AutoBuffer putJSONA8(java.lang.String name,
                            long[] ary)

putJSONAA8

public AutoBuffer putJSONAA8(java.lang.String name,
                             long[][] ary)

putJSON4

public AutoBuffer putJSON4(int i)

putJSON4

public AutoBuffer putJSON4(java.lang.String name,
                           int i)

putJSONA4

public AutoBuffer putJSONA4(int[] a)

putJSONA4

public AutoBuffer putJSONA4(java.lang.String name,
                            int[] a)

putJSONAA4

public AutoBuffer putJSONAA4(java.lang.String name,
                             int[][] a)

putJSON4f

public AutoBuffer putJSON4f(float f)

putJSON4f

public AutoBuffer putJSON4f(java.lang.String name,
                            float f)

putJSONA4f

public AutoBuffer putJSONA4f(float[] a)

putJSONA4f

public AutoBuffer putJSONA4f(java.lang.String name,
                             float[] a)

putJSONAA4f

public AutoBuffer putJSONAA4f(java.lang.String name,
                              float[][] a)

putJSON8d

public AutoBuffer putJSON8d(double d)

putJSON8d

public AutoBuffer putJSON8d(java.lang.String name,
                            double d)

putJSONA8d

public AutoBuffer putJSONA8d(double[] a)

putJSONA8d

public AutoBuffer putJSONA8d(java.lang.String name,
                             double[] a)

putJSONAA8d

public AutoBuffer putJSONAA8d(java.lang.String name,
                              double[][] a)