[rabbitmq-discuss] Content payload structure

Nicolai G. utromvecherom at gmail.com
Thu Aug 15 10:56:15 BST 2013


Ok, my bad. Looking at previous sections of spec 
(http://www.rabbitmq.com/resources/specs/amqp-xml-doc0-9-1.pdf) I get used 
that classes difine no properties, but the Basic class does (1.8.1.). 
Navigating through Table of Contents I didn't notice the table of 
properties defined by the Basic class :(

On Thursday, August 15, 2013 10:34:16 AM UTC+3, Nicolai G. wrote:
>
> I read the spec, and this particular segment I've read very attentively:
> From AMQP 0-9-1, s 4.2.6.1 "The Content Header"
>
> <quote>
> - The property flags are an array of bits that indicate the presence or 
> absence of each property value in sequence. The bits are ordered from most 
> high to low - bit 15 indicates the first property.
>
> - The property flags can specify more than 16 properties. If the last bit 
> (0) is set, this indicates that a further property flags field follows. 
> There are many property flags fields as needed.
>
> - The property values are class-specific AMQP data fields.
>
> - Bit properties are indicated ONLY by their respective property flag (1 
> or 0) and are never present in the property list.
> </quote>
>
> I'm sorry for asking you silly questions. But how it influence on the 
> interpretation of binary?
>
> For example.
> Client application receives 
> Basic.deliver
> | type (octet)| channel (short)| size (long)|  class-id(short) | method-id 
> (short) | payload | frame-end (octet) |
>
> Binary:
> | 0x01 | 0x0042 | 0x00000032 | 0x003C | 0x0028 |  Basic.deliver payload | 
> 0xCE |
>
> And the content comes:
>
> | type (octet)| channel (short)| size (long)|  class-id(short) | weight 
> (short) | body-size (long long) | property-flags (2 octets ) | property 
> list |
>
> Binary
> | 0x02 | 0x0042 | 0x0000000E + Z | 0x003C | 0x0000 |  body-size = 16 | 
> PROPERTY_FLAGS | Z octets | 0xCE |
>
> So if PROPERTY_FLAGS = 0x0000 what is in Z image, how to interpret it?
>
> if PROPERTY_FLAGS = 0x0080 or PROPERTY_FLAGS = whatever  (0x0 <= whatever 
> =< 0xFFFF)
>
> I've looked at other clients implementation. For Ruby I found some tips in 
> http://rubydoc.info/github/ruby-amqp/amq-protocol/master/AMQ/Protocol/Basic
> But where these constants came from? 
> Are they documented? or it's just peer2peer knowledge?
>
> Or are they client2client meaningful and it's up to them to make an 
> agreement on their meaning and way of interpretation?
>
> Thanx
>
> On Wednesday, August 14, 2013 12:58:51 AM UTC+3, Nicolai G. wrote:
>>
>> Hello!
>>
>> I try to implement yet another amqp-client (on C++, heavily integrated 
>> with our base frameworks). And I've come to the point of interpreting the 
>> content header payload, and I cannot find clear description of the 
>> relationship between property-flags and property-list. If I got 
>> F1%b1,F2%b1, ... ,Fn%b0 in property-flags, what *amqp-field sequence I MUST 
>> expect in property-list?
>>
>> Can anyone, please, point me on any doc where I can find this information?
>>
>> Best regards,
>> Nicolai
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130815/bc540a1b/attachment.htm>


More information about the rabbitmq-discuss mailing list