[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/d3d0a9be - PLEASE DO NOT REPLY BY MAIL.]

1. See section 6.3.1 of the FAST Specification 1.1. It states that the default 
dictionary is the global dictionary. You're correct that you don't need to 
specify it explicitly.

2. I'm not sure I understand your question here and what the FAST processor is 
supposed to handle automatically. If you refer to typeRef, then that is 
something you'll have to add manually in the template definition. It affects 
the behavior of operators using the dictionary 'type'. However, it doesn't have 
a direct correspondence on the wire.

Other than affecting the behavior of operators, the primary purpose of the 
typeRef element is to indicate to the application what application type the 
template is a template for. If you have multiple templates for the same 
application type, then they should all share the same typeRef.

3. The basic semantics of the copy and increment operators are the same in FAST 
1.0 and FAST 1.1. However, in FAST 1.1 you can use dictionaries and explicit 
keys that make the operators behave in a way that wasn't possible in FAST 1.0.

4. Your mappings of dictionaries per field seems correct (assuming the second 
T3 template should have been T4)

5. They're fundamentally different. I've already described typeRef above. A 
templateRef is a reference to another template. If the templateRef has a name, 
a static reference, then you can think of it as the instructions of the 
referred template are inserted at the point of reference. If the templateRef 
don't have a name, a dynamic reference, then a PMAP and template identifier are 
expected at the corresponding point in an encoded message. The template 
identifier then tells the decoder what lies and in effect starts a submessage 
on the wire. See section 6.4 in the specification for details.

/David

> I am new to FAST and want to define the template inheritance. I have
> following questions
> 1. Do we need to define the "global" dictionary template ? my
>    understanding: I dont think so !
> 
> 2. do we need to define the reference template by itself or the
>    FAST code should build by itself. my understanding: Fast code
>    should by itself
> 
> 3. If I want to use only copy code and increment code operators. Is
>    there any difference between FAST 1.0 and 1.1 ? my understanding: for
>    these two operator there is no change in the updated spec
> 
> 4. Can someone clarify my understanding of following template
>    definition ?
> 
> 
> (template name=”T1” ) (typeRef name=”t4”) (string name=”Field1”
> presence=”mandatory”) (copy dictionary=”global”) (/string) (string
> name=”Field2” presence=”mandatory”) (copy dictionary=”global”) (/string)
> (string name=”Field3” presence=”mandatory”) (copy dictionary=”type”)
> (/string) (string name=”Field4” presence=”mandatory”) (copy
> dictionary=”template”) (/string) (/template)
> 
> (template name=”T2” ) (typeRef name=”t4”) (string name=”Field2”
> presence=”mandatory”) (copy dictionary=”global”) (/string) (string
> name=”Field3” presence=”mandatory”) (copy dictionary=”global”) (/string)
> (string name=”Field4” presence=”mandatory”) (copy dictionary=”type”)
> (/string) (string name=”Field5” presence=”mandatory”) (copy
> dictionary=”template”) (/string) (/template)
> 
> (template name=”T3”) (typeRef name=”t4”) (string name=”Field3”
> presence=”mandatory”) (copy dictionary=”global”) (/string) (string
> name=”Field4” presence=”mandatory”) (copy dictionary=”global”) (/string)
> (string name=”Field5” presence=”mandatory”) (copy dictionary=”type”)
> (/string) (string name=”Field6” presence=”mandatory”) (copy
> dictionary=”template”) (/string) (/template)
> 
> (template name=”T3”) (typeRef name=”t4”) (string name=”Field4”
> presence=”mandatory”) (copy dictionary=”global”) (/string) (string
> name=”Field5” presence=”mandatory”) (copy dictionary=”global”) (/string)
> (string name=”Field6” presence=”mandatory”) (copy dictionary=”type”)
> (/string) (string name=”Field7” presence=”mandatory”) (copy
> dictionary=”template”) (/string) (/template)
> 
> Following is my understanding is: Template1:
>  T1.field1 global
>  T2.field2 global
>  T3.field3 t4
>  T4.field4 T1
> 
> Template2:
>  T5.field2 global
>  T6.field3 global
>  T7.field4 t4
>  T8.field5 T2
> 
> Template3:
>  T9.field3 global
> T10.field4 global
> T11.field5 t4
> T12.field6 T3
> 
> Template4:
> T13.field4 global
> T14.field5 global
> T15.field6 t4
> T16.field7 T4
> 
> 
> 5. In the above example if I use templateRef instead of typeRef what is
>    the difference ? my understanding : nothing !


[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