ByteChunk.ByteInputChannel | Input interface, used when the buffer is emptiy Same as java.nio.channel.ReadableByteChannel | code | html |
ByteChunk.ByteOutputChannel | Same as java.nio.channel.WrittableByteChannel. | code | html |
CharChunk.CharInputChannel | code | html | |
CharChunk.CharOutputChannel | When we need more space we'll either grow the buffer ( up to the limit ) or send it to a channel. | code | html |
Ascii | This class implements some basic ASCII character handling functions. | code | html |
B2CConverter | Efficient conversion of bytes to character . | code | html |
Base64 | This class provides encode/decode for RFC 2045 Base64 as defined by RFC 2045, N. | code | html |
ByteChunk | This class is used to represent a chunk of bytes, and utilities to manipulate byte[]. | code | html |
C2BConverter | Efficient conversion of character to bytes. | code | html |
CharChunk | Utilities to manipluate char chunks. | code | html |
DateTool | Common place for date utils. | code | html |
HexUtils | Library of utility methods useful in dealing with converting byte arrays to and from strings of hexadecimal digits. | code | html |
IntermediateInputStream | Special output stream where close() is overriden, so super.close() is never called. | code | html |
IntermediateOutputStream | Special output stream where close() is overriden, so super.close() is never called. | code | html |
MessageBytes | This class is used to represent a subarray of bytes in an HTTP message. | code | html |
MessageBytes.MessageBytesFactory | code | html | |
ReadConvertor | code | html | |
StringCache | This class implements a String cache for ByteChunk and CharChunk. | code | html |
StringCache.ByteEntry | code | html | |
StringCache.CharEntry | code | html | |
TimeStamp | Main tool for object expiry. | code | html |
UDecoder | All URL decoding happens here. | code | html |
UEncoder | Efficient implementation for encoders. | code | html |
UTF8Decoder | Moved from ByteChunk - code to convert from UTF8 bytes to chars. | code | html |
WriteConvertor | Special writer class, where close() is overritten. | code | html |
Encoding is a critical operation for performance. There are few tricks in this package - the C2B and B2C converters are caching a ISReader/OSWriter and keep everything allocated to do the conversions in any VM without any garbage.
This package must accomodate future extensions and additional converters ( most imporant: the nio.charset, which should be detected and used if available ). Also, we do have one hand-written UTF8Decoder, and other tuned encoders could be added.
My benchmarks ( I'm costin :-) show only small differences between C2B, B2C and hand-written codders/decoders, so UTF8Decoder may be disabled.