// 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 package amqp import ( "time" ) // Return captures a flattened struct of fields returned by the server when a // Publishing is unable to be delivered either due to the `mandatory` flag set // and no route found, or `immediate` flag set and no free consumer. type Return struct { ReplyCode uint16 // reason ReplyText string // description Exchange string // basic.publish exchange RoutingKey string // basic.publish routing key // Properties ContentType string // MIME content type ContentEncoding string // MIME content encoding Headers Table // Application or header exchange table DeliveryMode uint8 // queue implementation use - non-persistent (1) or persistent (2) Priority uint8 // queue implementation use - 0 to 9 CorrelationId string // application use - correlation identifier ReplyTo string // application use - address to to reply to (ex: RPC) Expiration string // implementation use - message expiration spec MessageId string // application use - message identifier Timestamp time.Time // application use - message timestamp Type string // application use - message type name UserId string // application use - creating user id AppId string // application use - creating application Body []byte } func newReturn(msg basicReturn) *Return { props, body := msg.getContent() return &Return{ ReplyCode: msg.ReplyCode, ReplyText: msg.ReplyText, Exchange: msg.Exchange, RoutingKey: msg.RoutingKey, Headers: props.Headers, ContentType: props.ContentType, ContentEncoding: props.ContentEncoding, DeliveryMode: props.DeliveryMode, Priority: props.Priority, CorrelationId: props.CorrelationId, ReplyTo: props.ReplyTo, Expiration: props.Expiration, MessageId: props.MessageId, Timestamp: props.Timestamp, Type: props.Type, UserId: props.UserId, AppId: props.AppId, Body: body, } }