Package com.rabbitmq.client.impl
Class AMQCommand
java.lang.Object
com.rabbitmq.client.impl.AMQCommand
- All Implemented Interfaces:
Command
AMQP 0-9-1-specific implementation of
Command
which accumulates
method, header and body from a series of frames, unless these are
supplied at construction time.
Concurrency
This class is thread-safe.-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
EMPTY_FRAME_SIZE = 8 = 1 + 2 + 4 + 1 1 byte of frame type 2 bytes of channel number 4 bytes of frame payload length 1 byte of payload trailer FRAME_END byte SeecheckEmptyFrameSize()
, an assertion checked at startup. -
Constructor Summary
ConstructorDescriptionConstruct a command ready to fill in by reading framesAMQCommand
(Method method) Construct a command with just a method, and without header or body.AMQCommand
(Method method, AMQContentHeader contentHeader, byte[] body) Construct a command with a specified method, header and body.AMQCommand
(Method method, AMQContentHeader contentHeader, byte[] body, int maxBodyLength) Construct a command with a specified method, header and body. -
Method Summary
Modifier and TypeMethodDescriptionstatic void
Called to check internal code assumptions.byte[]
Public API - Retrieves the body byte array that travelled as part of this Command, if any.Public API - Retrieves the ContentHeader subclass instance held as part of this Command, if any.Public API - Retrieves theMethod
held within this Command.boolean
handleFrame
(Frame f) toString()
toString
(boolean suppressBody) void
transmit
(AMQChannel channel) Sends this command down the named channel on the channel's connection, possibly in multiple frames.
-
Field Details
-
EMPTY_FRAME_SIZE
public static final int EMPTY_FRAME_SIZEEMPTY_FRAME_SIZE = 8 = 1 + 2 + 4 + 1- 1 byte of frame type
- 2 bytes of channel number
- 4 bytes of frame payload length
- 1 byte of payload trailer FRAME_END byte
checkEmptyFrameSize()
, an assertion checked at startup.- See Also:
-
-
Constructor Details
-
AMQCommand
public AMQCommand()Construct a command ready to fill in by reading frames -
AMQCommand
Construct a command with just a method, and without header or body.- Parameters:
method
- the wrapped method
-
AMQCommand
Construct a command with a specified method, header and body.- Parameters:
method
- the wrapped methodcontentHeader
- the wrapped content headerbody
- the message body data
-
AMQCommand
Construct a command with a specified method, header and body.- Parameters:
method
- the wrapped methodcontentHeader
- the wrapped content headerbody
- the message body datamaxBodyLength
- the maximum size for an inbound message body
-
-
Method Details
-
getMethod
Public API - Retrieves theMethod
held within this Command. Downcast to concrete (implementation-specific!) subclasses as necessary. -
getContentHeader
Public API - Retrieves the ContentHeader subclass instance held as part of this Command, if any. Downcast to one of the inner classes of AMQP, for instanceAMQP.BasicProperties
, as appropriate.- Specified by:
getContentHeader
in interfaceCommand
- Returns:
- the Command's
ContentHeader
, or null if none
-
getContentBody
public byte[] getContentBody()Public API - Retrieves the body byte array that travelled as part of this Command, if any.- Specified by:
getContentBody
in interfaceCommand
- Returns:
- the Command's content body, or null if none
-
handleFrame
- Throws:
IOException
-
transmit
Sends this command down the named channel on the channel's connection, possibly in multiple frames.- Parameters:
channel
- the channel on which to transmit the command- Throws:
IOException
- if an error is encountered
-
toString
-
toString
-
checkPreconditions
public static void checkPreconditions()Called to check internal code assumptions.
-