[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