public class Frame
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
java.io.ByteArrayOutputStream |
accumulator
Frame payload (for outbound frames)
TODO: make final; currently modified explicitly in tests.
|
int |
channel
Frame channel number, 0-65535
|
byte[] |
payload
Frame payload bytes (for inbound frames)
|
int |
type
Frame type code
|
Constructor and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
static long |
arraySize(java.util.List<?> values)
Computes the AMQP wire-protocol length of an encoded field-array
|
static java.util.Map<java.lang.String,java.lang.Object> |
buildTable(java.lang.Object[] keysValues)
Utility for constructing a java.util.Map instance from an
even-length array containing alternating String keys (on the
even elements, starting at zero) and values (on the odd
elements, starting at one).
|
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
|
public final int type
public final int channel
public final byte[] payload
public java.io.ByteArrayOutputStream accumulator
public Frame(int type, int channel)
public Frame(int type, int channel, byte[] payload)
public static Frame fromBodyFragment(int channelNumber, byte[] body, int offset, int length) throws java.io.IOException
java.io.IOException
public static Frame readFrom(java.io.DataInputStream is) throws java.io.IOException
java.io.IOException
public static void protocolVersionMismatch(java.io.DataInputStream is) throws java.io.IOException
MalformedFrameException
- if an AMQP protocol version mismatch is detectedMalformedFrameException
- if a corrupt AMQP protocol identifier is readjava.io.IOException
public void writeTo(java.io.DataOutputStream os) throws java.io.IOException
java.io.IOException
public byte[] getPayload()
public java.io.DataInputStream getInputStream()
public java.io.DataOutputStream getOutputStream()
public java.lang.String toString()
toString
in class java.lang.Object
public static java.util.Map<java.lang.String,java.lang.Object> buildTable(java.lang.Object[] keysValues)
public static long tableSize(java.util.Map<java.lang.String,java.lang.Object> table) throws java.io.UnsupportedEncodingException
java.io.UnsupportedEncodingException
public static long arraySize(java.util.List<?> values) throws java.io.UnsupportedEncodingException
java.io.UnsupportedEncodingException