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
FieldsModifier and TypeFieldDescriptionstatic final intEMPTY_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
ConstructorsConstructorDescriptionConstruct 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 voidCalled 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 theMethodheld within this Command.booleanhandleFrame(Frame f) toString()toString(boolean suppressBody) voidtransmit(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 theMethodheld 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:
getContentHeaderin 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:
getContentBodyin 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.
-