Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.rabbitmq.client.impl
Class Frame

    java.lang.Object
      com.rabbitmq.client.impl.Frame

    public class Frame

extends java.lang.Object

Represents an AMQP wire-protocol frame, with frame type, channel number, and payload bytes. TODO: make state private

Field Summary
`int` | `channel` Frame channel number, 0-65535
`int` | `type` Frame type code

Constructor Summary
`Frame(int type, int channel)` Constructs a frame for output with a type and a channel number and a fresh accumulator waiting for payload.
`Frame(int type, int channel, byte[] payload)` Constructs a frame for input with a type, a channel number and a payload byte array.

Method Summary
`static long` | `arraySize(java.util.List<?> values)` Computes the AMQP wire-protocol length of an encoded field-array of type List
`static long` | `arraySize(java.lang.Object[] values)` Computes the AMQP wire-protocol length of an encoded field-array of type Object[]
`static Frame` | `fromBodyFragment(int channelNumber, byte[] body, int offset, int length)`
`java.io.DataInputStream` | `getInputStream()` Public API - retrieves a new DataInputStream streaming over the payload
`java.io.DataOutputStream` | `getOutputStream()` Public API - retrieves a fresh DataOutputStream streaming into the accumulator
`byte[]` | `getPayload()` Public API - retrieves the frame payload
`static void` | `protocolVersionMismatch(java.io.DataInputStream is)` Private API - A protocol version mismatch is detected by checking the three next bytes if a frame type of (int)'A' is read from an input stream.
`static Frame` | `readFrom(java.io.DataInputStream is)` Protected API - Factory method to instantiate a Frame by reading an AMQP-wire-protocol frame from the given input stream.
`static long` | `tableSize(java.util.Map<java.lang.String,java.lang.Object> table)` Computes the AMQP wire-protocol length of protocol-encoded table entries.
`java.lang.String` | `toString()`
`void` | `writeTo(java.io.DataOutputStream os)` Public API - writes this Frame to the given DataOutputStream

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

Field Detail

### type

    public final int type

  Frame type code

### channel

    public final int channel

  Frame channel number, 0-65535

Constructor Detail

### Frame

    public Frame(int type,
                 int channel)

  Constructs a frame for output with a type and a channel number and a fresh accumulator waiting for payload.

### Frame

    public Frame(int type,
                 int channel,
                 byte[] payload)

  Constructs a frame for input with a type, a channel number and a payload byte array.

Method Detail

### fromBodyFragment

    public static Frame fromBodyFragment(int channelNumber,
                                         byte[] body,
                                         int offset,
                                         int length)
                                  throws java.io.IOException

  Throws:
    `java.io.IOException`

### readFrom

    public static Frame readFrom(java.io.DataInputStream is)
                          throws java.io.IOException

  Protected API - Factory method to instantiate a Frame by reading an AMQP-wire-protocol frame from the given input stream.

  Returns:
    a new Frame if we read a frame successfully, otherwise null
  Throws:
    `java.io.IOException`

### protocolVersionMismatch

    public static void protocolVersionMismatch(java.io.DataInputStream is)
                                        throws java.io.IOException

  Private API - A protocol version mismatch is detected by checking the three next bytes if a frame type of (int)'A' is read from an input stream. If the next three bytes are 'M', 'Q' and 'P', then it's likely the broker is trying to tell us we are speaking the wrong AMQP protocol version.

  Throws:
    `MalformedFrameException` - if an AMQP protocol version mismatch is detected
    `MalformedFrameException` - if a corrupt AMQP protocol identifier is read
    `java.io.IOException`

### writeTo

    public void writeTo(java.io.DataOutputStream os)
                 throws java.io.IOException

  Public API - writes this Frame to the given DataOutputStream

  Throws:
    `java.io.IOException`

### getPayload

    public byte[] getPayload()

  Public API - retrieves the frame payload

### getInputStream

    public java.io.DataInputStream getInputStream()

  Public API - retrieves a new DataInputStream streaming over the payload

### getOutputStream

    public java.io.DataOutputStream getOutputStream()

  Public API - retrieves a fresh DataOutputStream streaming into the accumulator

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

### tableSize

    public static long tableSize(java.util.Map<java.lang.String,java.lang.Object> table)
                          throws java.io.UnsupportedEncodingException

  Computes the AMQP wire-protocol length of protocol-encoded table entries.

  Throws:
    `java.io.UnsupportedEncodingException`

### arraySize

    public static long arraySize(java.util.List<?> values)
                          throws java.io.UnsupportedEncodingException

  Computes the AMQP wire-protocol length of an encoded field-array of type List

  Throws:
    `java.io.UnsupportedEncodingException`

### arraySize

    public static long arraySize(java.lang.Object[] values)
                          throws java.io.UnsupportedEncodingException

  Computes the AMQP wire-protocol length of an encoded field-array of type Object[]

  Throws:
    `java.io.UnsupportedEncodingException`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD