Пример #1
0
func (self *rawMessage) Message() (m *Message, err os.Error) {
	m = &Message{
		ReceiptHandle: self.ReceiptHandle,
		MD5OfBody:     self.MD5OfBody,
		Attributes:    map[string]string{},
	}
	m.MessageId, err = uuid.Parse(self.MessageId)
	if err != nil {
		return
	}
	for i := range self.Attribute {
		m.Attributes[self.Attribute[i].Name] = self.Attribute[i].Value
	}
	bbuff := bytes.NewBufferString(self.Body)
	m.Body = bbuff.Bytes()
	return
}
Пример #2
0
// Pushes the raw bytes into SQS, returning the message UUID.
//
// NB, we don't do any verification of the MD5
func (self *Queue) Push(id cryptools.NamedSigner, body []byte) (msgid *uuid.UUID, err os.Error) {
	sqsReq, err := self.signedRequest(id, map[string]string{
		"Action":      "SendMessage",
		"MessageBody": string(body),
	})
	if err != nil {
		return
	}

	xresp := &sendMessageResponse{}
	xerr := &errorResponse{}
	err = self.Endpoint.SendParsable(sqsReq, xresp, xerr)
	if err != nil {
		return
	}
	msgid, err = uuid.Parse(xresp.SendMessageResult.MessageId)
	return
}