[Quickfix-developers] Disable Rejects - Accept / Parse raw message
Brought to you by:
orenmnero
From: gtsafas <gt...@rb...> - 2010-07-01 19:36:45
|
I understand my request is not standard for FIX. However for my needs as I am just gathering data on a Drop Copy session it suits me. I wish to capture the entire message including if any repeating groups. For example I would like to do this for (FIX::FieldMap::iterator start = message.begin (), finish = message.end (); start != finish; ++i){ std::cout << start->first << '=' << start->second << ' '; } But with repeating groups as well. Pretty much what I want to accomplish is a brainless C++ app that can accept messages and pass them to my other application. I do not want to reject because a counter party passed a "X" where it was only allowing 1,2,3,4...etc. I do not want to have to follow the guidelines of a DataDictionary. Pretty much what im trying to accomplish is a way to capture drop copies for any future FIX 4.2 system I may encounter without having to hard code things. It is much easier for me to change a perl/python script that can handle this data than recompile the engine and have to stop/start it. Is there a correct method to do what I want in QuickFIX? Pretty much if I get sent (8=FIX.4.2 | 9=282 | 35=8 | 49=IC | 56=C | 115=ARCA | 34=1020 | 52=20100630-18:06:23 | 369=415 | 37=121213778 | 16499=fa | 11=VWO7g.y | 17=200318197 | 20=0 | 150=0 | 39=0 | 1=RN | 63=0 | 55=VW | 54=1 | 38=980 | 40=5 | 59=0 | 47=Y | 32=0 | 31=0 | 151=980 | 14=0 | 6=0 | 60=20100630-18:06:23 | 58=New order | 18009=NU | 18315=20100630-18:01:13 | 10=006 | ) I want 8=FIX.4.2 9=282 35=8 49=IC 56=C 115=ARCA 34=1020 52=20100630-18:06:23 369=415 37=121213778 16499=fa 11=VWO7g.y 17=200318197 20=0 150=0 39=0 1=RN 63=0 55=VW 54=1 38=980 40=5 59=0 47=Y 32=0 31=0 151=980 14=0 6=0 60=20100630-18:06:23 58=New order 18009=NU 18315=20100630-18:01:13 10=006 Likewise if I got sent (8=FIX.4.2 | 9=282 | 35=8 | 49=IC | 56=C | 115=ARCA | 34=1020 | 52=20100630-18:06:23 | 369=415 | 37=121213778 | 16499=fa | 11=VWO7g.y | 17=200318197 | 20=0 | 150=0 | 39=0 | 1=RN | 63=0 | 55=VW | 54=1 | 38=980 | 40=5 | 59=0 | 47=Y | 32=0 | 31=0 | 151=980 | 14=0 | 6=0 | 60=20100630-18:06:23 | 58=New order | 18009=NU | 18315=20100630-18:01:13 | 10=006 | 8125=2 | 8126=T | 8127=TX | 8127=5 | 8128=10 | 8126=E | 8127=EN | 8127=2 | 8128=6) it would give me this 8=FIX.4.2 9=282 35=8 49=IC 56=C 115=ARCA 34=1020 52=20100630-18:06:23 369=415 37=121213778 16499=fa 11=VWO7g.y 17=200318197 20=0 150=0 39=0 1=RN 63=0 55=VW 54=1 38=980 40=5 59=0 47=Y 32=0 31=0 151=980 14=0 6=0 60=20100630-18:06:23 58=New order 18009=NU 18315=20100630-18:01:13 10=006 8125=2 8126=T 8127=TX 8127=5 8128=10 8126=E 8127=EN 8127 = 2 8128=6 without doing something like FIX::Symbol SYMBOL; if (message.isSetField(SYMBOL)) { fSymbol = message.getField(SYMBOL).getString(); } Or having to do USER_DEFINE_STRING(Custom_GroupCount,8125); And on a side note if this is not possible. Can someone please let me know if I created the custom group logic correctly? I have yet to have this group come so it has not been tested. namespace FIX42 { class customCharges: public FIX::Group { public: customCharges() : FIX::Group(8125,8126,FIX::message_order(8126,8127,8128,8129,0)) {} FIELD_SET(*this, FIX::Custom_ChargeName); FIELD_SET(*this, FIX::Custom_ChargeType); FIELD_SET(*this, FIX::Custom_ChargeRate); FIELD_SET(*this, FIX::Custom_ChargeAmount); }; } Thank you ahead of time. -- View this message in context: http://old.nabble.com/Disable-Rejects---Accept---Parse-raw-message-tp29049609p29049609.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |