No subject


Thu Mar 14 15:04:54 GMT 2013


<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
>

------=_Part_21_17765123.1376552056654
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<div dir="ltr"><div><div>I read the spec, and this particular segment I've read very attentively:<br>From AMQP 0-9-1, s 4.2.6.1 "The Content Header"<br>
<br>
&lt;quote&gt;<br>
- 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.<br>
<br>
- 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.<br>
<br>
- The property values are class-specific AMQP data fields.<br>
<br>
- Bit properties are indicated ONLY by their respective property flag (1 or 0) and are never present in the property list.<br>
&lt;/quote&gt;<br><br>I'm sorry for asking you silly questions. But how it influence on the interpretation of binary?<br><br></div>For example.<br>
</div>Client application receives <br>Basic.deliver<br><div>| type (octet)| channel (short)| size (long)|&nbsp; class-id(short) | method-id (short) | payload | frame-end (octet) |<br><br></div><div>Binary:<br></div><div>| 0x01 | 0x0042 | 0x00000032 | 0x003C | 0x0028 |&nbsp; Basic.deliver payload | 0xCE |<br>
<br></div><div>And the content comes:<br><br>| type (octet)| channel 
(short)| size (long)|&nbsp; class-id(short) | weight (short) | body-size 
(long long) | property-flags (2 octets ) | property list |<br></div><div><br>Binary<br>
</div><div>| 0x02 | 0x0042 | 0x0000000E + Z | 0x003C | 0x0000 |&nbsp; body-size = 16 | PROPERTY_FLAGS | Z octets | 0xCE |<br></div><div><br></div><div>So if PROPERTY_FLAGS = 0x0000 what is in Z image, how to interpret it?<br></div>
<div><br></div><div>if PROPERTY_FLAGS = 0x0080 or PROPERTY_FLAGS = whatever&nbsp; (0x0 &lt;= whatever =&lt; 0xFFFF)<br><br></div><div>I've looked at other clients implementation. For Ruby I found some tips in <a href="http://rubydoc.info/github/ruby-amqp/amq-protocol/master/AMQ/Protocol/Basic" target="_blank">http://rubydoc.info/github/<wbr>ruby-amqp/amq-protocol/master/<wbr>AMQ/Protocol/Basic</a><br>
</div><div>But where these constants came from? <br></div><div>Are they documented? or it's just peer2peer knowledge?<br></div><div><br></div>Or are they client2client meaningful and it's up to them to make an agreement on their meaning and way of interpretation?<div>
<br></div>Thanx<br><br>On Wednesday, August 14, 2013 12:58:51 AM UTC+3, Nicolai G. wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr">Hello!<br><br>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?<br><br>Can anyone, please, point me on any doc where I can find this information?<br><br>Best regards,<br>Nicolai<br></div></blockquote></div>
------=_Part_21_17765123.1376552056654--

------=_Part_20_28923711.1376552056654--


More information about the rabbitmq-discuss mailing list