[This message was posted by David Rosenborg of Pantor Engineering AB 
<[email protected]> to the "FAST Protocol" discussion forum at 
http://fixprotocol.org/discuss/46. You can reply to it on-line at 
http://fixprotocol.org/discuss/read/2fd56c53 - PLEASE DO NOT REPLY BY MAIL.]

Naresh -

Yes, you should reset the dictionary after each block (if that's what's 
specified for your particular protocol). My comment was about a "single 
message" taken out of context, which may or may not work depending on the 
situation. Since your problem description indicated the lack of a previous 
value for the length preamble, I assumed that this was on of those cases.

/David


> David
> 
> I am clearing out the dictionary after every (block) read.
> 
> If you are not able to do this then what would happen if a message was
> missed or dropped.
> 
> Surely after each block you have to clear the dictionary.
> 
> Naresh
> 
> > Naresh -
> >
> > There is no such default length. The semantics of an operator on the
> > sequence length preamble is no different than the semantics you'd have
> > if you applied the same operator to a normal field of type uInt32.
> >
> > You say that you cut out a single message for playback. This is
> > generally not possible with FAST since you lose the previous value
> > history.
> >
> > /David
> >
> > >
> > >
> > > Hi Dale
> > >
> > > Thank you for the response and the behaviour you mentioned below is
> > > being used and is inherent in the copy operator I use as below:
> > >
> > > long segmentLength = copyOperatorForInt(buffer,
> > > TypeDefs.NoMDEntries, pmapBits[pmapCounter--]);
> > >
> > > This same line is working on several other messages.
> > >
> > > The message in question is a single message that has been cut out of
> > > the stream for playback.
> > >
> > > When I play the single message back via openfast I get the result
> > > perfectly.
> > >
> > > 8=FIXT.1.1,35=W,1128=7,49=SWXGROUP-MDI.P01,56=SWXGROUP- 
> > > MDC,34=19341,97=N,52=20091028-
> > > 05:11:05.849,1021=1,48=CZ0001000749,22=4,268=1
> > >
> > > Am confident that I am reading the bytes correctly in my app and
> > > have gone through every bit..
> > >
> > > As it is a single message there is no prev value in the dictionary.
> > > Hence I end up getting the pmap bit zero for the length and when
> > > going to check the dictionary it is undefined and no initial value
> > > hence ERR D5 (InitialValue NULL and Mandatory)
> > >
> > > It leads me to suggest that if the pmap bit concludes that the
> > > segment length is not in the stream that it should default to a
> > > minimum of 1.
> > >
> > > This is my own interpretation which I prefer not to use but I cant
> > > see any other option here.
> > >
> > > Naresh
> > >
> > > > And of course when I said "segment" in my message below, I meant
> > > > "Sequence".
> > > >
> > > > Dale
> > > >
> > > > > Hi Naresh,
> > > > >
> > > > > > > Is it possible to have a sequence as below where the pmap
> > > > > > > bit is set to false for the length of the sequence.
> > > > > > >
> > > > > > > [sequence name="MDEntries"] [typeRef name="MDIncGrp"/]
> > > > > > > [length name="NoMDEntries" id="268"] [copy/] [/length]
> > > > > > > [string name="MDUpdateAction" id="279"] [copy value="0"/]
> > > > > > > [/string] [!--
> > > > > > > : New --] ....
> > > > > > >
> > > > > > > The field [length name="NoMDEntries" id="268"] [copy/]
> > > > > > > [/length]
> > > > > > >
> > > > > > > has a false in the pmap bit
> > > > > > >
> > > > > > > Therefore am not sure who many times to iterate through the
> > > > > > > sequence
> > > > > > >
> > > > >
> > > > > The pmap bit associated with a segment applies to the length
> > > > > field of the segment. This pmap bit tells you whether the length
> > > > > appears on-the- wire. What it means when the length does not
> > > > > appear on-the- wire is determined by the operator associated
> > > > > with the length field.
> > > > >
> > > > > In your case the length field of the sequence has a copy
> > > > > operator. The zero pmap bit is telling you that the sequence
> > > > > length does not appear on-the-wire. Instead you should re-use
> > > > > the previous length value from the appropriate dictionary.
> > > > >
> > > > > Dale
> > > > > --
> > > > > Dale Wilson Principal Software Engineer Object Computing, Inc.
> > > > > (www.ociweb.com) Lead developer for QuickFAST
> > > > > (http:www.quickfast.org)


[You can unsubscribe from this discussion group by sending a message to 
mailto:[email protected]]

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Financial Information eXchange" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/fix-protocol?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to