You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Tomas Restrepo <to...@devdeo.com> on 2007/02/05 00:46:57 UTC

Field Table Types (QPID-336)

According to QPID-336, one of the interop issues right now with the .net
client is the limited support for field table types.

I thought  about collaborating a bit in this front (if nobody else is doing
so), and thought a good way to begin with that would be to port the AMQType
and related classes from the Java code over to the .NET code and complete
the rest of the support code in EncodingUtils (and make FieldTable use that
instead).

However, after looking at the proposed field types and the Java code, I'm a
bit confused by some apparent conflicts. Could someone clarify this for me?


1- The WIDE_STRING type seems to still be using the same encoding as the
other string types. I'm assuming this is because the encoding to use (or the
way to select such encoding) hasn't been fully decided yet, right? (and why
allow multiple encodings here? Sounds like it will complicate things more
than strictly useful, but what do I know!).

2- The proposal mentions that the ASCII_STRING type should be prefixed by a
2-byte unsigned integer length (ushort). However, the current implementation
writes a four-byte length prefix. Also, why make this a two-byte length
while keeping a 4-byte length for wide strings?

3- The type proposal outlines support for both signed and unsigned integer
field types (b,s,I,l and B,S,I,L). However, the Java code only seems to
implement a subset from those so far (I, b, s, i, l, I think). Is that
Right?

4- Is the id for the BYTE type correct? I think the Byte datatype in Java is
unsigned, right? If so, then the type code should've been 'B', not 'b'. no?


Tomas Restrepo
tomas.restrepo@devdeo.com
http://www.winterdom.com/weblog/