org.apache.jk.common
Class MsgAjp
A single packet for communication between the web server and the
container. Designed to be reused many times with no creation of
garbage. Understands the format of data types for these packets.
Can be used (somewhat confusingly) for both incoming and outgoing
packets.
- Henri Gomez [hgomez@apache.org]
- Dan Milstein [danmil@shore.net]
- Keith Wannamaker [Keith@Wannamaker.org]
- Kevin Seguin
- Costin Manolache
Ajp14/Ajp13Packet
appendByte , appendByteChunk , appendBytes , appendBytes , appendInt , appendLongInt , dump , end , getBuffer , getByte , getBytes , getBytes , getHeaderLength , getInt , getLen , getLongInt , hexLine , peekByte , peekInt , processHeader , reset |
appendByte
public void appendByte(int val)
- appendByte in interface Msg
appendByteChunk
public void appendByteChunk(ByteChunk bc)
throws IOException
- appendByteChunk in interface Msg
appendBytes
public void appendBytes(b[] ,
int off,
int numBytes)
Copy a chunk of bytes into the packet, starting at the current
write position. The chunk of bytes is encoded with the length
in two bytes first, then the data itself, and finally a
terminating \0 (which is not included in the encoded
length).
- appendBytes in interface Msg
off
- The offset into the array at which to start copying
appendBytes
public void appendBytes(MessageBytes mb)
throws IOException
Write a String out at the current write position. Strings are
encoded with the length in two bytes first, then the string, and
then a terminating \0 (which is not included in the
encoded length). The terminator is for the convenience of the C
code, where it saves a round of copying. A null string is
encoded as a string with length 0.
- appendBytes in interface Msg
appendInt
public void appendInt(int val)
Add an int.
- appendInt in interface Msg
val
- The integer to write.
appendLongInt
public void appendLongInt(int val)
- appendLongInt in interface Msg
dump
public void dump(String msg)
- dump in interface Msg
end
public void end()
For a packet to be sent to the web server, finish the process of
accumulating data and write the length of the data payload into
the header.
- end in interface Msg
getBuffer
public byte[] getBuffer()
- getBuffer in interface Msg
getByte
public byte getByte()
- getByte in interface Msg
getBytes
public int getBytes(dest[] )
Copy a chunk of bytes from the packet into an array and advance
the read position past the chunk. See appendBytes() for details
on the encoding.
- getBytes in interface Msg
- The number of bytes copied.
getHeaderLength
public int getHeaderLength()
- getHeaderLength in interface Msg
getInt
public int getInt()
Read an integer from packet, and advance the read position past
it. Integers are encoded as two unsigned bytes with the
high-order byte first, and, as far as I can tell, in
little-endian order within each byte.
- getInt in interface Msg
getLen
public int getLen()
- getLen in interface Msg
getLongInt
public int getLongInt()
Read a 32 bits integer from packet, and advance the read position past
it. Integers are encoded as four unsigned bytes with the
high-order byte first, and, as far as I can tell, in
little-endian order within each byte.
- getLongInt in interface Msg
hexLine
public static String hexLine(buf[] ,
int start,
int len)
- hexLine in interface Msg
peekByte
public byte peekByte()
- peekByte in interface Msg
peekInt
public int peekInt()
- peekInt in interface Msg
processHeader
public int processHeader()
- processHeader in interface Msg
reset
public void reset()
Prepare this packet for accumulating a message from the container to
the web server. Set the write position to just after the header
(but leave the length unwritten, because it is as yet unknown).
- reset in interface Msg
Copyright B) 2000-2003 Apache Software Foundation. All Rights Reserved.