On 6/1/18, 3:43 AM, "[email protected] on behalf of Carlos Rovira"
<[email protected] on behalf of [email protected]> wrote:
>
> Now to your main question. Are you sure that code 168 is an AMF type
> code? I could certainly be wrong, but it occurred to me that the 168
> could just be the first byte in serialized data of the message and that
the
> AMF decoding should instantiate the object based on the class alias then
> see if it implements IExternalizable and call readExternal without
> bothering to examine that byte in the stream.
>
ok, so if I understand right I must pass the rest of data in AMFBinaryData
to "readExternal" method? If so, readExternal expects an IDataInput....and
is not clear to me how as well give that part of the data Array (maybe I
should create a temporal data array that holds data from current position
to the end of the array?
Sorry but as you is not my area of expertise.
I'm just guessing, but if AMFBinaryData implements IDataInput, then I would
pass the AMFBinaryData to readExternal. The readExternal calls should grab the
next set of bytes out of the AMFBinaryData and use it to deserialize and when
it returns, the AMFBinaryData should be set so the next bytes will be used to
generate the next object, if any. In theory the readExternal of an
IExternalizable should not play with the current position of the input
IDataInput other than pulling bytes from the IDataInput. At least, that's
worth a try, IMO.
HTH,
-Alex