Thread: [Quickfix-developers] How to add support for custom messages and custom signature to QuickFix?
Brought to you by:
orenmnero
|
From: Reiner N. <rei...@ma...> - 2005-06-22 12:58:50
|
Hi, I need to extend QuickFix to support custom messages. As a first step a new an additional data dictionary was created. Now QuickFix must be build again to generate the code according the additional data dictionary. What is the correct way to build QuickFix to support this data dictionary? I also need to add a custom defined tag containing a digital signature to a FIX message. To do this, I need to retrieve the body in FIX notation of a message where almost all fields are populated. After calculating the signature the message must be extended with the custom field containing the signature and then the message can be sent. My questions: How can I retrieve the message body in FIX notation? I do not need the header nor the trailer but only the body for the calculation. What is the best way to add the custom field? Using Java, I guess the methods Application.toApp or before calling Session.sendToTarget can be used. Is there a recommendation whether to use toApp or before calling sendToTarget. Cheers Reiner |
|
From: Oren M. <or...@qu...> - 2005-06-23 15:55:24
|
If you want to generate all the classes, you will need to run the generation scripts in the 'spec' directory. I don't believe there is a mehod for retrieving just the body fields. In C++ this would be possible if you cast the Message to a FieldMap, but this isn't an option in java. A getBody method would probably be a good compliment to getHeader and getTrailer. What you can do however is iterate through all the fields and call toString on them one by one. If you append each of the fields to a StringBuffer you should be able to reconstruct the body of the message. Where you add the field is a function of what you know, when you know it, and how generally applicable it is. In general, if you have a field that you want to make sure gets appended to every outgoing message, you should put it in the toApp method. If you have a field that is specific to one type of message, it would make more sense to append it at the same place you construct that message. --oren ----- Original Message ----- From: "Reiner Nix" <rei...@ma...> To: <qui...@li...> Sent: Wednesday, June 22, 2005 7:58 AM Subject: [Quickfix-developers] How to add support for custom messages and custom signature to QuickFix? > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX FAQ: http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ > QuickFIX Support: http://www.quickfixengine.org/services.html > > Hi, > > I need to extend QuickFix to support custom messages. As a first step a > new an > additional data dictionary was created. Now QuickFix must be build again > to > generate the code according the additional data dictionary. > What is the correct way to build QuickFix to support this data dictionary? > > > I also need to add a custom defined tag containing a digital signature to > a > FIX message. To do this, I need to retrieve the body in FIX notation of a > message where almost all fields are populated. After calculating the > signature the message must be extended with the custom field containing > the > signature and then the message can be sent. > > My questions: > How can I retrieve the message body in FIX notation? I do not need the > header > nor the trailer but only the body for the calculation. > > What is the best way to add the custom field? > Using Java, I guess the methods Application.toApp or before calling > Session.sendToTarget can be used. Is there a recommendation whether to use > toApp or before calling sendToTarget. > > Cheers > Reiner > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
|
From: Joerg T. <Joe...@ma...> - 2005-06-24 06:28:45
|
Thanks, Oren!
> If you want to generate all the classes, you will need to run the
> generation scripts in the 'spec' directory.
IMHO, it would be a good idea if we could separate the QF engine and the FIX classes
completely, ie have a engine package and a package (library, dll, jar) for each FIX
4.0-4.4. The generation scripts could be part of the engine package and generate the FIX
message package out of the data dictionary. In the end, you would have (for C++):
libquickfix.so + libquickfix_fix42.so etc.
Correspondingly for the other APIs.
This make the handling of custom messages or fields much easier: The user just takes the
basic QF engine, sets up its own data dictionary and generates/builds the message package.
What do you think?
> I don't believe there is a mehod for retrieving just the body fields.
> In C++ this would be possible if you cast the Message to a FieldMap, but
> this isn't an option in java. A getBody method would probably be a good
> compliment to getHeader and getTrailer. What you can do however is
> iterate through all the fields and call toString on them one by one. If
> you append each of the fields to a StringBuffer you should be able to
> reconstruct the body of the message.
Yes, browsing the source code I saw this could be an option, but did not check in detail.
Cheers, Jörg
--
Joerg Thoennes
http://macd.com
Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH
Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen
|
|
From: Reiner N. <rei...@ma...> - 2005-06-24 08:22:52
|
Hi, > If you want to generate all the classes, you will need to run the > generation scripts in the 'spec' directory. Is there a file to register the used specs? Or do I need to run the generation scripts manually instead of just rebuild the whole stuff? > I don't believe there is a mehod for retrieving just the body fields. In > C++ this would be possible if you cast the Message to a FieldMap, but this > isn't an option in java. A getBody method would probably be a good > compliment to getHeader and getTrailer. What you can do however is iterate > through all the fields and call toString on them one by one. If you append > each of the fields to a StringBuffer you should be able to reconstruct the > body of the message. Is there a method to check wether a field is a header, trailor or body field? > Where you add the field is a function of what you know, when you know it, > and how generally applicable it is. In general, if you have a field that > you want to make sure gets appended to every outgoing message, you should > put it in the toApp method. If you have a field that is specific to one > type of message, it would make more sense to append it at the same place > you construct that message. Thanks. This sounds good. Many thanks for the hints Reiner Nix > --oren > > ----- Original Message ----- > From: "Reiner Nix" <rei...@ma...> > To: <qui...@li...> > Sent: Wednesday, June 22, 2005 7:58 AM > Subject: [Quickfix-developers] How to add support for custom messages and > custom signature to QuickFix? > > > QuickFIX Documentation: > > http://www.quickfixengine.org/quickfix/doc/html/index.html > > QuickFIX FAQ: http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ > > QuickFIX Support: http://www.quickfixengine.org/services.html > > > > Hi, > > > > I need to extend QuickFix to support custom messages. As a first step a > > new an > > additional data dictionary was created. Now QuickFix must be build again > > to > > generate the code according the additional data dictionary. > > What is the correct way to build QuickFix to support this data > > dictionary? > > > > > > I also need to add a custom defined tag containing a digital signature to > > a > > FIX message. To do this, I need to retrieve the body in FIX notation of a > > message where almost all fields are populated. After calculating the > > signature the message must be extended with the custom field containing > > the > > signature and then the message can be sent. > > > > My questions: > > How can I retrieve the message body in FIX notation? I do not need the > > header > > nor the trailer but only the body for the calculation. > > > > What is the best way to add the custom field? > > Using Java, I guess the methods Application.toApp or before calling > > Session.sendToTarget can be used. Is there a recommendation whether to > > use toApp or before calling sendToTarget. > > > > Cheers > > Reiner > > > > > > ------------------------------------------------------- > > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > > from IBM. Find simple to follow Roadmaps, straightforward articles, > > informative Webcasts and more! Get everything you need to get up to > > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > > _______________________________________________ > > Quickfix-developers mailing list > > Qui...@li... > > https://lists.sourceforge.net/lists/listinfo/quickfix-developers -- Reiner B. Nix IT-Architect rei...@ma... http://www.macd.com Tel.: +49 (0)241 44597-23 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen |