quickfix-developers Mailing List for QuickFIX (Page 13)
Brought to you by:
orenmnero
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
|
Feb
(5) |
Mar
(16) |
Apr
(15) |
May
(17) |
Jun
(33) |
Jul
(35) |
Aug
(34) |
Sep
(19) |
Oct
(40) |
Nov
(51) |
Dec
(43) |
2003 |
Jan
(45) |
Feb
(79) |
Mar
(124) |
Apr
(121) |
May
(132) |
Jun
(77) |
Jul
(110) |
Aug
(57) |
Sep
(48) |
Oct
(83) |
Nov
(60) |
Dec
(40) |
2004 |
Jan
(67) |
Feb
(72) |
Mar
(74) |
Apr
(87) |
May
(70) |
Jun
(96) |
Jul
(75) |
Aug
(147) |
Sep
(128) |
Oct
(83) |
Nov
(67) |
Dec
(42) |
2005 |
Jan
(110) |
Feb
(84) |
Mar
(68) |
Apr
(55) |
May
(51) |
Jun
(192) |
Jul
(111) |
Aug
(100) |
Sep
(79) |
Oct
(127) |
Nov
(73) |
Dec
(112) |
2006 |
Jan
(95) |
Feb
(120) |
Mar
(138) |
Apr
(127) |
May
(124) |
Jun
(97) |
Jul
(103) |
Aug
(88) |
Sep
(138) |
Oct
(91) |
Nov
(112) |
Dec
(57) |
2007 |
Jan
(55) |
Feb
(35) |
Mar
(56) |
Apr
(16) |
May
(20) |
Jun
(77) |
Jul
(43) |
Aug
(47) |
Sep
(29) |
Oct
(54) |
Nov
(39) |
Dec
(40) |
2008 |
Jan
(69) |
Feb
(79) |
Mar
(122) |
Apr
(106) |
May
(114) |
Jun
(76) |
Jul
(83) |
Aug
(71) |
Sep
(53) |
Oct
(75) |
Nov
(54) |
Dec
(43) |
2009 |
Jan
(32) |
Feb
(31) |
Mar
(64) |
Apr
(48) |
May
(38) |
Jun
(43) |
Jul
(35) |
Aug
(15) |
Sep
(52) |
Oct
(62) |
Nov
(62) |
Dec
(21) |
2010 |
Jan
(44) |
Feb
(10) |
Mar
(47) |
Apr
(22) |
May
(5) |
Jun
(54) |
Jul
(19) |
Aug
(54) |
Sep
(16) |
Oct
(15) |
Nov
(7) |
Dec
(8) |
2011 |
Jan
(18) |
Feb
(9) |
Mar
(5) |
Apr
(5) |
May
(41) |
Jun
(40) |
Jul
(29) |
Aug
(17) |
Sep
(12) |
Oct
(23) |
Nov
(22) |
Dec
(11) |
2012 |
Jan
(8) |
Feb
(24) |
Mar
(5) |
Apr
(5) |
May
(6) |
Jun
(5) |
Jul
(5) |
Aug
(5) |
Sep
(2) |
Oct
(9) |
Nov
(2) |
Dec
(18) |
2013 |
Jan
(25) |
Feb
(16) |
Mar
(8) |
Apr
(2) |
May
(16) |
Jun
(17) |
Jul
(2) |
Aug
(13) |
Sep
(3) |
Oct
(4) |
Nov
(1) |
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
(22) |
Apr
(9) |
May
(3) |
Jun
(1) |
Jul
(5) |
Aug
(11) |
Sep
(18) |
Oct
(4) |
Nov
(4) |
Dec
(3) |
2015 |
Jan
(2) |
Feb
|
Mar
|
Apr
(3) |
May
(4) |
Jun
(37) |
Jul
|
Aug
(4) |
Sep
(6) |
Oct
(1) |
Nov
(4) |
Dec
(2) |
2016 |
Jan
(9) |
Feb
(3) |
Mar
(7) |
Apr
(1) |
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
(7) |
Oct
(3) |
Nov
(16) |
Dec
|
2017 |
Jan
(1) |
Feb
(15) |
Mar
(2) |
Apr
(12) |
May
(4) |
Jun
(7) |
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
(23) |
Dec
(8) |
2018 |
Jan
(2) |
Feb
(4) |
Mar
(2) |
Apr
(8) |
May
(3) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
(3) |
Dec
|
2020 |
Jan
|
Feb
(4) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(12) |
Aug
(5) |
Sep
(3) |
Oct
(1) |
Nov
|
Dec
(1) |
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Wjack07 <ck...@gm...> - 2014-07-06 09:30:37
|
Hi: I am trying to trim the latency of sending message by using as less overhead as possible. But I met some weird issue, and have no clue so far. Hope anyone has some idea. Basically, instead of using FIX::Session::sendtotarget ( Message& message) One can use FIX::Session::send ( Message& message)* *But the SessionID needs to be set up first. this can be done separately. But once it is done, we can save this step for every to-be-sent message after (in QuickFIX, it check the sesseionID every time when a message is to be sent, and this slows down a little bit.) Furthermore, one can even use FIX::Session::sendRaw (Message& message)** And this can further save few steps **sendRaw in session.h is in "private" category, so the .h file needs to be modified a bit before using. To push further, I tried FIX::Session::send ( const std::string& string )*** *** again, it is in "private category" so the .h file needs to be modified. Also the string should be well defined before head (for example, from message.ToString). The MegSeqNum issue also needs to be considered. So far so good, and I did successfully send out the message by this way. By using FIX::Session::send ( const std::string& string ), the latency for sending message is significantly reduced. BUT, here is the problem. if I do message.ToString > FIX::Session::send ( const std::string& string ), then the message is sent successfully. if I do message.ToString > modify this string (for example, COrderID from 12345 to 54321)> FIX::Session::send ( const std::string& string ), the message will be written on the log file (or shown on the screen logger) saying it is outgoing, but the server would never respond, which suggesting this message want sent out. What is interesting is, if I do do message.ToString > modify this string (COrderID from 12345 to 54321 by string.erase and then string insert)> modify this string (COrderID from 54321 back to 12345) > FIX::Session::send ( const std::string& string ) then this is successful. This is very weird to me, and it seems the message.ToString automatically set up some flag, and the FIX::Session::send will check that flag (to see if message and message.ToString are matched). I read hose code, but didnt find such a thing. So, my question is, why the modification after message.ToString makes FIX::Session::send ( const std::string& string ) failed? Many thanks Wjack -- View this message in context: http://quickfix.13857.n7.nabble.com/Problem-with-Session-send-const-std-string-string-tp6646.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: John S. <sch...@gl...> - 2014-06-12 18:17:14
|
Looking at the Downloads page at quickfixengine.org, the latest release there is 1.13.3. This appears to be about 4 years old. It looks like active development moved from sourceforge to github at some point after that, and the github repo appears to be actively updated. There are, however, no releases or tags more current than 1.13.3. What do people do if they want the latest stable release? Do they just pull from the github master? Or is there somewhere else to go for something like a current stable/versioned release? |
From: Chris B. <cb...@co...> - 2014-05-20 19:57:15
|
Hello, I'm happy to announce the release of QuickFIX/Go- a port of QuickFIX to idiomatic Go. QuickFIX/Go is released under same QuickFIX license used by QuickFIX and its other derivative ports. Full source can be found on github https://github.com/quickfixgo/quickfix QuickFIX/Go is an ongoing project. To date, all acceptance tests from the original QuickFIX project have been ported and pass successfully. What is Go? Go, also called golang, is a programming language initially developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a statically-typed language with syntax loosely derived from that of C, adding garbage collected memory management, type safety, some dynamic typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library. Why use Go? Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language. QuickFIX would not be possible without the backing and support of QuickFIX and its creator Oren Miller. Many thanks also to Jim Downs and the team at Connamara Systems. -- Chris Busbey Connamara Systems, LLC |
From: K. F. <kfr...@gm...> - 2014-05-05 14:36:45
|
Hello fixuser2! It looks like your linker isn't finding your FIX library, perhaps either because you're not specifying the FIX library in your build command, or the library isn't where it ought to be. But we would need more detail not to be just guessing. Further comments in line, below: On Mon, May 5, 2014 at 3:43 AM, fixuser2 <ama...@yo...> wrote: > > All, > > I'm trying to learn QuickFIX and wrote a small program below. I want to use > QuickFIX to generate FIX messages. When I tried to compile it, I'm getting > errors messages that I couldn't figure out. Your help will be greatly > appreciated. Thank in advance. First, it would be helpful is you could provide more detail about what you are doing. Where did you get QuickFIX, and how and where did you install it? What platform are you running on? (I see a "/tmp" so I might guess some version of linux.) What toolchain (compiler suite) are you using? (It looks like gcc, but what version from where?) What build command did you use to compile / link your test program? > #include <iostream> > #include "quickfix/Message.h" > #include "quickfix/fix44/NewOrderSingle.h" > > using std::cout; > using std::endl; > > int main( int argc, char *argv[] ) > { > time_t currentTime; > > time( ¤tTime ); > > FIX44::NewOrderSingle *newOrder = new FIX44::NewOrderSingle( > FIX::ClOrdID( "1234" ), FIX::Side( FIX::Side_BUY ), > FIX::TransactTime( > FIX::UtcTimeStamp( currentTime ) ), FIX::OrdType( FIX::OrdType_MARKET ) ); > > } Assuming that your build command first compiles and then links your test program, it appears that your compile is successfully finding the QuickFIX header files. So it appears that you have QuickFIX at least partly installed, with its header files in a known location in your include path, or properly pointed to in your compile command. > /tmp/ccSks0a9.o: In function `FIX::DateTime::fromUtcTimeT(long, int)': > tstquickfix.cpp:(.text._ZN3FIX8DateTime12fromUtcTimeTEli[FIX::DateTime::fromUtcTimeT(long, > int)]+0x22): undefined reference to `FIX::time_gmtime(long const*)' This says that at link time your object file /tmp/ccSks0a9.o (so something got compiled successfully from source) has a reference to a QuickFIX function that the linker can't find. This suggests that either you haven't installed a compiled version of QuickFIX on your system (you do appear to have the headers), or you do have it installed, but your toolchain and /or build command doesn't know where it is. > /tmp/ccSks0a9.o: In function > `FIX::message_order::message_order(FIX::message_order const&)': > tstquickfix.cpp:(.text._ZN3FIX13message_orderC2ERKS0_[_ZN3FIX13message_orderC5ERKS0_]+0x36): > undefined reference to `FIX::message_order::operator=(FIX::message_order > const&)' Again, the rest of the errors you posted are link-time missing symbol errors. > ... Just guessing -- again we would need more detail to be able to help you further -- but one possibility is that you only installed the source distribution for QuickFIX. (That would explain why you have the headers but not the compiled library.) If this were the case you would need either to build your own copy of the library from the source you have, or to find and download a pre-built binary version of QuickFIX (that is compatible with your platform and toolchain). Good luck K. Frank |
From: fixuser2 <ama...@ya...> - 2014-05-05 07:44:02
|
All, I'm trying to learn QuickFIX and wrote a small program below. I want to use QuickFIX to generate FIX messages. When I tried to compile it, I'm getting errors messages that I couldn't figure out. Your help will be greatly appreciated. Thank in advance. #include <iostream> #include "quickfix/Message.h" #include "quickfix/fix44/NewOrderSingle.h" using std::cout; using std::endl; int main( int argc, char *argv[] ) { time_t currentTime; time( ¤tTime ); FIX44::NewOrderSingle *newOrder = new FIX44::NewOrderSingle( FIX::ClOrdID( "1234" ), FIX::Side( FIX::Side_BUY ), FIX::TransactTime( FIX::UtcTimeStamp( currentTime ) ), FIX::OrdType( FIX::OrdType_MARKET ) ); } /tmp/ccSks0a9.o: In function `FIX::DateTime::fromUtcTimeT(long, int)': tstquickfix.cpp:(.text._ZN3FIX8DateTime12fromUtcTimeTEli[FIX::DateTime::fromUtcTimeT(long, int)]+0x22): undefined reference to `FIX::time_gmtime(long const*)' /tmp/ccSks0a9.o: In function `FIX::message_order::message_order(FIX::message_order const&)': tstquickfix.cpp:(.text._ZN3FIX13message_orderC2ERKS0_[_ZN3FIX13message_orderC5ERKS0_]+0x36): undefined reference to `FIX::message_order::operator=(FIX::message_order const&)' /tmp/ccSks0a9.o: In function `FIX::FieldMap::FieldMap(FIX::message_order const&)': tstquickfix.cpp:(.text._ZN3FIX8FieldMapC2ERKNS_13message_orderE[_ZN3FIX8FieldMapC5ERKNS_13message_orderE]+0x18): undefined reference to `vtable for FIX::FieldMap' /tmp/ccSks0a9.o: In function `FIX::Message::Message(FIX::BeginString const&, FIX::MsgType const&)': tstquickfix.cpp:(.text._ZN3FIX7MessageC2ERKNS_11BeginStringERKNS_7MsgTypeE[_ZN3FIX7MessageC5ERKNS_11BeginStringERKNS_7MsgTypeE]+0x15f): undefined reference to `FIX::FieldMap::~FieldMap()' tstquickfix.cpp:(.text._ZN3FIX7MessageC2ERKNS_11BeginStringERKNS_7MsgTypeE[_ZN3FIX7MessageC5ERKNS_11BeginStringERKNS_7MsgTypeE]+0x16f): undefined reference to `FIX::FieldMap::~FieldMap()' tstquickfix.cpp:(.text._ZN3FIX7MessageC2ERKNS_11BeginStringERKNS_7MsgTypeE[_ZN3FIX7MessageC5ERKNS_11BeginStringERKNS_7MsgTypeE]+0x17b): undefined reference to `FIX::FieldMap::~FieldMap()' /tmp/ccSks0a9.o: In function `FIX::Message::~Message()': tstquickfix.cpp:(.text._ZN3FIX7MessageD2Ev[_ZN3FIX7MessageD5Ev]+0x26): undefined reference to `FIX::FieldMap::~FieldMap()' tstquickfix.cpp:(.text._ZN3FIX7MessageD2Ev[_ZN3FIX7MessageD5Ev]+0x36): undefined reference to `FIX::FieldMap::~FieldMap()' tstquickfix.cpp:(.text._ZN3FIX7MessageD2Ev[_ZN3FIX7MessageD5Ev]+0x42): undefined reference to `FIX::FieldMap::~FieldMap()' tstquickfix.cpp:(.text._ZN3FIX7MessageD2Ev[_ZN3FIX7MessageD5Ev]+0x6f): undefined reference to `FIX::FieldMap::~FieldMap()' tstquickfix.cpp:(.text._ZN3FIX7MessageD2Ev[_ZN3FIX7MessageD5Ev]+0x80): undefined reference to `FIX::FieldMap::~FieldMap()' /tmp/ccSks0a9.o:(.rodata._ZTIN3FIX7MessageE[typeinfo for FIX::Message]+0x10): undefined reference to `typeinfo for FIX::FieldMap' collect2: ld returned 1 exit status -- View this message in context: http://quickfix.13857.n7.nabble.com/Need-help-with-QuickFIX-4-4-C-tp6642.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: Asher N. <ash...@gm...> - 2014-04-22 17:29:39
|
So I went ahead and did some digging, and this appears to be a problem with Ruby. Firstly, I discovered that code generation is now handled by various GeneratorXX.rb ruby scripts. I've not seen that documented or mentioned anywhere. Secondly, the Ruby 'print' function appears to be the culprit adding brackets [ and quotation marks ". It's worth mentioning that I know zero about Ruby. I made the following changes to GeneratorCPP.rb to get things to compile: diff --git a/spec/GeneratorCPP.rb b/spec/GeneratorCPP.rb index ed9fd2f..244ba33 100644 --- a/spec/GeneratorCPP.rb +++ b/spec/GeneratorCPP.rb @@ -106,8 +106,8 @@ class GeneratorCPP @f.puts "class " + name + ": public FIX::Group" @f.puts "{" @f.puts "public:" - @f.print name + "() : FIX::Group(" + number + "," + delim + "," + "FIX::message_order(" - order.each { |field| @f.printInline field + "," } + @f.puts name + "() : FIX::Group(" + number + "," + delim + "," + "FIX::message_order(" + order.each { |field| @f.putsInline field + "," } @f.putsInline "0)) {}" end @@ -144,7 +144,7 @@ class GeneratorCPP @f.indent required.each_index { |i| field = required[i] - @f.print "const FIX::" + field + "& a" + field + @f.puts "const FIX::" + field + "& a" + field if(i != required.size-1) @f.putsInline "," else That results in the generated files containing some extraneous newlines (which puts inserts but print does not), but otherwise everything appears to work. I'm not going to do any more research on this assuming my correction works, but I wanted to let the community know what I found. Thanks, Asher On Tue, Apr 22, 2014 at 11:50 AM, Asher Newcomer <ash...@gm...> wrote: > Apologies for the typo - clearly the errors occur after I run the > generate.sh script in the spec directory, not the configure script. > > Thanks > > > ---------- Forwarded message ---------- > From: Asher Newcomer <ash...@gm...> > Date: Tue, Apr 22, 2014 at 11:16 AM > Subject: Generate script broken for c++? > To: qui...@li... > > > Hi All, > > I'm attempting to make some very simple changes to the FIX field > definitions in Quickfix, but the generate.sh script seems to be producing > invalid code. > > I have no problem compiling and using the source code directly from the > repo (bootstrap, configure, make). > > However, if I first run the configure.sh script in the spec directory, I > receive errors on a subsequent build because the xsl seems to insert 'bad' > characters into the code. This is prior to me making any changes. Diff on a > couple files as follows: > > diff --git a/quickfix/src/C++/fix42/Advertisement.h > b/quickfix/src/C++/fix42/Advertisement.h > index 71391af..eca39fd 100644 > --- a/quickfix/src/C++/fix42/Advertisement.h > +++ b/quickfix/src/C++/fix42/Advertisement.h > @@ -16,11 +16,11 @@ namespace FIX42 > static FIX::MsgType MsgType() { return FIX::MsgType("7"); } > > Advertisement( > - const FIX::AdvId& aAdvId, > - const FIX::AdvTransType& aAdvTransType, > - const FIX::Symbol& aSymbol, > - const FIX::AdvSide& aAdvSide, > - const FIX::Shares& aShares ) > + ["const FIX::AdvId& aAdvId"], > + ["const FIX::AdvTransType& aAdvTransType"], > + ["const FIX::Symbol& aSymbol"], > + ["const FIX::AdvSide& aAdvSide"], > + ["const FIX::Shares& aShares"] ) > : Message(MsgType()) > { > set(aAdvId); > diff --git a/quickfix/src/C++/fix42/Allocation.h > b/quickfix/src/C++/fix42/Allocation.h > index d5d876e..dced96d 100644 > --- a/quickfix/src/C++/fix42/Allocation.h > +++ b/quickfix/src/C++/fix42/Allocation.h > @@ -16,13 +16,13 @@ namespace FIX42 > static FIX::MsgType MsgType() { return FIX::MsgType("J"); } > > Allocation( > - const FIX::AllocID& aAllocID, > - const FIX::AllocTransType& aAllocTransType, > - const FIX::Side& aSide, > - const FIX::Symbol& aSymbol, > - const FIX::Shares& aShares, > - const FIX::AvgPx& aAvgPx, > - const FIX::TradeDate& aTradeDate ) > + ["const FIX::AllocID& aAllocID"], > + ["const FIX::AllocTransType& aAllocTransType"], > + ["const FIX::Side& aSide"], > + ["const FIX::Symbol& aSymbol"], > + ["const FIX::Shares& aShares"], > + ["const FIX::AvgPx& aAvgPx"], > + ["const FIX::TradeDate& aTradeDate"] ) > > > Any ideas why the brackets and quotations marks are being generated? Any > ideas what I can do to sort this out? > > I'd very much appreciate any insight anyone can offer, as I'm not eager to > go spelunking through the XSL. > > Regards, > > Asher > > |
From: Asher N. <ash...@gm...> - 2014-04-22 15:50:18
|
Apologies for the typo - clearly the errors occur after I run the generate.sh script in the spec directory, not the configure script. Thanks ---------- Forwarded message ---------- From: Asher Newcomer <ash...@gm...> Date: Tue, Apr 22, 2014 at 11:16 AM Subject: Generate script broken for c++? To: qui...@li... Hi All, I'm attempting to make some very simple changes to the FIX field definitions in Quickfix, but the generate.sh script seems to be producing invalid code. I have no problem compiling and using the source code directly from the repo (bootstrap, configure, make). However, if I first run the configure.sh script in the spec directory, I receive errors on a subsequent build because the xsl seems to insert 'bad' characters into the code. This is prior to me making any changes. Diff on a couple files as follows: diff --git a/quickfix/src/C++/fix42/Advertisement.h b/quickfix/src/C++/fix42/Advertisement.h index 71391af..eca39fd 100644 --- a/quickfix/src/C++/fix42/Advertisement.h +++ b/quickfix/src/C++/fix42/Advertisement.h @@ -16,11 +16,11 @@ namespace FIX42 static FIX::MsgType MsgType() { return FIX::MsgType("7"); } Advertisement( - const FIX::AdvId& aAdvId, - const FIX::AdvTransType& aAdvTransType, - const FIX::Symbol& aSymbol, - const FIX::AdvSide& aAdvSide, - const FIX::Shares& aShares ) + ["const FIX::AdvId& aAdvId"], + ["const FIX::AdvTransType& aAdvTransType"], + ["const FIX::Symbol& aSymbol"], + ["const FIX::AdvSide& aAdvSide"], + ["const FIX::Shares& aShares"] ) : Message(MsgType()) { set(aAdvId); diff --git a/quickfix/src/C++/fix42/Allocation.h b/quickfix/src/C++/fix42/Allocation.h index d5d876e..dced96d 100644 --- a/quickfix/src/C++/fix42/Allocation.h +++ b/quickfix/src/C++/fix42/Allocation.h @@ -16,13 +16,13 @@ namespace FIX42 static FIX::MsgType MsgType() { return FIX::MsgType("J"); } Allocation( - const FIX::AllocID& aAllocID, - const FIX::AllocTransType& aAllocTransType, - const FIX::Side& aSide, - const FIX::Symbol& aSymbol, - const FIX::Shares& aShares, - const FIX::AvgPx& aAvgPx, - const FIX::TradeDate& aTradeDate ) + ["const FIX::AllocID& aAllocID"], + ["const FIX::AllocTransType& aAllocTransType"], + ["const FIX::Side& aSide"], + ["const FIX::Symbol& aSymbol"], + ["const FIX::Shares& aShares"], + ["const FIX::AvgPx& aAvgPx"], + ["const FIX::TradeDate& aTradeDate"] ) Any ideas why the brackets and quotations marks are being generated? Any ideas what I can do to sort this out? I'd very much appreciate any insight anyone can offer, as I'm not eager to go spelunking through the XSL. Regards, Asher |
From: Asher N. <ash...@gm...> - 2014-04-22 15:16:54
|
Hi All, I'm attempting to make some very simple changes to the FIX field definitions in Quickfix, but the generate.sh script seems to be producing invalid code. I have no problem compiling and using the source code directly from the repo (bootstrap, configure, make). However, if I first run the configure.sh script in the spec directory, I receive errors on a subsequent build because the xsl seems to insert 'bad' characters into the code. This is prior to me making any changes. Diff on a couple files as follows: diff --git a/quickfix/src/C++/fix42/Advertisement.h b/quickfix/src/C++/fix42/Advertisement.h index 71391af..eca39fd 100644 --- a/quickfix/src/C++/fix42/Advertisement.h +++ b/quickfix/src/C++/fix42/Advertisement.h @@ -16,11 +16,11 @@ namespace FIX42 static FIX::MsgType MsgType() { return FIX::MsgType("7"); } Advertisement( - const FIX::AdvId& aAdvId, - const FIX::AdvTransType& aAdvTransType, - const FIX::Symbol& aSymbol, - const FIX::AdvSide& aAdvSide, - const FIX::Shares& aShares ) + ["const FIX::AdvId& aAdvId"], + ["const FIX::AdvTransType& aAdvTransType"], + ["const FIX::Symbol& aSymbol"], + ["const FIX::AdvSide& aAdvSide"], + ["const FIX::Shares& aShares"] ) : Message(MsgType()) { set(aAdvId); diff --git a/quickfix/src/C++/fix42/Allocation.h b/quickfix/src/C++/fix42/Allocation.h index d5d876e..dced96d 100644 --- a/quickfix/src/C++/fix42/Allocation.h +++ b/quickfix/src/C++/fix42/Allocation.h @@ -16,13 +16,13 @@ namespace FIX42 static FIX::MsgType MsgType() { return FIX::MsgType("J"); } Allocation( - const FIX::AllocID& aAllocID, - const FIX::AllocTransType& aAllocTransType, - const FIX::Side& aSide, - const FIX::Symbol& aSymbol, - const FIX::Shares& aShares, - const FIX::AvgPx& aAvgPx, - const FIX::TradeDate& aTradeDate ) + ["const FIX::AllocID& aAllocID"], + ["const FIX::AllocTransType& aAllocTransType"], + ["const FIX::Side& aSide"], + ["const FIX::Symbol& aSymbol"], + ["const FIX::Shares& aShares"], + ["const FIX::AvgPx& aAvgPx"], + ["const FIX::TradeDate& aTradeDate"] ) Any ideas why the brackets and quotations marks are being generated? Any ideas what I can do to sort this out? I'd very much appreciate any insight anyone can offer, as I'm not eager to go spelunking through the XSL. Regards, Asher |
From: Grant B. <gbi...@co...> - 2014-04-13 15:34:22
|
Every QuickFIX connection is between an Initiator object and an Acceptor object. These are analogous to a client and server, in that an Acceptor waits for an Initiator to connect. Clients usually use Initiators and servers usually use Acceptors. A client application can connect to two servers by creating two Initiators. Each Initiator will have its own session configuration (the config file can contain multiple session configs). Two server applications can connect to each other via FIX, but one's going to have to use an Initiator and the other will use an Acceptor. Using FIX is right approach here; if the servers are controlled by the same firm then maybe they should use something else on an internal network. On Sat, Apr 12, 2014 at 1:38 PM, 刘琛 <cli...@gm...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Hi guys, > > I am now working on a project using QuickFix. There are multi-clients > which need to connect two servers at the same time. How can these two > servers communicate with each other? How can clients connect to two servers > at the same time? Using threads? > > Best wishes, > > Chen > > > > > ------------------------------------------------------------------------------ > Put Bad Developers to Shame > Dominate Development with Jenkins Continuous Integration > Continuously Automate Build, Test & Deployment > Start a new project now. Try Jenkins in the cloud. > http://p.sf.net/sfu/13600_Cloudbees > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- Grant Birchmeier *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://connamara.com |
From: 刘琛 <cli...@gm...> - 2014-04-12 18:38:57
|
Hi guys, I am now working on a project using QuickFix. There are multi-clients which need to connect two servers at the same time. How can these two servers communicate with each other? How can clients connect to two servers at the same time? Using threads? Best wishes, Chen |
From: Grant B. <gbi...@co...> - 2014-04-04 14:54:09
|
I suspect a config problem. Make sure your config has both "UseDataDictionary=Y" and "DataDictionary=path/to/your/FIX44.xml". On Fri, Apr 4, 2014 at 5:31 AM, James Downs <jc...@co...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Saha, > If you are using QuickFIX/n you would be better served to post you > question to the QuickFIX/n mailing list. > > http://quickfixn.org/help > > Jim > > > On Thu, Apr 3, 2014 at 5:31 PM, Saha Binoy <Bin...@sr...> wrote: > >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> >> Hi, >> >> I am sending TradeCaptureReportRequest (35=AD) and getting >> TradeCaptureReportRequestAck message in Message Crack (API method). Also I >> am getting error message as " <event> Message 3 Rejected: Tag appears more >> than once (Field=524)". I am using latest QuickFix FIX44.xml. I am using is >> QuickFIXn library v 1.5 (https://github.com/connamara/quickfixn). I hope >> this the latest code. Your help is highly appreciated. >> >> >> >> Thanks >> >> Ben >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >> > > > > -- > > *Connamara Systems, LLC* > *Made-To-Measure Trading Solutions.* > Exactly what you need. No more. No less. > http://www.connamara.com <http://connamara.com/> > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- Grant Birchmeier *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://connamara.com |
From: James D. <jc...@co...> - 2014-04-04 10:32:06
|
Saha, If you are using QuickFIX/n you would be better served to post you question to the QuickFIX/n mailing list. http://quickfixn.org/help Jim On Thu, Apr 3, 2014 at 5:31 PM, Saha Binoy <Bin...@sr...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Hi, > > I am sending TradeCaptureReportRequest (35=AD) and getting > TradeCaptureReportRequestAck message in Message Crack (API method). Also I > am getting error message as " <event> Message 3 Rejected: Tag appears more > than once (Field=524)". I am using latest QuickFix FIX44.xml. I am using is > QuickFIXn library v 1.5 (https://github.com/connamara/quickfixn). I hope > this the latest code. Your help is highly appreciated. > > > > Thanks > > Ben > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://www.connamara.com <http://connamara.com/> |
From: Saha B. <Bin...@sr...> - 2014-04-03 22:58:49
|
Hi, I am sending TradeCaptureReportRequest (35=AD) and getting TradeCaptureReportRequestAck message in Message Crack (API method). Also I am getting error message as " <event> Message 3 Rejected: Tag appears more than once (Field=524)". I am using latest QuickFix FIX44.xml. I am using is QuickFIXn library v 1.5 (https://github.com/connamara/quickfixn). I hope this the latest code. Your help is highly appreciated. Thanks Ben |
From: Maz S. <ma...@ey...> - 2014-03-26 15:27:59
|
Ok, great! I'll check it out. Thanks ------- Original Message ------- >From : K. Frank[mailto:kfr...@gm...] Sent : 3/25/2014 5:46:17 PM To : qui...@li... Cc : Subject : RE: Re: [Quickfix-developers] Non-MSVCbuild(wasRe:quickfixjmultiplesessions only diff Port) QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Hello Maz! On Tue, Mar 25, 2014 at 3:39 PM, Maz Saeed <ma...@ey...> wrote: > Hey Frank, > Quick question; is this the XML package you used in your GCC project? > > http://xmlsoft.org/index.html Yes, I believe it is, although I am not certain. I used a pre-built version of libxml2 that I downloaded (I think) from here: http://www.stats.ox.ac.uk/pub/Rtools/R215x.html http://www.stats.ox.ac.uk/pub/Rtools/goodies/multilib/Old/local215.zip I speculate that http://www.stats.ox.ac.uk/pub/Rtools/goodies/multilib/local300.zip is a newer version, but I haven't looked at it. My copy of local215.zip has both 32-bit and 64-bit versions. I got it specifically to get the 64-bit version, but from what you said about your compiler, you would probably want the 32-bit version. Assuming that you're using the 32-bit mingw windows port of gcc, I would guess that the pre-built 32-bit version in the above download would work for you. (I don't know this for a fact, but c code -- which libxml is -- is reasonably likely to be object-code compatible from one compiler version to another.) The use of libxml is activated in a handful of files by ifdef's keyed off of "HAVE_LIBXML". You'll need to turn on these ifdef code paths one way or another. > Thanks, > --Maz Best K. Frank ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: K. F. <kfr...@gm...> - 2014-03-25 22:46:24
|
Hello Maz! On Tue, Mar 25, 2014 at 3:39 PM, Maz Saeed <ma...@ey...> wrote: > Hey Frank, > Quick question; is this the XML package you used in your GCC project? > > http://xmlsoft.org/index.html Yes, I believe it is, although I am not certain. I used a pre-built version of libxml2 that I downloaded (I think) from here: http://www.stats.ox.ac.uk/pub/Rtools/R215x.html http://www.stats.ox.ac.uk/pub/Rtools/goodies/multilib/Old/local215.zip I speculate that http://www.stats.ox.ac.uk/pub/Rtools/goodies/multilib/local300.zip is a newer version, but I haven't looked at it. My copy of local215.zip has both 32-bit and 64-bit versions. I got it specifically to get the 64-bit version, but from what you said about your compiler, you would probably want the 32-bit version. Assuming that you're using the 32-bit mingw windows port of gcc, I would guess that the pre-built 32-bit version in the above download would work for you. (I don't know this for a fact, but c code -- which libxml is -- is reasonably likely to be object-code compatible from one compiler version to another.) The use of libxml is activated in a handful of files by ifdef's keyed off of "HAVE_LIBXML". You'll need to turn on these ifdef code paths one way or another. > Thanks, > --Maz Best K. Frank |
From: Maz S. <ma...@ey...> - 2014-03-25 19:39:56
|
Hey Frank, Quick question; is this the XML package you used in your GCC project? http://xmlsoft.org/index.html Thanks, --Maz ------- Original Message ------- >From : K. Frank[mailto:kfr...@gm...] Sent : 3/24/2014 5:33:23 PM To : qui...@li... Cc : Subject : RE: Re: [Quickfix-developers] Non-MSVC build(wasRe:quickfixjmultiplesessions only diff Port) QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Hi Maz! On Mon, Mar 24, 2014 at 3:46 PM, Maz Saeed <ma...@ey...> wrote: > Hey Frank, > Starting to compile with MINGW, getting all kinds of errors -- mostly the include related. For starters, do you know where I could find these header files and associated > libraries? > > #include <sys/socket.h> > #include <sys/ioctl.h> > #include <netinet/in.h> > #include <netinet/tcp.h> > #include <arpa/inet.h> > #include <netdb.h> > #include <fcntl.h> > #include <unistd.h> > #include <pthread.h> > #include <signal.h> First off, which version of QuickFIX are you working with? And which version of which compiler? Are you using a mingw or mingw-w64 version of gcc? If so, which one, i.e., what is the output of "g++ --version"? Also, do you want a 32-bit or 64-bit build? (There were a couple of 64-bit incompatibilities I had to change.) There is an important top-level thing I neglected to mention. To first approximation, you will want to be using the windows-api code paths through the ifdef's. For the most part the windows ifdef-paths are triggered by "#ifdef _MSC_VER". The QuickFIX code is a little imperfect in that _MSC_VER typically indicates that the msvc compiler is being used, while _WIN32 typically indicates that the windows api is being used. These are two different things, but QuickFIX seems to be using _MSC_VER for both purposes. You want to use the windows api (because you will be running on windows rather than on unix or a unix emulator), but you aren't using msvc (and I assume that you are using one of the mingw ports of gcc). So you will typically have _WIN32 defined (e.g., I believe that _WIN32 is normally defined automatically by mingw-w64), but you won't have _MSC_VER defined, because your compiler is not a version of msvc. I thought it was cleaner NOT to simply define _MSC_VER (because it would be incorrect to claim that I was using msvc). So I chose to change _most_ of the occurrences of _MSC_VER in the code to _WIN32. For example, in my copy of Utility.h (I assume that yours is similar, if not identical.), I have the following #include's: #ifdef _MSC_VER // <-- change this to _WIN32 ///////////////////////////////////////////// #include <Winsock2.h> // <-- these are windows-api headers #include <process.h> #include <direct.h> #include <time.h> typedef int socklen_t; ///////////////////////////////////////////// #else ///////////////////////////////////////////// #include <sys/types.h> // <-- these are posix headers #include <sys/socket.h> #include <sys/ioctl.h> #include <sys/time.h> #include <sys/stat.h> #include <netinet/in.h> #include <netinet/tcp.h> #include <arpa/inet.h> #include <netdb.h> #include <fcntl.h> #include <unistd.h> #include <pthread.h> #include <signal.h> #include <errno.h> #include <time.h> #include <stdlib.h> ///////////////////////////////////////////// #endif So if you change _MSC_VER to _WIN32 as indicated above, you will now be including the windows headers rather than the posix headers (that you don't have). There are occurrences of _MSC_VER scattered throughout the QuickFIX code base. From memory, I changed most, but not all of these to _WIN32. Just start compiling, and when errors show up see if _MSC_VER is involved, and if it makes sense, change it to _WIN32. Note that the first include file in the windows section is: #include <Winsock2.h> This reminds me of something. Not when you compile and "ar"-ing the static QuickFIX library, but when you link your application to that library, you will need to specify some libraries in the link command, Winsock2.h is for the windows socket implementation that resides in a library that you will have to link to. At least with mingw-w64, you do this by specifying -lws2_32 at the end of the link command. More completely, I had to specify the following libraries: -lxml2 -lz -liconv -lws2_32 This is because (as mentioned in my earlier posting) I told QuickFIX to use "LIBXML" rather than "MSXML", and then found a windows build of libxml. "-lxml2" is for that. "-lz" and "-liconv" are for libraries used by that libxml implementation. > Thanks, > --Maz Good luck. K. Frank ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Maz S. <ma...@ey...> - 2014-03-25 15:32:45
|
Hey Frank, Thanks for a concrete set of instructions on compiler detection macros! Your instructions make perfect sense! I'll have another go at it and hope to make more headway this time. Hope you got my email from last night about the FIX and compiler version. --Maz ------- Original Message ------- >From : K. Frank[mailto:kfr...@gm...] Sent : 3/24/2014 5:33:23 PM To : qui...@li... Cc : Subject : RE: Re: [Quickfix-developers] Non-MSVC build(wasRe:quickfixjmultiplesessions only diff Port) QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Hi Maz! On Mon, Mar 24, 2014 at 3:46 PM, Maz Saeed <ma...@ey...> wrote: > Hey Frank, > Starting to compile with MINGW, getting all kinds of errors -- mostly the include related. For starters, do you know where I could find these header files and associated > libraries? > > #include <sys/socket.h> > #include <sys/ioctl.h> > #include <netinet/in.h> > #include <netinet/tcp.h> > #include <arpa/inet.h> > #include <netdb.h> > #include <fcntl.h> > #include <unistd.h> > #include <pthread.h> > #include <signal.h> First off, which version of QuickFIX are you working with? And which version of which compiler? Are you using a mingw or mingw-w64 version of gcc? If so, which one, i.e., what is the output of "g++ --version"? Also, do you want a 32-bit or 64-bit build? (There were a couple of 64-bit incompatibilities I had to change.) There is an important top-level thing I neglected to mention. To first approximation, you will want to be using the windows-api code paths through the ifdef's. For the most part the windows ifdef-paths are triggered by "#ifdef _MSC_VER". The QuickFIX code is a little imperfect in that _MSC_VER typically indicates that the msvc compiler is being used, while _WIN32 typically indicates that the windows api is being used. These are two different things, but QuickFIX seems to be using _MSC_VER for both purposes. You want to use the windows api (because you will be running on windows rather than on unix or a unix emulator), but you aren't using msvc (and I assume that you are using one of the mingw ports of gcc). So you will typically have _WIN32 defined (e.g., I believe that _WIN32 is normally defined automatically by mingw-w64), but you won't have _MSC_VER defined, because your compiler is not a version of msvc. I thought it was cleaner NOT to simply define _MSC_VER (because it would be incorrect to claim that I was using msvc). So I chose to change _most_ of the occurrences of _MSC_VER in the code to _WIN32. For example, in my copy of Utility.h (I assume that yours is similar, if not identical.), I have the following #include's: #ifdef _MSC_VER // <-- change this to _WIN32 ///////////////////////////////////////////// #include <Winsock2.h> // <-- these are windows-api headers #include <process.h> #include <direct.h> #include <time.h> typedef int socklen_t; ///////////////////////////////////////////// #else ///////////////////////////////////////////// #include <sys/types.h> // <-- these are posix headers #include <sys/socket.h> #include <sys/ioctl.h> #include <sys/time.h> #include <sys/stat.h> #include <netinet/in.h> #include <netinet/tcp.h> #include <arpa/inet.h> #include <netdb.h> #include <fcntl.h> #include <unistd.h> #include <pthread.h> #include <signal.h> #include <errno.h> #include <time.h> #include <stdlib.h> ///////////////////////////////////////////// #endif So if you change _MSC_VER to _WIN32 as indicated above, you will now be including the windows headers rather than the posix headers (that you don't have). There are occurrences of _MSC_VER scattered throughout the QuickFIX code base. From memory, I changed most, but not all of these to _WIN32. Just start compiling, and when errors show up see if _MSC_VER is involved, and if it makes sense, change it to _WIN32. Note that the first include file in the windows section is: #include <Winsock2.h> This reminds me of something. Not when you compile and "ar"-ing the static QuickFIX library, but when you link your application to that library, you will need to specify some libraries in the link command, Winsock2.h is for the windows socket implementation that resides in a library that you will have to link to. At least with mingw-w64, you do this by specifying -lws2_32 at the end of the link command. More completely, I had to specify the following libraries: -lxml2 -lz -liconv -lws2_32 This is because (as mentioned in my earlier posting) I told QuickFIX to use "LIBXML" rather than "MSXML", and then found a windows build of libxml. "-lxml2" is for that. "-lz" and "-liconv" are for libraries used by that libxml implementation. > Thanks, > --Maz Good luck. K. Frank ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Maz S. <ma...@ey...> - 2014-03-25 00:28:23
|
Hey Frank, First off, which version of QuickFIX are you working with? 1.13.3 And which version of which compiler? GNU GCC Compiler A.K.A. mingw32-g++.exe Thanks, --Maz ------- Original Message ------- >From : K. Frank[mailto:kfr...@gm...] Sent : 3/24/2014 5:33:23 PM To : qui...@li... Cc : Subject : RE: Re: [Quickfix-developers] Non-MSVC build(wasRe:quickfixjmultiplesessions only diff Port) QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Hi Maz! On Mon, Mar 24, 2014 at 3:46 PM, Maz Saeed <ma...@ey...> wrote: > Hey Frank, > Starting to compile with MINGW, getting all kinds of errors -- mostly the include related. For starters, do you know where I could find these header files and associated > libraries? > > #include <sys/socket.h> > #include <sys/ioctl.h> > #include <netinet/in.h> > #include <netinet/tcp.h> > #include <arpa/inet.h> > #include <netdb.h> > #include <fcntl.h> > #include <unistd.h> > #include <pthread.h> > #include <signal.h> First off, which version of QuickFIX are you working with? And which version of which compiler? Are you using a mingw or mingw-w64 version of gcc? If so, which one, i.e., what is the output of "g++ --version"? Also, do you want a 32-bit or 64-bit build? (There were a couple of 64-bit incompatibilities I had to change.) There is an important top-level thing I neglected to mention. To first approximation, you will want to be using the windows-api code paths through the ifdef's. For the most part the windows ifdef-paths are triggered by "#ifdef _MSC_VER". The QuickFIX code is a little imperfect in that _MSC_VER typically indicates that the msvc compiler is being used, while _WIN32 typically indicates that the windows api is being used. These are two different things, but QuickFIX seems to be using _MSC_VER for both purposes. You want to use the windows api (because you will be running on windows rather than on unix or a unix emulator), but you aren't using msvc (and I assume that you are using one of the mingw ports of gcc). So you will typically have _WIN32 defined (e.g., I believe that _WIN32 is normally defined automatically by mingw-w64), but you won't have _MSC_VER defined, because your compiler is not a version of msvc. I thought it was cleaner NOT to simply define _MSC_VER (because it would be incorrect to claim that I was using msvc). So I chose to change _most_ of the occurrences of _MSC_VER in the code to _WIN32. For example, in my copy of Utility.h (I assume that yours is similar, if not identical.), I have the following #include's: #ifdef _MSC_VER // <-- change this to _WIN32 ///////////////////////////////////////////// #include <Winsock2.h> // <-- these are windows-api headers #include <process.h> #include <direct.h> #include <time.h> typedef int socklen_t; ///////////////////////////////////////////// #else ///////////////////////////////////////////// #include <sys/types.h> // <-- these are posix headers #include <sys/socket.h> #include <sys/ioctl.h> #include <sys/time.h> #include <sys/stat.h> #include <netinet/in.h> #include <netinet/tcp.h> #include <arpa/inet.h> #include <netdb.h> #include <fcntl.h> #include <unistd.h> #include <pthread.h> #include <signal.h> #include <errno.h> #include <time.h> #include <stdlib.h> ///////////////////////////////////////////// #endif So if you change _MSC_VER to _WIN32 as indicated above, you will now be including the windows headers rather than the posix headers (that you don't have). There are occurrences of _MSC_VER scattered throughout the QuickFIX code base. From memory, I changed most, but not all of these to _WIN32. Just start compiling, and when errors show up see if _MSC_VER is involved, and if it makes sense, change it to _WIN32. Note that the first include file in the windows section is: #include <Winsock2.h> This reminds me of something. Not when you compile and "ar"-ing the static QuickFIX library, but when you link your application to that library, you will need to specify some libraries in the link command, Winsock2.h is for the windows socket implementation that resides in a library that you will have to link to. At least with mingw-w64, you do this by specifying -lws2_32 at the end of the link command. More completely, I had to specify the following libraries: -lxml2 -lz -liconv -lws2_32 This is because (as mentioned in my earlier posting) I told QuickFIX to use "LIBXML" rather than "MSXML", and then found a windows build of libxml. "-lxml2" is for that. "-lz" and "-liconv" are for libraries used by that libxml implementation. > Thanks, > --Maz Good luck. K. Frank ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: K. F. <kfr...@gm...> - 2014-03-24 22:33:29
|
Hi Maz! On Mon, Mar 24, 2014 at 3:46 PM, Maz Saeed <ma...@ey...> wrote: > Hey Frank, > Starting to compile with MINGW, getting all kinds of errors -- mostly the include related. For starters, do you know where I could find these header files and associated > libraries? > > #include <sys/socket.h> > #include <sys/ioctl.h> > #include <netinet/in.h> > #include <netinet/tcp.h> > #include <arpa/inet.h> > #include <netdb.h> > #include <fcntl.h> > #include <unistd.h> > #include <pthread.h> > #include <signal.h> First off, which version of QuickFIX are you working with? And which version of which compiler? Are you using a mingw or mingw-w64 version of gcc? If so, which one, i.e., what is the output of "g++ --version"? Also, do you want a 32-bit or 64-bit build? (There were a couple of 64-bit incompatibilities I had to change.) There is an important top-level thing I neglected to mention. To first approximation, you will want to be using the windows-api code paths through the ifdef's. For the most part the windows ifdef-paths are triggered by "#ifdef _MSC_VER". The QuickFIX code is a little imperfect in that _MSC_VER typically indicates that the msvc compiler is being used, while _WIN32 typically indicates that the windows api is being used. These are two different things, but QuickFIX seems to be using _MSC_VER for both purposes. You want to use the windows api (because you will be running on windows rather than on unix or a unix emulator), but you aren't using msvc (and I assume that you are using one of the mingw ports of gcc). So you will typically have _WIN32 defined (e.g., I believe that _WIN32 is normally defined automatically by mingw-w64), but you won't have _MSC_VER defined, because your compiler is not a version of msvc. I thought it was cleaner NOT to simply define _MSC_VER (because it would be incorrect to claim that I was using msvc). So I chose to change _most_ of the occurrences of _MSC_VER in the code to _WIN32. For example, in my copy of Utility.h (I assume that yours is similar, if not identical.), I have the following #include's: #ifdef _MSC_VER // <-- change this to _WIN32 ///////////////////////////////////////////// #include <Winsock2.h> // <-- these are windows-api headers #include <process.h> #include <direct.h> #include <time.h> typedef int socklen_t; ///////////////////////////////////////////// #else ///////////////////////////////////////////// #include <sys/types.h> // <-- these are posix headers #include <sys/socket.h> #include <sys/ioctl.h> #include <sys/time.h> #include <sys/stat.h> #include <netinet/in.h> #include <netinet/tcp.h> #include <arpa/inet.h> #include <netdb.h> #include <fcntl.h> #include <unistd.h> #include <pthread.h> #include <signal.h> #include <errno.h> #include <time.h> #include <stdlib.h> ///////////////////////////////////////////// #endif So if you change _MSC_VER to _WIN32 as indicated above, you will now be including the windows headers rather than the posix headers (that you don't have). There are occurrences of _MSC_VER scattered throughout the QuickFIX code base. From memory, I changed most, but not all of these to _WIN32. Just start compiling, and when errors show up see if _MSC_VER is involved, and if it makes sense, change it to _WIN32. Note that the first include file in the windows section is: #include <Winsock2.h> This reminds me of something. Not when you compile and "ar"-ing the static QuickFIX library, but when you link your application to that library, you will need to specify some libraries in the link command, Winsock2.h is for the windows socket implementation that resides in a library that you will have to link to. At least with mingw-w64, you do this by specifying -lws2_32 at the end of the link command. More completely, I had to specify the following libraries: -lxml2 -lz -liconv -lws2_32 This is because (as mentioned in my earlier posting) I told QuickFIX to use "LIBXML" rather than "MSXML", and then found a windows build of libxml. "-lxml2" is for that. "-lz" and "-liconv" are for libraries used by that libxml implementation. > Thanks, > --Maz Good luck. K. Frank |
From: Maz S. <ma...@ey...> - 2014-03-24 19:47:04
|
Hey Frank, Starting to compile with MINGW, getting all kinds of errors -- mostly the include related. For starters, do you know where I could find these header files and associated libraries? #include <sys/socket.h> #include <sys/ioctl.h> #include <netinet/in.h> #include <netinet/tcp.h> #include <arpa/inet.h> #include <netdb.h> #include <fcntl.h> #include <unistd.h> #include <pthread.h> #include <signal.h> Thanks, --Maz ------- Original Message ------- >From : K. Frank[mailto:kfr...@gm...] Sent : 3/22/2014 6:23:44 PM To : qui...@li... Cc : Subject : RE: Re: [Quickfix-developers] Non-MSVC build (wasRe:quickfixjmultiplesessions only diff Port) QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Hi Maz! On Sat, Mar 22, 2014 at 6:29 PM, Maz Saeed <ma...@sh...> wrote: > Hey Frank, > One more quick question; where should I start the compilation process? Is it Utility.cpp first and then pretty much any order? My goal is to create all the object files > first and then convert them into a static library. I guess I could run compilation with VC++ of one of the projects to see in which sequence object files are > created...thought I'll check with you first. It doesn't matter at all in what order you compile the .cpp files. They are independent "translation units" and the .o files that get produced are independent of one another. For whatever reason, the first file in my makefile is Session.o (which causes Session.cpp to get compiled by a make built-in rule). But it doesn't matter, and I don't recall how my particular order of files came about. By the way, which version of QuickFIX are you working with? > Thanks, > --Maz Happy QuickFIX Hacking! K. Frank > ------- Original Message ------- > From : K. Frank[mailto:] > > Hello Maz! > > On Sat, Mar 22, 2014 at 12:58 PM, Maz Saeed <ma...@ec...> wrote: >> Hey Frank, >> Getting started on the modifying the quickFix with Windows GCC. As you pointed out to use the UNIX version as a starting point, > ... >> my question is how do you extract the >> quickfix-logviewer-1.1.1.tar.gz in Windows environment? > ... ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: K. F. <kfr...@gm...> - 2014-03-22 23:23:50
|
Hi Maz! On Sat, Mar 22, 2014 at 6:29 PM, Maz Saeed <ma...@sh...> wrote: > Hey Frank, > One more quick question; where should I start the compilation process? Is it Utility.cpp first and then pretty much any order? My goal is to create all the object files > first and then convert them into a static library. I guess I could run compilation with VC++ of one of the projects to see in which sequence object files are > created...thought I'll check with you first. It doesn't matter at all in what order you compile the .cpp files. They are independent "translation units" and the .o files that get produced are independent of one another. For whatever reason, the first file in my makefile is Session.o (which causes Session.cpp to get compiled by a make built-in rule). But it doesn't matter, and I don't recall how my particular order of files came about. By the way, which version of QuickFIX are you working with? > Thanks, > --Maz Happy QuickFIX Hacking! K. Frank > ------- Original Message ------- > From : K. Frank[mailto:] > > Hello Maz! > > On Sat, Mar 22, 2014 at 12:58 PM, Maz Saeed <ma...@ec...> wrote: >> Hey Frank, >> Getting started on the modifying the quickFix with Windows GCC. As you pointed out to use the UNIX version as a starting point, > ... >> my question is how do you extract the >> quickfix-logviewer-1.1.1.tar.gz in Windows environment? > ... |
From: Maz S. <ma...@ey...> - 2014-03-22 22:30:05
|
Hey Frank, One more quick question; where should I start the compilation process? Is it Utility.cpp first and then pretty much any order? My goal is to create all the object files first and then convert them into a static library. I guess I could run compilation with VC++ of one of the projects to see in which sequence object files are created...thought I'll check with you first. Thanks, --Maz ------- Original Message ------- >From : K. Frank[mailto:kfr...@gm...] Sent : 3/22/2014 2:07:27 PM To : qui...@li... Cc : Subject : RE: Re: [Quickfix-developers] Non-MSVC build (was Re:quickfixjmultiplesessions only diff Port) QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Hello Maz! On Sat, Mar 22, 2014 at 12:58 PM, Maz Saeed <ma...@ec...> wrote: > Hey Frank, > Getting started on the modifying the quickFix with Windows GCC. As you pointed out to use the UNIX version as a starting point, As an aside, you can also work off the windows version. The windows and unix versions are almost the same, and the core code, I believe, is identical. (Windows / unix differences are packaged in ifdef's.) > my question is how do you extract the > quickfix-logviewer-1.1.1.tar.gz in Windows environment? I never downloaded (or used) quickfix-logviewer. (I only downloaded quickfix-1.13.3.zip and quickfix-1.13.3.tar.gz.) > I don't have UNIX at the moment to uncompress it there and port it > over to Windows...unless there's a gzip utility for Windows. Let me know. I believe that the third-party windows programs 7-zip and winrar will both handle tar.gz. (I think you can also get windows versions of tar and gzip, but I haven't done that.) > Thanks, > --Maz Again, you don't need quickfix-logviewer to build and run the core QuickFIX code, but it could be a nice utility to have. Good luck. K. Frank > ------- Original Message ------- > From : K. Frank[mailto:] > > Hi Maz! > > On Tue, Mar 18, 2014 at 9:11 PM, Maz Saeed <ma...@of...> wrote: >> Hi Frank, >> Thanks for the quick response! I've made couple of half hearted >> attempts...kinda replicating creation of static library using the source >> files ... > > Yes, that is what I did. I compiled the source files, and put them > into a static library using ar. > ... ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Maz S. <ma...@ey...> - 2014-03-22 20:17:46
|
Ok, thanks! <div>-------- Original message --------</div><div>From: "K. Frank" <kfr...@gm...> </div><div>Date:03/22/2014 2:07 PM (GMT-06:00) </div><div>To: Quickfix Developers List <qui...@li...> </div><div>Subject: Re: [Quickfix-developers] Non-MSVC build (was Re:quickfixjmultiplesessions only diff Port) </div><div> </div>QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Hello Maz! On Sat, Mar 22, 2014 at 12:58 PM, Maz Saeed <ma...@ec...> wrote: > Hey Frank, > Getting started on the modifying the quickFix with Windows GCC. As you pointed out to use the UNIX version as a starting point, As an aside, you can also work off the windows version. The windows and unix versions are almost the same, and the core code, I believe, is identical. (Windows / unix differences are packaged in ifdef's.) > my question is how do you extract the > quickfix-logviewer-1.1.1.tar.gz in Windows environment? I never downloaded (or used) quickfix-logviewer. (I only downloaded quickfix-1.13.3.zip and quickfix-1.13.3.tar.gz.) > I don't have UNIX at the moment to uncompress it there and port it > over to Windows...unless there's a gzip utility for Windows. Let me know. I believe that the third-party windows programs 7-zip and winrar will both handle tar.gz. (I think you can also get windows versions of tar and gzip, but I haven't done that.) > Thanks, > --Maz Again, you don't need quickfix-logviewer to build and run the core QuickFIX code, but it could be a nice utility to have. Good luck. K. Frank > ------- Original Message ------- > From : K. Frank[mailto:] > > Hi Maz! > > On Tue, Mar 18, 2014 at 9:11 PM, Maz Saeed <ma...@of...> wrote: >> Hi Frank, >> Thanks for the quick response! I've made couple of half hearted >> attempts...kinda replicating creation of static library using the source >> files ... > > Yes, that is what I did. I compiled the source files, and put them > into a static library using ar. > ... ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: K. F. <kfr...@gm...> - 2014-03-22 19:07:34
|
Hello Maz! On Sat, Mar 22, 2014 at 12:58 PM, Maz Saeed <ma...@ec...> wrote: > Hey Frank, > Getting started on the modifying the quickFix with Windows GCC. As you pointed out to use the UNIX version as a starting point, As an aside, you can also work off the windows version. The windows and unix versions are almost the same, and the core code, I believe, is identical. (Windows / unix differences are packaged in ifdef's.) > my question is how do you extract the > quickfix-logviewer-1.1.1.tar.gz in Windows environment? I never downloaded (or used) quickfix-logviewer. (I only downloaded quickfix-1.13.3.zip and quickfix-1.13.3.tar.gz.) > I don't have UNIX at the moment to uncompress it there and port it > over to Windows...unless there's a gzip utility for Windows. Let me know. I believe that the third-party windows programs 7-zip and winrar will both handle tar.gz. (I think you can also get windows versions of tar and gzip, but I haven't done that.) > Thanks, > --Maz Again, you don't need quickfix-logviewer to build and run the core QuickFIX code, but it could be a nice utility to have. Good luck. K. Frank > ------- Original Message ------- > From : K. Frank[mailto:] > > Hi Maz! > > On Tue, Mar 18, 2014 at 9:11 PM, Maz Saeed <ma...@of...> wrote: >> Hi Frank, >> Thanks for the quick response! I've made couple of half hearted >> attempts...kinda replicating creation of static library using the source >> files ... > > Yes, that is what I did. I compiled the source files, and put them > into a static library using ar. > ... |
From: Maz S. <ma...@ey...> - 2014-03-19 20:33:23
|
Hi Frank, Using gcc with code blocks and have both 32 and 64 bit versions. I can use the make file as you pointed out. Thanks! --Maz <div>-------- Original message --------</div><div>From: "K. Frank" <kfr...@gm...> </div><div>Date:03/19/2014 12:00 PM (GMT-06:00) </div><div>To: Quickfix Developers List <qui...@li...> </div><div>Subject: Re: [Quickfix-developers] Non-MSVC build (was Re:quickfixjmultiplesessions only diff Port) </div><div> </div>QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Hi Maz! On Wed, Mar 19, 2014 at 11:37 AM, Maz Saeed <ma...@er...> wrote: > Great, thanks for handy tips! Should I start with the Unix version of the library instead of Windows and modify it as I go along? I don't think the version matters -- the code is the same (at least for the 1.13.3 version I had downloaded). There may have been some different batch files or shell scripts in the .zip vs. the tar.gz, but the code itself was the same. Which specific compiler are you using? You had mentioned CodeBlocks. I think people often use it with gcc, but that it works with a number of compilers. I just used (64-bit) mingw-w64 with command-line (no IDE) mingw32-make (Yes, the version of make that comes with the mingw-w64 toolchain is call mingw32-make.) to drive mingw-w64's g++ and ar. I would say just start compiling, and with the exception of the two issues I mentioned before, just make the obvious one-line patches as they come up. > --Maz Happy QuickFIX Hacking! K. Frank > ------- Original Message ------- > From : K. Frank > > Hi Maz! > > On Tue, Mar 18, 2014 at 9:11 PM, Maz Saeed <ma...@of...> wrote: >> Hi Frank, >> Thanks for the quick response! I've made couple of half hearted >> attempts...kinda replicating creation of static library using the source >> files ... > > Yes, that is what I did. I compiled the source files, and put them > into a static library using ar. > ... ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |