## org.apache.jk.core
Class Msg

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

Direct Known Subclasses:
  MsgAjp

public abstract class Msg
extends java.lang.Object

A single packet for communication between the web server and the container. In a more generic sense, it's the event that drives the processing chain. XXX Use Event, make Msg a particular case.

Author:
  Henri Gomez [hgomez@apache.org], Dan Milstein [danmil@shore.net], Keith Wannamaker [Keith@Wannamaker.org], Kevin Seguin, Costin Manolache

Constructor Summary
`Msg()`

Method Summary
`abstract void` `appendByte(int val)`
`abstract void` `appendByteChunk(ByteChunk bc)`
`abstract void` `appendBytes(byte[] b, int off, int numBytes)` Copy a chunk of bytes into the packet, starting at the current write position.
`abstract void` `appendBytes(MessageBytes mb)`
`abstract void` `appendInt(int val)`
`abstract void` `appendLongInt(int val)`
`abstract void` `dump(java.lang.String msg)`
`abstract 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.
`abstract byte[]` `getBuffer()`
`abstract byte` `getByte()`
`abstract int` `getBytes(byte[] dest)` Copy a chunk of bytes from the packet into an array and advance the read position past the chunk.
`abstract void` `getBytes(MessageBytes mb)`
`abstract int` `getHeaderLength()`
`abstract int` `getInt()` Read an integer from packet, and advance the read position past it.
`abstract int` `getLen()`
`abstract 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)`
`abstract byte` `peekByte()`
`abstract int` `peekInt()`
`abstract int` `processHeader()`
`abstract 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

### Msg

    public Msg()

Method Detail

### reset

    public abstract 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).

### end

    public abstract 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.

### appendInt

    public abstract void appendInt(int val)

### appendByte

    public abstract void appendByte(int val)

### appendLongInt

    public abstract void appendLongInt(int val)

### appendBytes

    public abstract void appendBytes(MessageBytes mb)
                              throws java.io.IOException

  Throws:
    `java.io.IOException`

### appendByteChunk

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

  Throws:
    `java.io.IOException`

### appendBytes

    public abstract 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).

  Parameters:
    `b` - The array from which to copy bytes.
    `off` - The offset into the array at which to start copying

### getInt

    public abstract 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.

### peekInt

    public abstract int peekInt()

### getByte

    public abstract byte getByte()

### peekByte

    public abstract byte peekByte()

### getBytes

    public abstract void getBytes(MessageBytes mb)

### getBytes

    public abstract 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.

  Returns:
    The number of bytes copied.

### getLongInt

    public abstract 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.

### getHeaderLength

    public abstract int getHeaderLength()

### processHeader

    public abstract int processHeader()

### getBuffer

    public abstract byte[] getBuffer()

### getLen

    public abstract int getLen()

### dump

    public abstract void dump(java.lang.String msg)

### hexLine

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

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