java.lang.Object
org.glassfish.grizzly.http.util.ByteChunk
- All Implemented Interfaces:
Serializable
,Cloneable
,Chunk
This class is used to represent a chunk of bytes, and utilities to manipulate byte[].
The buffer can be modified and used for both input and output.
- Author:
- [email protected], James Todd [[email protected]], Costin Manolache, Remy Maucherat
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
static interface
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
allocate
(int initial, int limit) void
append
(byte b) void
append
(byte[] src, int off, int len) Add data to the buffervoid
append
(char c) void
static byte[]
convertToBytes
(String value) Convert specified String to a byte array.void
delete
(int start, int end) boolean
equals
(byte[] bytes) Compares the message bytes to the specified byte array.boolean
equals
(byte[] b2, int off2, int len2) static boolean
equals
(byte[] b1, int b1Offs, int b1Len, byte[] b2, int b2Offs, int b2Len) static boolean
boolean
equals
(char[] c2, int off2, int len2) boolean
boolean
Compares the message bytes to the specified String object.boolean
boolean
boolean
equalsIgnoreCase
(byte[] b) boolean
equalsIgnoreCase
(byte[] b, int offset, int len) static boolean
equalsIgnoreCase
(byte[] b1, int b1Offs, int b1Len, byte[] b2, int b2Offs, int b2Len) static boolean
equalsIgnoreCase
(byte[] b, int offset, int len, String s) Compares the message bytes to the specified String object.boolean
Compares the message bytes to the specified String object.boolean
equalsIgnoreCaseLowerCase
(byte[] cmpTo) static boolean
equalsIgnoreCaseLowerCase
(byte[] buffer, int start, int end, byte[] cmpTo) Compares the buffer chunk to the specified byte array representing lower-case ASCII characters.static int
findChar
(byte[] buf, int start, int end, char c) Find a character, no side effects.static int
findChars
(byte[] buf, int start, int end, byte[] c) Find a character, no side effects.static int
findNotChars
(byte[] buf, int start, int end, byte[] c) Find the first character != cvoid
byte[]
Returns the message bytes.byte[]
getBytes()
Returns the message bytes.getClone()
int
getEnd()
int
getInt()
int
Returns the length of the bytes.int
getLimit()
long
getLong()
int
int
getStart()
Returns the start offset of the bytes.int
hash()
int
hashCode()
int
static int
indexOf
(byte[] bytes, int off, int end, char qq) int
indexOf
(char c, int starting) Returns true if the message bytes starts with the specified string.int
int
boolean
isNull()
protected void
Notify the Chunk that its content is going to be changed directlyvoid
recycle()
Resets the message buff to an uninitialized state.void
void
reset()
protected void
void
When the buffer is empty, read the data from the input channel.void
When the buffer is full, write the data to the output channel.void
setBytes
(byte[] b, int off, int len) Sets the message bytes to the specified sub-array of bytes.void
setCharset
(Charset charset) void
setEnd
(int i) void
setLimit
(int limit) Maximum amount of data in this buffer.void
setOffset
(int off) void
setOptimizedWrite
(boolean optimizedWrite) void
setStart
(int start) boolean
startsWith
(byte[] b2) static boolean
startsWith
(byte[] buffer, int start, int end, byte[] cmpTo) boolean
startsWith
(String s) Returns true if the message bytes starts with the specified string.boolean
startsWith
(String s, int offset) Returns true if the message bytes starts with the specified string.boolean
startsWithIgnoreCase
(String s, int pos) Returns true if the message bytes starts with the specified string.int
int
substract
(byte[] src, int off, int len) int
toString()
toString
(int start, int end) void
trimLeft()
-
Constructor Details
-
ByteChunk
public ByteChunk()Creates a new, uninitialized ByteChunk object. -
ByteChunk
public ByteChunk(int initial)
-
-
Method Details
-
getClone
-
isNull
public boolean isNull() -
recycle
public void recycle()Resets the message buff to an uninitialized state. -
recycleAndReset
public void recycleAndReset() -
reset
public void reset() -
resetStringCache
protected void resetStringCache() -
allocate
public void allocate(int initial, int limit) -
setBytes
public void setBytes(byte[] b, int off, int len) Sets the message bytes to the specified sub-array of bytes.- Parameters:
b
- the ascii bytesoff
- the start offset of the byteslen
- the length of the bytes
-
setOptimizedWrite
public void setOptimizedWrite(boolean optimizedWrite) -
getCharset
-
setCharset
-
getBytes
public byte[] getBytes()Returns the message bytes. -
getBuffer
public byte[] getBuffer()Returns the message bytes. -
getStart
public int getStart()Returns the start offset of the bytes. For output this is the end of the buffer. -
getOffset
public int getOffset() -
setStart
public void setStart(int start) -
setOffset
public void setOffset(int off) -
getLength
public int getLength()Returns the length of the bytes. XXX need to clean this up -
setLimit
public void setLimit(int limit) Maximum amount of data in this buffer. If -1 or not set, the buffer will grow indefinitely. Can be smaller than the current buffer size ( which will not shrink ). When the limit is reached, the buffer will be flushed ( if out is set ) or throw exception. -
getLimit
public int getLimit() -
setByteInputChannel
When the buffer is empty, read the data from the input channel. -
setByteOutputChannel
When the buffer is full, write the data to the output channel. Also used when large amount of data is appended. If not set, the buffer will grow to the limit. -
getEnd
public int getEnd() -
setEnd
public void setEnd(int i) -
notifyDirectUpdate
protected void notifyDirectUpdate()Notify the Chunk that its content is going to be changed directly -
indexOf
-
delete
public void delete(int start, int end) -
append
- Throws:
IOException
-
append
- Throws:
IOException
-
append
- Throws:
IOException
-
append
Add data to the buffer- Throws:
IOException
-
substract
- Throws:
IOException
-
substract
- Throws:
IOException
-
substract
- Throws:
IOException
-
flushBuffer
- Throws:
IOException
-
trimLeft
public void trimLeft() -
toString
-
toString
-
toString
-
toStringInternal
-
getInt
public int getInt() -
getLong
public long getLong() -
hashCode
public int hashCode() -
equals
-
equals
Compares the message bytes to the specified String object.- Parameters:
s
- the String to compare- Returns:
- true if the comparison succeeded, false otherwise
-
equals
public boolean equals(byte[] bytes) Compares the message bytes to the specified byte array.- Parameters:
bytes
- thebyte[]
to compare- Returns:
- true if the comparison succeeded, false otherwise
- Since:
- 2.3
-
equalsIgnoreCase
Compares the message bytes to the specified String object.- Parameters:
s
- the String to compare- Returns:
- true if the comparison succeeded, false otherwise
-
equalsIgnoreCase
public boolean equalsIgnoreCase(byte[] b) -
equalsIgnoreCase
public boolean equalsIgnoreCase(byte[] b, int offset, int len) -
equalsIgnoreCaseLowerCase
public boolean equalsIgnoreCaseLowerCase(byte[] cmpTo) -
equals
-
equals
public boolean equals(byte[] b2, int off2, int len2) -
equals
-
equals
public boolean equals(char[] c2, int off2, int len2) -
startsWith
Returns true if the message bytes starts with the specified string.- Parameters:
s
- the string
-
startsWith
Returns true if the message bytes starts with the specified string.- Parameters:
s
- the stringoffset
- The position
-
startsWith
public boolean startsWith(byte[] b2) -
startsWithIgnoreCase
Returns true if the message bytes starts with the specified string.- Parameters:
s
- the stringpos
- The position
-
indexOf
-
hash
public int hash() -
hashIgnoreCase
public int hashIgnoreCase() -
equals
public static boolean equals(byte[] b1, int b1Offs, int b1Len, byte[] b2, int b2Offs, int b2Len) -
equals
-
equalsIgnoreCase
public static boolean equalsIgnoreCase(byte[] b1, int b1Offs, int b1Len, byte[] b2, int b2Offs, int b2Len) -
equalsIgnoreCase
Compares the message bytes to the specified String object.- Parameters:
s
- the String to compare- Returns:
- true if the comparison succeeded, false otherwise
-
equalsIgnoreCaseLowerCase
public static boolean equalsIgnoreCaseLowerCase(byte[] buffer, int start, int end, byte[] cmpTo) Compares the buffer chunk to the specified byte array representing lower-case ASCII characters.- Parameters:
buffer
- thebyte[]
to comparestart
- buffer startend
- buffer endcmpTo
- byte[] to compare against- Returns:
- true if the comparison succeeded, false otherwise
- Since:
- 2.3
-
startsWith
public static boolean startsWith(byte[] buffer, int start, int end, byte[] cmpTo) -
indexOf
public int indexOf(char c, int starting) Returns true if the message bytes starts with the specified string. -
indexOf
public static int indexOf(byte[] bytes, int off, int end, char qq) -
findChar
public static int findChar(byte[] buf, int start, int end, char c) Find a character, no side effects.- Returns:
- index of char if found, -1 if not
-
findChars
public static int findChars(byte[] buf, int start, int end, byte[] c) Find a character, no side effects.- Returns:
- index of char if found, -1 if not
-
findNotChars
public static int findNotChars(byte[] buf, int start, int end, byte[] c) Find the first character != c- Returns:
- index of char if found, -1 if not
-
convertToBytes
Convert specified String to a byte array.- Parameters:
value
- to convert to byte array- Returns:
- the byte array value
-