## org.apache.jk.common
Class MsgAjp

    java.lang.Object
      org.apache.jk.core.Msg
          org.apache.jk.common.MsgAjp

public class MsgAjp
extends Msg

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.

Author:
  Henri Gomez [hgomez@apache.org], Dan Milstein [danmil@shore.net], Keith Wannamaker [Keith@Wannamaker.org], Kevin Seguin, Costin Manolache
See Also:
  `Ajp14/Ajp13Packet`

Constructor Summary
`MsgAjp()`

Method Summary
`void` `appendByte(int val)`
`void` `appendByteChunk(ByteChunk bc)`
`void` `appendBytes(byte[] b, int off, int numBytes)` Copy a chunk of bytes into the packet, starting at the current write position.
`void` `appendBytes(MessageBytes mb)` Write a String out at the current write position.
`void` `appendInt(int val)` Add an int.
`void` `appendLongInt(int val)`
`void` `dump(java.lang.String msg)`
`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.
`byte[]` `getBuffer()`
`byte` `getByte()`
`int` `getBytes(byte[] dest)` Copy a chunk of bytes from the packet into an array and advance the read position past the chunk.
`void` `getBytes(MessageBytes mb)`
`int` `getHeaderLength()`
`int` `getInt()` Read an integer from packet, and advance the read position past it.
`int` `getLen()`
`int` `getLongInt()` Read a 32 bits integer from packet, and advance the read position past it.
`static java.lang.String` `hexLine(byte[] buf, int start, int len)`
`byte` `peekByte()`
`int` `peekInt()`
`int` `processHeader()`
`void` `reset()` Prepare this packet for accumulating a message from the container to the web server.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MsgAjp

    public MsgAjp()

Method Detail

### 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).

  Specified by:
    `reset` in class `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.

  Specified by:
    `end` in class `Msg`

### getBuffer

    public byte[] getBuffer()

  Specified by:
    `getBuffer` in class `Msg`

### getLen

    public int getLen()

  Specified by:
    `getLen` in class `Msg`

### appendInt

    public void appendInt(int val)

  Add an int.

  Specified by:
    `appendInt` in class `Msg`
  Parameters:
    `val` - The integer to write.

### appendByte

    public void appendByte(int val)

  Specified by:
    `appendByte` in class `Msg`

### appendLongInt

    public void appendLongInt(int val)

  Specified by:
    `appendLongInt` in class `Msg`

### appendBytes

    public void appendBytes(MessageBytes mb)
                     throws java.io.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.

  Specified by:
    `appendBytes` in class `Msg`
  Throws:
    `java.io.IOException`

### appendByteChunk

    public void appendByteChunk(ByteChunk bc)
                         throws java.io.IOException

  Specified by:
    `appendByteChunk` in class `Msg`
  Throws:
    `java.io.IOException`

### appendBytes

    public void appendBytes(byte[] 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).

  Specified by:
    `appendBytes` in class `Msg`
  Parameters:
    `b` - The array from which to copy bytes.
    `off` - The offset into the array at which to start copying

### 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.

  Specified by:
    `getInt` in class `Msg`

### peekInt

    public int peekInt()

  Specified by:
    `peekInt` in class `Msg`

### getByte

    public byte getByte()

  Specified by:
    `getByte` in class `Msg`

### peekByte

    public byte peekByte()

  Specified by:
    `peekByte` in class `Msg`

### getBytes

    public void getBytes(MessageBytes mb)

  Specified by:
    `getBytes` in class `Msg`

### getBytes

    public int getBytes(byte[] 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.

  Specified by:
    `getBytes` in class `Msg`
  Returns:
    The number of bytes copied.

### 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.

  Specified by:
    `getLongInt` in class `Msg`

### getHeaderLength

    public int getHeaderLength()

  Specified by:
    `getHeaderLength` in class `Msg`

### processHeader

    public int processHeader()

  Specified by:
    `processHeader` in class `Msg`

### dump

    public void dump(java.lang.String msg)

  Specified by:
    `dump` in class `Msg`

### hexLine

    public static java.lang.String hexLine(byte[] buf,
                                           int start,
                                           int len)

Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.