kubeshark/tap/extensions/amqp/spec091.go
M. Mert Yıldıran e8d2b7eb3c
Add unit tests for AMQP dissector (#806)
* Add unit tests for AMQP dissector

* Always use UTC as the timezone in the timestamps

* Remove the dead code

* Remove more dead code

* Fix `dissector.Analyze` call

Co-authored-by: gadotroee <55343099+gadotroee@users.noreply.github.com>
2022-02-16 11:07:37 +02:00

1828 lines
36 KiB
Go

// Copyright (c) 2012, Sean Treadway, SoundCloud Ltd.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Source code and contact info at http://github.com/streadway/amqp
/* GENERATED FILE - DO NOT EDIT */
/* Rebuild from the spec/gen.go tool */
package amqp
import (
"encoding/binary"
"io"
)
// Error codes that can be sent from the server during a connection or
// channel exception or used by the client to indicate a class of error like
// ErrCredentials. The text of the error is likely more interesting than
// these constants.
const (
frameMethod = 1
frameHeader = 2
frameBody = 3
frameHeartbeat = 8
frameMinSize = 4096
frameEnd = 206
replySuccess = 200
ContentTooLarge = 311
NoRoute = 312
NoConsumers = 313
ConnectionForced = 320
InvalidPath = 402
AccessRefused = 403
NotFound = 404
ResourceLocked = 405
PreconditionFailed = 406
FrameError = 501
SyntaxError = 502
CommandInvalid = 503
ChannelError = 504
UnexpectedFrame = 505
ResourceError = 506
NotAllowed = 530
NotImplemented = 540
InternalError = 541
MaxSizeError = 551
MaxHeaderFrameSizeError = 552
BadMethodFrameUnknownMethod = 601
BadMethodFrameUnknownClass = 602
)
type ConnectionStart struct {
VersionMajor byte `json:"versionMajor"`
VersionMinor byte `json:"versionMinor"`
ServerProperties Table `json:"serverProperties"`
Mechanisms string `json:"mechanisms"`
Locales string `json:"locales"`
}
func (msg *ConnectionStart) read(r io.Reader) (err error) {
if err = binary.Read(r, binary.BigEndian, &msg.VersionMajor); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.VersionMinor); err != nil {
return
}
if msg.ServerProperties, err = readTable(r); err != nil {
return
}
if msg.Mechanisms, err = readLongstr(r); err != nil {
return
}
if msg.Locales, err = readLongstr(r); err != nil {
return
}
return
}
type ConnectionStartOk struct {
ClientProperties Table
Mechanism string
Response string
Locale string
}
func (msg *ConnectionStartOk) read(r io.Reader) (err error) {
if msg.ClientProperties, err = readTable(r); err != nil {
return
}
if msg.Mechanism, err = readShortstr(r); err != nil {
return
}
if msg.Response, err = readLongstr(r); err != nil {
return
}
if msg.Locale, err = readShortstr(r); err != nil {
return
}
return
}
type connectionSecure struct {
Challenge string
}
func (msg *connectionSecure) read(r io.Reader) (err error) {
if msg.Challenge, err = readLongstr(r); err != nil {
return
}
return
}
type connectionSecureOk struct {
Response string
}
func (msg *connectionSecureOk) read(r io.Reader) (err error) {
if msg.Response, err = readLongstr(r); err != nil {
return
}
return
}
type connectionTune struct {
ChannelMax uint16
FrameMax uint32
Heartbeat uint16
}
func (msg *connectionTune) read(r io.Reader) (err error) {
if err = binary.Read(r, binary.BigEndian, &msg.ChannelMax); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.FrameMax); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.Heartbeat); err != nil {
return
}
return
}
type connectionTuneOk struct {
ChannelMax uint16
FrameMax uint32
Heartbeat uint16
}
func (msg *connectionTuneOk) read(r io.Reader) (err error) {
if err = binary.Read(r, binary.BigEndian, &msg.ChannelMax); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.FrameMax); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.Heartbeat); err != nil {
return
}
return
}
type connectionOpen struct {
VirtualHost string
reserved1 string
reserved2 bool
}
func (msg *connectionOpen) read(r io.Reader) (err error) {
var bits byte
if msg.VirtualHost, err = readShortstr(r); err != nil {
return
}
if msg.reserved1, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.reserved2 = (bits&(1<<0) > 0)
return
}
type connectionOpenOk struct {
reserved1 string
}
func (msg *connectionOpenOk) read(r io.Reader) (err error) {
if msg.reserved1, err = readShortstr(r); err != nil {
return
}
return
}
type ConnectionClose struct {
ReplyCode uint16 `json:"relyCode"`
ReplyText string `json:"replyText"`
ClassId uint16 `json:"classId"`
MethodId uint16 `json:"methodId"`
}
func (msg *ConnectionClose) read(r io.Reader) (err error) {
if err = binary.Read(r, binary.BigEndian, &msg.ReplyCode); err != nil {
return
}
if msg.ReplyText, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.ClassId); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.MethodId); err != nil {
return
}
return
}
type ConnectionCloseOk struct {
}
func (msg *ConnectionCloseOk) read(r io.Reader) (err error) {
return
}
type connectionBlocked struct {
Reason string
}
func (msg *connectionBlocked) read(r io.Reader) (err error) {
if msg.Reason, err = readShortstr(r); err != nil {
return
}
return
}
type connectionUnblocked struct {
}
func (msg *connectionUnblocked) read(r io.Reader) (err error) {
return
}
type channelOpen struct {
reserved1 string
}
func (msg *channelOpen) read(r io.Reader) (err error) {
if msg.reserved1, err = readShortstr(r); err != nil {
return
}
return
}
type channelOpenOk struct {
reserved1 string
}
func (msg *channelOpenOk) read(r io.Reader) (err error) {
if msg.reserved1, err = readLongstr(r); err != nil {
return
}
return
}
type channelFlow struct {
Active bool
}
func (msg *channelFlow) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Active = (bits&(1<<0) > 0)
return
}
type channelFlowOk struct {
Active bool
}
func (msg *channelFlowOk) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Active = (bits&(1<<0) > 0)
return
}
type channelClose struct {
ReplyCode uint16
ReplyText string
ClassId uint16
MethodId uint16
}
func (msg *channelClose) read(r io.Reader) (err error) {
if err = binary.Read(r, binary.BigEndian, &msg.ReplyCode); err != nil {
return
}
if msg.ReplyText, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.ClassId); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.MethodId); err != nil {
return
}
return
}
type channelCloseOk struct {
}
func (msg *channelCloseOk) read(r io.Reader) (err error) {
return
}
type ExchangeDeclare struct {
reserved1 uint16
Exchange string `json:"exchange"`
Type string `json:"type"`
Passive bool `json:"passive"`
Durable bool `json:"durable"`
AutoDelete bool `json:"autoDelete"`
Internal bool `json:"internal"`
NoWait bool `json:"noWait"`
Arguments Table `json:"arguments"`
}
func (msg *ExchangeDeclare) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Exchange, err = readShortstr(r); err != nil {
return
}
if msg.Type, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Passive = (bits&(1<<0) > 0)
msg.Durable = (bits&(1<<1) > 0)
msg.AutoDelete = (bits&(1<<2) > 0)
msg.Internal = (bits&(1<<3) > 0)
msg.NoWait = (bits&(1<<4) > 0)
if msg.Arguments, err = readTable(r); err != nil {
return
}
return
}
type ExchangeDeclareOk struct {
}
func (msg *ExchangeDeclareOk) read(r io.Reader) (err error) {
return
}
type exchangeDelete struct {
reserved1 uint16
Exchange string
IfUnused bool
NoWait bool
}
func (msg *exchangeDelete) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Exchange, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.IfUnused = (bits&(1<<0) > 0)
msg.NoWait = (bits&(1<<1) > 0)
return
}
type exchangeDeleteOk struct {
}
func (msg *exchangeDeleteOk) read(r io.Reader) (err error) {
return
}
type exchangeBind struct {
reserved1 uint16
Destination string
Source string
RoutingKey string
NoWait bool
Arguments Table
}
func (msg *exchangeBind) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Destination, err = readShortstr(r); err != nil {
return
}
if msg.Source, err = readShortstr(r); err != nil {
return
}
if msg.RoutingKey, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.NoWait = (bits&(1<<0) > 0)
if msg.Arguments, err = readTable(r); err != nil {
return
}
return
}
type exchangeBindOk struct {
}
func (msg *exchangeBindOk) read(r io.Reader) (err error) {
return
}
type exchangeUnbind struct {
reserved1 uint16
Destination string
Source string
RoutingKey string
NoWait bool
Arguments Table
}
func (msg *exchangeUnbind) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Destination, err = readShortstr(r); err != nil {
return
}
if msg.Source, err = readShortstr(r); err != nil {
return
}
if msg.RoutingKey, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.NoWait = (bits&(1<<0) > 0)
if msg.Arguments, err = readTable(r); err != nil {
return
}
return
}
type exchangeUnbindOk struct {
}
func (msg *exchangeUnbindOk) read(r io.Reader) (err error) {
return
}
type QueueDeclare struct {
reserved1 uint16
Queue string `json:"queue"`
Passive bool `json:"passive"`
Durable bool `json:"durable"`
Exclusive bool `json:"exclusive"`
AutoDelete bool `json:"autoDelete"`
NoWait bool `json:"noWait"`
Arguments Table `json:"arguments"`
}
func (msg *QueueDeclare) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Queue, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Passive = (bits&(1<<0) > 0)
msg.Durable = (bits&(1<<1) > 0)
msg.Exclusive = (bits&(1<<2) > 0)
msg.AutoDelete = (bits&(1<<3) > 0)
msg.NoWait = (bits&(1<<4) > 0)
if msg.Arguments, err = readTable(r); err != nil {
return
}
return
}
type QueueDeclareOk struct {
Queue string
MessageCount uint32
ConsumerCount uint32
}
func (msg *QueueDeclareOk) read(r io.Reader) (err error) {
if msg.Queue, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.MessageCount); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.ConsumerCount); err != nil {
return
}
return
}
type QueueBind struct {
reserved1 uint16
Queue string `json:"queue"`
Exchange string `json:"exchange"`
RoutingKey string `json:"routingKey"`
NoWait bool `json:"noWait"`
Arguments Table `json:"arguments"`
}
func (msg *QueueBind) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Queue, err = readShortstr(r); err != nil {
return
}
if msg.Exchange, err = readShortstr(r); err != nil {
return
}
if msg.RoutingKey, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.NoWait = (bits&(1<<0) > 0)
if msg.Arguments, err = readTable(r); err != nil {
return
}
return
}
type QueueBindOk struct {
}
func (msg *QueueBindOk) read(r io.Reader) (err error) {
return
}
type queueUnbind struct {
reserved1 uint16
Queue string
Exchange string
RoutingKey string
Arguments Table
}
func (msg *queueUnbind) read(r io.Reader) (err error) {
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Queue, err = readShortstr(r); err != nil {
return
}
if msg.Exchange, err = readShortstr(r); err != nil {
return
}
if msg.RoutingKey, err = readShortstr(r); err != nil {
return
}
if msg.Arguments, err = readTable(r); err != nil {
return
}
return
}
type queueUnbindOk struct {
}
func (msg *queueUnbindOk) read(r io.Reader) (err error) {
return
}
type queuePurge struct {
reserved1 uint16
Queue string
NoWait bool
}
func (msg *queuePurge) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Queue, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.NoWait = (bits&(1<<0) > 0)
return
}
type queuePurgeOk struct {
MessageCount uint32
}
func (msg *queuePurgeOk) read(r io.Reader) (err error) {
if err = binary.Read(r, binary.BigEndian, &msg.MessageCount); err != nil {
return
}
return
}
type queueDelete struct {
reserved1 uint16
Queue string
IfUnused bool
IfEmpty bool
NoWait bool
}
func (msg *queueDelete) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Queue, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.IfUnused = (bits&(1<<0) > 0)
msg.IfEmpty = (bits&(1<<1) > 0)
msg.NoWait = (bits&(1<<2) > 0)
return
}
type queueDeleteOk struct {
MessageCount uint32
}
func (msg *queueDeleteOk) read(r io.Reader) (err error) {
if err = binary.Read(r, binary.BigEndian, &msg.MessageCount); err != nil {
return
}
return
}
type basicQos struct {
PrefetchSize uint32
PrefetchCount uint16
Global bool
}
func (msg *basicQos) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.PrefetchSize); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.PrefetchCount); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Global = (bits&(1<<0) > 0)
return
}
type basicQosOk struct {
}
func (msg *basicQosOk) read(r io.Reader) (err error) {
return
}
type BasicConsume struct {
reserved1 uint16
Queue string `json:"queue"`
ConsumerTag string `json:"consumerTag"`
NoLocal bool `json:"noLocal"`
NoAck bool `json:"noAck"`
Exclusive bool `json:"exclusive"`
NoWait bool `json:"noWait"`
Arguments Table `json:"arguments"`
}
func (msg *BasicConsume) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Queue, err = readShortstr(r); err != nil {
return
}
if msg.ConsumerTag, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.NoLocal = (bits&(1<<0) > 0)
msg.NoAck = (bits&(1<<1) > 0)
msg.Exclusive = (bits&(1<<2) > 0)
msg.NoWait = (bits&(1<<3) > 0)
if msg.Arguments, err = readTable(r); err != nil {
return
}
return
}
type BasicConsumeOk struct {
ConsumerTag string
}
func (msg *BasicConsumeOk) read(r io.Reader) (err error) {
if msg.ConsumerTag, err = readShortstr(r); err != nil {
return
}
return
}
type basicCancel struct {
ConsumerTag string
NoWait bool
}
func (msg *basicCancel) read(r io.Reader) (err error) {
var bits byte
if msg.ConsumerTag, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.NoWait = (bits&(1<<0) > 0)
return
}
type basicCancelOk struct {
ConsumerTag string
}
func (msg *basicCancelOk) read(r io.Reader) (err error) {
if msg.ConsumerTag, err = readShortstr(r); err != nil {
return
}
return
}
type BasicPublish struct {
reserved1 uint16
Exchange string `json:"exchange"`
RoutingKey string `json:"routingKey"`
Mandatory bool `json:"mandatory"`
Immediate bool `json:"immediate"`
Properties Properties `json:"properties"`
Body []byte `json:"body"`
}
func (msg *BasicPublish) getContent() (Properties, []byte) {
return msg.Properties, msg.Body
}
func (msg *BasicPublish) setContent(props Properties, body []byte) {
msg.Properties, msg.Body = props, body
}
func (msg *BasicPublish) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Exchange, err = readShortstr(r); err != nil {
return
}
if msg.RoutingKey, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Mandatory = (bits&(1<<0) > 0)
msg.Immediate = (bits&(1<<1) > 0)
return
}
type basicReturn struct {
ReplyCode uint16
ReplyText string
Exchange string
RoutingKey string
Properties Properties
Body []byte
}
func (msg *basicReturn) getContent() (Properties, []byte) {
return msg.Properties, msg.Body
}
func (msg *basicReturn) setContent(props Properties, body []byte) {
msg.Properties, msg.Body = props, body
}
func (msg *basicReturn) read(r io.Reader) (err error) {
if err = binary.Read(r, binary.BigEndian, &msg.ReplyCode); err != nil {
return
}
if msg.ReplyText, err = readShortstr(r); err != nil {
return
}
if msg.Exchange, err = readShortstr(r); err != nil {
return
}
if msg.RoutingKey, err = readShortstr(r); err != nil {
return
}
return
}
type BasicDeliver struct {
ConsumerTag string `json:"consumerTag"`
DeliveryTag uint64 `json:"deliveryTag"`
Redelivered bool `json:"redelivered"`
Exchange string `json:"exchange"`
RoutingKey string `json:"routingKey"`
Properties Properties `json:"properties"`
Body []byte `json:"body"`
}
func (msg *BasicDeliver) getContent() (Properties, []byte) {
return msg.Properties, msg.Body
}
func (msg *BasicDeliver) setContent(props Properties, body []byte) {
msg.Properties, msg.Body = props, body
}
func (msg *BasicDeliver) read(r io.Reader) (err error) {
var bits byte
if msg.ConsumerTag, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.DeliveryTag); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Redelivered = (bits&(1<<0) > 0)
if msg.Exchange, err = readShortstr(r); err != nil {
return
}
if msg.RoutingKey, err = readShortstr(r); err != nil {
return
}
return
}
type basicGet struct {
reserved1 uint16
Queue string
NoAck bool
}
func (msg *basicGet) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.reserved1); err != nil {
return
}
if msg.Queue, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.NoAck = (bits&(1<<0) > 0)
return
}
type basicGetOk struct {
DeliveryTag uint64
Redelivered bool
Exchange string
RoutingKey string
MessageCount uint32
Properties Properties
Body []byte
}
func (msg *basicGetOk) getContent() (Properties, []byte) {
return msg.Properties, msg.Body
}
func (msg *basicGetOk) setContent(props Properties, body []byte) {
msg.Properties, msg.Body = props, body
}
func (msg *basicGetOk) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.DeliveryTag); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Redelivered = (bits&(1<<0) > 0)
if msg.Exchange, err = readShortstr(r); err != nil {
return
}
if msg.RoutingKey, err = readShortstr(r); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &msg.MessageCount); err != nil {
return
}
return
}
type basicGetEmpty struct {
reserved1 string
}
func (msg *basicGetEmpty) read(r io.Reader) (err error) {
if msg.reserved1, err = readShortstr(r); err != nil {
return
}
return
}
type basicAck struct {
DeliveryTag uint64
Multiple bool
}
func (msg *basicAck) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.DeliveryTag); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Multiple = (bits&(1<<0) > 0)
return
}
type basicReject struct {
DeliveryTag uint64
Requeue bool
}
func (msg *basicReject) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.DeliveryTag); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Requeue = (bits&(1<<0) > 0)
return
}
type basicRecoverAsync struct {
Requeue bool
}
func (msg *basicRecoverAsync) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Requeue = (bits&(1<<0) > 0)
return
}
type basicRecover struct {
Requeue bool
}
func (msg *basicRecover) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Requeue = (bits&(1<<0) > 0)
return
}
type basicRecoverOk struct {
}
func (msg *basicRecoverOk) read(r io.Reader) (err error) {
return
}
type basicNack struct {
DeliveryTag uint64
Multiple bool
Requeue bool
}
func (msg *basicNack) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &msg.DeliveryTag); err != nil {
return
}
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Multiple = (bits&(1<<0) > 0)
msg.Requeue = (bits&(1<<1) > 0)
return
}
type txSelect struct {
}
func (msg *txSelect) read(r io.Reader) (err error) {
return
}
type txSelectOk struct {
}
func (msg *txSelectOk) read(r io.Reader) (err error) {
return
}
type txCommit struct {
}
func (msg *txCommit) read(r io.Reader) (err error) {
return
}
type txCommitOk struct {
}
func (msg *txCommitOk) read(r io.Reader) (err error) {
return
}
type txRollback struct {
}
func (msg *txRollback) read(r io.Reader) (err error) {
return
}
type txRollbackOk struct {
}
func (msg *txRollbackOk) read(r io.Reader) (err error) {
return
}
type confirmSelect struct {
Nowait bool
}
func (msg *confirmSelect) read(r io.Reader) (err error) {
var bits byte
if err = binary.Read(r, binary.BigEndian, &bits); err != nil {
return
}
msg.Nowait = (bits&(1<<0) > 0)
return
}
type confirmSelectOk struct {
}
func (msg *confirmSelectOk) read(r io.Reader) (err error) {
return
}
func (r *AmqpReader) parseMethodFrame(channel uint16, size uint32) (f frame, err error) {
mf := &MethodFrame{
ChannelId: channel,
}
if err = binary.Read(r.R, binary.BigEndian, &mf.ClassId); err != nil {
return
}
if err = binary.Read(r.R, binary.BigEndian, &mf.MethodId); err != nil {
return
}
switch mf.ClassId {
case 10: // connection
switch mf.MethodId {
case 10: // connection start
//fmt.Println("NextMethod: class:10 method:10")
method := &ConnectionStart{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 11: // connection start-ok
//fmt.Println("NextMethod: class:10 method:11")
method := &ConnectionStartOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 20: // connection secure
//fmt.Println("NextMethod: class:10 method:20")
method := &connectionSecure{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 21: // connection secure-ok
//fmt.Println("NextMethod: class:10 method:21")
method := &connectionSecureOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 30: // connection tune
//fmt.Println("NextMethod: class:10 method:30")
method := &connectionTune{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 31: // connection tune-ok
//fmt.Println("NextMethod: class:10 method:31")
method := &connectionTuneOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 40: // connection open
//fmt.Println("NextMethod: class:10 method:40")
method := &connectionOpen{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 41: // connection open-ok
//fmt.Println("NextMethod: class:10 method:41")
method := &connectionOpenOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 50: // connection close
//fmt.Println("NextMethod: class:10 method:50")
method := &ConnectionClose{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 51: // connection close-ok
//fmt.Println("NextMethod: class:10 method:51")
method := &ConnectionCloseOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 60: // connection blocked
//fmt.Println("NextMethod: class:10 method:60")
method := &connectionBlocked{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 61: // connection unblocked
//fmt.Println("NextMethod: class:10 method:61")
method := &connectionUnblocked{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
default:
return nil, ErrBadMethodFrameUnknownMethod
}
case 20: // channel
switch mf.MethodId {
case 10: // channel open
//fmt.Println("NextMethod: class:20 method:10")
method := &channelOpen{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 11: // channel open-ok
//fmt.Println("NextMethod: class:20 method:11")
method := &channelOpenOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 20: // channel flow
//fmt.Println("NextMethod: class:20 method:20")
method := &channelFlow{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 21: // channel flow-ok
//fmt.Println("NextMethod: class:20 method:21")
method := &channelFlowOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 40: // channel close
//fmt.Println("NextMethod: class:20 method:40")
method := &channelClose{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 41: // channel close-ok
//fmt.Println("NextMethod: class:20 method:41")
method := &channelCloseOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
default:
return nil, ErrBadMethodFrameUnknownMethod
}
case 40: // exchange
switch mf.MethodId {
case 10: // exchange declare
//fmt.Println("NextMethod: class:40 method:10")
method := &ExchangeDeclare{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 11: // exchange declare-ok
//fmt.Println("NextMethod: class:40 method:11")
method := &ExchangeDeclareOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 20: // exchange delete
//fmt.Println("NextMethod: class:40 method:20")
method := &exchangeDelete{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 21: // exchange delete-ok
//fmt.Println("NextMethod: class:40 method:21")
method := &exchangeDeleteOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 30: // exchange bind
//fmt.Println("NextMethod: class:40 method:30")
method := &exchangeBind{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 31: // exchange bind-ok
//fmt.Println("NextMethod: class:40 method:31")
method := &exchangeBindOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 40: // exchange unbind
//fmt.Println("NextMethod: class:40 method:40")
method := &exchangeUnbind{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 51: // exchange unbind-ok
//fmt.Println("NextMethod: class:40 method:51")
method := &exchangeUnbindOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
default:
return nil, ErrBadMethodFrameUnknownMethod
}
case 50: // queue
switch mf.MethodId {
case 10: // queue declare
//fmt.Println("NextMethod: class:50 method:10")
method := &QueueDeclare{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 11: // queue declare-ok
//fmt.Println("NextMethod: class:50 method:11")
method := &QueueDeclareOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 20: // queue bind
//fmt.Println("NextMethod: class:50 method:20")
method := &QueueBind{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 21: // queue bind-ok
//fmt.Println("NextMethod: class:50 method:21")
method := &QueueBindOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 50: // queue unbind
//fmt.Println("NextMethod: class:50 method:50")
method := &queueUnbind{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 51: // queue unbind-ok
//fmt.Println("NextMethod: class:50 method:51")
method := &queueUnbindOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 30: // queue purge
//fmt.Println("NextMethod: class:50 method:30")
method := &queuePurge{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 31: // queue purge-ok
//fmt.Println("NextMethod: class:50 method:31")
method := &queuePurgeOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 40: // queue delete
//fmt.Println("NextMethod: class:50 method:40")
method := &queueDelete{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 41: // queue delete-ok
//fmt.Println("NextMethod: class:50 method:41")
method := &queueDeleteOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
default:
return nil, ErrBadMethodFrameUnknownMethod
}
case 60: // basic
switch mf.MethodId {
case 10: // basic qos
//fmt.Println("NextMethod: class:60 method:10")
method := &basicQos{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 11: // basic qos-ok
//fmt.Println("NextMethod: class:60 method:11")
method := &basicQosOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 20: // basic consume
//fmt.Println("NextMethod: class:60 method:20")
method := &BasicConsume{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 21: // basic consume-ok
//fmt.Println("NextMethod: class:60 method:21")
method := &BasicConsumeOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 30: // basic cancel
//fmt.Println("NextMethod: class:60 method:30")
method := &basicCancel{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 31: // basic cancel-ok
//fmt.Println("NextMethod: class:60 method:31")
method := &basicCancelOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 40: // basic publish
//fmt.Println("NextMethod: class:60 method:40")
method := &BasicPublish{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 50: // basic return
//fmt.Println("NextMethod: class:60 method:50")
method := &basicReturn{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 60: // basic deliver
//fmt.Println("NextMethod: class:60 method:60")
method := &BasicDeliver{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 70: // basic get
//fmt.Println("NextMethod: class:60 method:70")
method := &basicGet{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 71: // basic get-ok
//fmt.Println("NextMethod: class:60 method:71")
method := &basicGetOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 72: // basic get-empty
//fmt.Println("NextMethod: class:60 method:72")
method := &basicGetEmpty{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 80: // basic ack
//fmt.Println("NextMethod: class:60 method:80")
method := &basicAck{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 90: // basic reject
//fmt.Println("NextMethod: class:60 method:90")
method := &basicReject{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 100: // basic recover-async
//fmt.Println("NextMethod: class:60 method:100")
method := &basicRecoverAsync{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 110: // basic recover
//fmt.Println("NextMethod: class:60 method:110")
method := &basicRecover{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 111: // basic recover-ok
//fmt.Println("NextMethod: class:60 method:111")
method := &basicRecoverOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 120: // basic nack
//fmt.Println("NextMethod: class:60 method:120")
method := &basicNack{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
default:
return nil, ErrBadMethodFrameUnknownMethod
}
case 90: // tx
switch mf.MethodId {
case 10: // tx select
//fmt.Println("NextMethod: class:90 method:10")
method := &txSelect{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 11: // tx select-ok
//fmt.Println("NextMethod: class:90 method:11")
method := &txSelectOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 20: // tx commit
//fmt.Println("NextMethod: class:90 method:20")
method := &txCommit{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 21: // tx commit-ok
//fmt.Println("NextMethod: class:90 method:21")
method := &txCommitOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 30: // tx rollback
//fmt.Println("NextMethod: class:90 method:30")
method := &txRollback{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 31: // tx rollback-ok
//fmt.Println("NextMethod: class:90 method:31")
method := &txRollbackOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
default:
return nil, ErrBadMethodFrameUnknownMethod
}
case 85: // confirm
switch mf.MethodId {
case 10: // confirm select
//fmt.Println("NextMethod: class:85 method:10")
method := &confirmSelect{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
case 11: // confirm select-ok
//fmt.Println("NextMethod: class:85 method:11")
method := &confirmSelectOk{}
if err = method.read(r.R); err != nil {
return
}
mf.Method = method
default:
return nil, ErrBadMethodFrameUnknownMethod
}
default:
return nil, ErrBadMethodFrameUnknownClass
}
return mf, nil
}