From fe588e92f1d67f614c0f6dcc6b36f225934be817 Mon Sep 17 00:00:00 2001 From: Ramiro Paz Date: Mon, 9 Mar 2026 15:35:32 -0300 Subject: [PATCH 1/9] adding quickfix --- go.mod | 1 + go.sum | 2 + last_update_info.txt | 1 + quickfix/CHANGELOG.md | 399 + quickfix/CONTRIBUTING.md | 18 + quickfix/LICENSE | 46 + quickfix/Makefile | 92 + quickfix/README.md | 156 + quickfix/_sql/embed.go | 6 + quickfix/_sql/mssql/create.bat | 1 + quickfix/_sql/mssql/quickfix_database.sql | 65 + quickfix/_sql/mysql/create.bat | 1 + quickfix/_sql/mysql/create.sh | 1 + quickfix/_sql/mysql/event_log_table.sql | 18 + quickfix/_sql/mysql/messages_log_table.sql | 18 + quickfix/_sql/mysql/messages_table.sql | 19 + quickfix/_sql/mysql/mysql.sql | 5 + quickfix/_sql/mysql/quickfix_database.sql | 2 + quickfix/_sql/mysql/sessions_table.sql | 19 + quickfix/_sql/oracle/messages_table.sql | 14 + quickfix/_sql/oracle/sessions_table.sql | 15 + quickfix/_sql/postgresql/create.bat | 3 + quickfix/_sql/postgresql/create.sh | 3 + quickfix/_sql/postgresql/event_log_table.sql | 16 + .../_sql/postgresql/messages_log_table.sql | 16 + quickfix/_sql/postgresql/messages_table.sql | 15 + quickfix/_sql/postgresql/postgresql.sql | 4 + quickfix/_sql/postgresql/sessions_table.sql | 15 + quickfix/_sql/sqlite3/event_log_table.sql | 15 + quickfix/_sql/sqlite3/messages_log_table.sql | 15 + quickfix/_sql/sqlite3/messages_table.sql | 17 + quickfix/_sql/sqlite3/sessions_table.sql | 17 + quickfix/_test/Comparator.rb | 72 + quickfix/_test/ComparatorTestCase.rb | 37 + quickfix/_test/FixParser.rb | 53 + quickfix/_test/FixParserTestCase.rb | 46 + quickfix/_test/Reflector.rb | 150 + quickfix/_test/ReflectorClient.rb | 135 + quickfix/_test/ReflectorClientTestCase.rb | 55 + quickfix/_test/ReflectorServer.rb | 111 + quickfix/_test/ReflectorServerTestCase.rb | 33 + quickfix/_test/ReflectorTestCase.rb | 208 + quickfix/_test/Runner.rb | 144 + quickfix/_test/RunnerTestCase.rb | 21 + quickfix/_test/SocketServer.rb | 57 + quickfix/_test/SocketServerTestCase.rb | 68 + quickfix/_test/atfixturerun.rb | 10 + .../_test/cfg/lastseqnumprocessed/fix42.cfg | 11 + .../_test/cfg/lastseqnumprocessed/fix43.cfg | 11 + .../_test/cfg/lastseqnumprocessed/fix44.cfg | 11 + .../_test/cfg/lastseqnumprocessed/fix50.cfg | 14 + .../cfg/lastseqnumprocessed/fix50sp1.cfg | 14 + .../cfg/lastseqnumprocessed/fix50sp2.cfg | 14 + .../_test/cfg/nextexpectedseqnum/fix44.cfg | 10 + .../_test/cfg/nextexpectedseqnum/fix50.cfg | 12 + .../_test/cfg/nextexpectedseqnum/fix50sp1.cfg | 12 + .../_test/cfg/nextexpectedseqnum/fix50sp2.cfg | 12 + .../_test/cfg/resendreqchunksize/fix40.cfg | 11 + .../_test/cfg/resendreqchunksize/fix41.cfg | 11 + .../_test/cfg/resendreqchunksize/fix42.cfg | 11 + .../_test/cfg/resendreqchunksize/fix43.cfg | 11 + .../_test/cfg/resendreqchunksize/fix44.cfg | 11 + .../_test/cfg/resendreqchunksize/fix50.cfg | 14 + .../_test/cfg/resendreqchunksize/fix50sp1.cfg | 14 + .../_test/cfg/resendreqchunksize/fix50sp2.cfg | 14 + quickfix/_test/cfg/server/fix40.cfg | 10 + quickfix/_test/cfg/server/fix41.cfg | 10 + quickfix/_test/cfg/server/fix42.cfg | 10 + quickfix/_test/cfg/server/fix43.cfg | 10 + quickfix/_test/cfg/server/fix44.cfg | 10 + quickfix/_test/cfg/server/fix50.cfg | 13 + quickfix/_test/cfg/server/fix50sp1.cfg | 13 + quickfix/_test/cfg/server/fix50sp2.cfg | 13 + quickfix/_test/definitions/fields.fmt | 5 + .../fix42/LastProcessedMsgSeqNum.def | 21 + .../fix43/LastProcessedMsgSeqNum.def | 21 + .../fix44/LastProcessedMsgSeqNum.def | 21 + .../fix50/LastProcessedMsgSeqNum.def | 21 + .../fix50sp1/LastProcessedMsgSeqNum.def | 21 + .../fix50sp2/LastProcessedMsgSeqNum.def | 21 + .../fix44/2a_NextExpectedMsgSeqNumCorrect.def | 16 + .../fix44/2b_NextExpectedMsgSeqNumTooHigh.def | 10 + .../fix44/2c_NextExpectedMsgSeqNumTooLow.def | 14 + ...esetSeqNumFlagAndNextExpectedMsgSeqNum.def | 14 + .../fix50/2a_NextExpectedMsgSeqNumCorrect.def | 16 + .../fix50/2b_NextExpectedMsgSeqNumTooHigh.def | 9 + .../fix50/2c_NextExpectedMsgSeqNumTooLow.def | 14 + ...esetSeqNumFlagAndNextExpectedMsgSeqNum.def | 14 + .../2a_NextExpectedMsgSeqNumCorrect.def | 16 + .../2b_NextExpectedMsgSeqNumTooHigh.def | 9 + .../2c_NextExpectedMsgSeqNumTooLow.def | 14 + ...esetSeqNumFlagAndNextExpectedMsgSeqNum.def | 14 + .../2a_NextExpectedMsgSeqNumCorrect.def | 16 + .../2b_NextExpectedMsgSeqNumTooHigh.def | 9 + .../2c_NextExpectedMsgSeqNumTooLow.def | 14 + ...esetSeqNumFlagAndNextExpectedMsgSeqNum.def | 14 + .../SequenceGapFollowedByMessageResent.def | 37 + ...eGapFollowedBySequenceResetWithGapFill.def | 41 + .../SequenceGapFollowedByMessageResent.def | 37 + ...eGapFollowedBySequenceResetWithGapFill.def | 41 + .../SequenceGapFollowedByMessageResent.def | 37 + ...eGapFollowedBySequenceResetWithGapFill.def | 41 + .../SequenceGapFollowedByMessageResent.def | 37 + ...eGapFollowedBySequenceResetWithGapFill.def | 41 + .../SequenceGapFollowedByMessageResent.def | 37 + ...eGapFollowedBySequenceResetWithGapFill.def | 41 + .../SequenceGapFollowedByMessageResent.def | 37 + ...eGapFollowedBySequenceResetWithGapFill.def | 41 + .../SequenceGapFollowedByMessageResent.def | 37 + ...eGapFollowedBySequenceResetWithGapFill.def | 41 + .../SequenceGapFollowedByMessageResent.def | 37 + ...eGapFollowedBySequenceResetWithGapFill.def | 41 + .../server/fix40/10_MsgSeqNumEqual.def | 15 + .../server/fix40/10_MsgSeqNumGreater.def | 16 + .../server/fix40/10_MsgSeqNumLess.def | 15 + .../server/fix40/11a_NewSeqNoGreater.def | 20 + .../server/fix40/11b_NewSeqNoEqual.def | 20 + .../server/fix40/11c_NewSeqNoLess.def | 24 + .../fix40/13b_UnsolicitedLogoutMessage.def | 8 + .../definitions/server/fix40/14a_BadField.def | 42 + .../server/fix40/14b_RequiredFieldMissing.def | 32 + .../fix40/14c_TagNotDefinedForMsgType.def | 27 + .../fix40/14d_TagSpecifiedWithoutValue.def | 27 + .../server/fix40/14e_IncorrectEnumValue.def | 26 + .../server/fix40/14f_IncorrectDataFormat.def | 25 + .../14g_HeaderBodyTrailerFieldsOutOfOrder.def | 32 + .../server/fix40/14h_RepeatedTag.def | 26 + ..._HeaderAndBodyFieldsOrderedDifferently.def | 32 + ...ossResendMessageThatHAsAlreadyBeenSent.def | 30 + ...9b_PossResendMessageThatHasNotBeenSent.def | 27 + .../fix40/1a_ValidLogonMsgSeqNumTooHigh.def | 12 + .../1a_ValidLogonWithCorrectMsgSeqNum.def | 10 + .../server/fix40/1b_DuplicateIdentity.def | 16 + .../server/fix40/1c_InvalidSenderCompID.def | 5 + .../server/fix40/1c_InvalidTargetCompID.def | 5 + .../fix40/1d_InvalidLogonBadSendingTime.def | 5 + .../fix40/1d_InvalidLogonLengthInvalid.def | 5 + .../fix40/1d_InvalidLogonWrongBeginString.def | 5 + .../server/fix40/1e_NotLogonMessage.def | 5 + .../fix40/20_SimultaneousResendRequest.def | 33 + .../server/fix40/2a_MsgSeqNumCorrect.def | 15 + .../server/fix40/2b_MsgSeqNumTooHigh.def | 28 + .../server/fix40/2c_MsgSeqNumTooLow.def | 12 + .../server/fix40/2d_GarbledMessage.def | 27 + .../fix40/2e_PossDupAlreadyReceived.def | 14 + .../server/fix40/2e_PossDupNotReceived.def | 17 + .../2f_PossDupOrigSendingTimeTooHigh.def | 22 + .../fix40/2g_PossDupNoOrigSendingTime.def | 27 + .../fix40/2i_BeginStringValueUnexpected.def | 20 + .../fix40/2k_CompIDDoesNotMatchProfile.def | 47 + .../fix40/2m_BodyLengthValueNotCorrect.def | 34 + .../fix40/2o_SendingTimeValueOutOfRange.def | 25 + .../server/fix40/2q_MsgTypeNotValid.def | 13 + .../server/fix40/2r_UnregisteredMsgType.def | 13 + .../fix40/2t_FirstThreeFieldsOutOfOrder.def | 20 + .../server/fix40/3b_InvalidChecksum.def | 24 + .../server/fix40/3c_GarbledMessage.def | 26 + .../fix40/4a_NoDataSentDuringHeartBtInt.def | 22 + .../server/fix40/4b_ReceivedTestRequest.def | 12 + .../server/fix40/6_SendTestRequest.def | 24 + .../server/fix40/7_ReceiveRejectMessage.def | 12 + .../fix40/8_AdminAndApplicationMessages.def | 71 + .../server/fix40/8_OnlyAdminMessages.def | 28 + .../fix40/8_OnlyApplicationMessages.def | 34 + .../server/fix40/AlreadyLoggedOn.def | 14 + .../server/fix40/RejectResentMessage.def | 26 + .../definitions/server/fix40/ReverseRoute.def | 42 + .../ReverseRouteWithEmptyRoutingTags.def | 32 + .../server/fix41/10_MsgSeqNumEqual.def | 15 + .../server/fix41/10_MsgSeqNumGreater.def | 16 + .../server/fix41/10_MsgSeqNumLess.def | 15 + .../server/fix41/11a_NewSeqNoGreater.def | 20 + .../server/fix41/11b_NewSeqNoEqual.def | 20 + .../server/fix41/11c_NewSeqNoLess.def | 24 + .../fix41/13b_UnsolicitedLogoutMessage.def | 8 + .../definitions/server/fix41/14a_BadField.def | 42 + .../server/fix41/14b_RequiredFieldMissing.def | 32 + .../fix41/14c_TagNotDefinedForMsgType.def | 27 + .../fix41/14d_TagSpecifiedWithoutValue.def | 27 + .../server/fix41/14e_IncorrectEnumValue.def | 26 + .../server/fix41/14f_IncorrectDataFormat.def | 25 + .../14g_HeaderBodyTrailerFieldsOutOfOrder.def | 32 + .../server/fix41/14h_RepeatedTag.def | 26 + ..._HeaderAndBodyFieldsOrderedDifferently.def | 32 + ...ossResendMessageThatHAsAlreadyBeenSent.def | 30 + ...9b_PossResendMessageThatHasNotBeenSent.def | 27 + .../fix41/1a_ValidLogonMsgSeqNumTooHigh.def | 12 + .../1a_ValidLogonWithCorrectMsgSeqNum.def | 10 + .../server/fix41/1b_DuplicateIdentity.def | 16 + .../server/fix41/1c_InvalidSenderCompID.def | 5 + .../server/fix41/1c_InvalidTargetCompID.def | 5 + .../fix41/1d_InvalidLogonBadSendingTime.def | 5 + .../fix41/1d_InvalidLogonLengthInvalid.def | 5 + .../fix41/1d_InvalidLogonWrongBeginString.def | 5 + .../server/fix41/1e_NotLogonMessage.def | 5 + .../fix41/20_SimultaneousResendRequest.def | 33 + .../server/fix41/2a_MsgSeqNumCorrect.def | 15 + .../server/fix41/2b_MsgSeqNumTooHigh.def | 28 + .../server/fix41/2c_MsgSeqNumTooLow.def | 12 + .../server/fix41/2d_GarbledMessage.def | 27 + .../fix41/2e_PossDupAlreadyReceived.def | 14 + .../server/fix41/2e_PossDupNotReceived.def | 17 + .../2f_PossDupOrigSendingTimeTooHigh.def | 22 + .../fix41/2g_PossDupNoOrigSendingTime.def | 27 + .../fix41/2i_BeginStringValueUnexpected.def | 20 + .../fix41/2k_CompIDDoesNotMatchProfile.def | 47 + .../fix41/2m_BodyLengthValueNotCorrect.def | 34 + .../fix41/2o_SendingTimeValueOutOfRange.def | 25 + .../server/fix41/2q_MsgTypeNotValid.def | 13 + .../server/fix41/2r_UnregisteredMsgType.def | 13 + .../fix41/2t_FirstThreeFieldsOutOfOrder.def | 20 + .../server/fix41/3b_InvalidChecksum.def | 24 + .../server/fix41/3c_GarbledMessage.def | 26 + .../fix41/4a_NoDataSentDuringHeartBtInt.def | 23 + .../server/fix41/4b_ReceivedTestRequest.def | 12 + .../server/fix41/6_SendTestRequest.def | 24 + .../server/fix41/7_ReceiveRejectMessage.def | 12 + .../fix41/8_AdminAndApplicationMessages.def | 71 + .../server/fix41/8_OnlyAdminMessages.def | 28 + .../fix41/8_OnlyApplicationMessages.def | 34 + .../server/fix41/AlreadyLoggedOn.def | 14 + .../server/fix41/RejectResentMessage.def | 26 + .../definitions/server/fix41/ReverseRoute.def | 42 + .../ReverseRouteWithEmptyRoutingTags.def | 42 + .../server/fix42/10_MsgSeqNumEqual.def | 15 + .../server/fix42/10_MsgSeqNumGreater.def | 16 + .../server/fix42/10_MsgSeqNumLess.def | 15 + .../server/fix42/11a_NewSeqNoGreater.def | 20 + .../server/fix42/11b_NewSeqNoEqual.def | 20 + .../server/fix42/11c_NewSeqNoLess.def | 24 + .../fix42/13b_UnsolicitedLogoutMessage.def | 8 + .../definitions/server/fix42/14a_BadField.def | 42 + .../server/fix42/14b_RequiredFieldMissing.def | 32 + .../fix42/14c_TagNotDefinedForMsgType.def | 27 + .../fix42/14d_TagSpecifiedWithoutValue.def | 27 + .../server/fix42/14e_IncorrectEnumValue.def | 36 + .../server/fix42/14f_IncorrectDataFormat.def | 25 + .../14g_HeaderBodyTrailerFieldsOutOfOrder.def | 32 + .../server/fix42/14h_RepeatedTag.def | 26 + .../fix42/14i_RepeatingGroupCountNotEqual.def | 26 + ..._HeaderAndBodyFieldsOrderedDifferently.def | 32 + ...ossResendMessageThatHAsAlreadyBeenSent.def | 30 + ...9b_PossResendMessageThatHasNotBeenSent.def | 27 + .../fix42/1a_ValidLogonMsgSeqNumTooHigh.def | 13 + .../1a_ValidLogonWithCorrectMsgSeqNum.def | 10 + .../server/fix42/1b_DuplicateIdentity.def | 16 + .../server/fix42/1c_InvalidSenderCompID.def | 5 + .../server/fix42/1c_InvalidTargetCompID.def | 5 + .../fix42/1d_InvalidLogonBadSendingTime.def | 5 + .../fix42/1d_InvalidLogonLengthInvalid.def | 5 + .../fix42/1d_InvalidLogonWrongBeginString.def | 5 + .../server/fix42/1e_NotLogonMessage.def | 5 + .../fix42/20_SimultaneousResendRequest.def | 33 + ...RepeatingGroupSpecifierWithValueOfZero.def | 27 + .../server/fix42/2a_MsgSeqNumCorrect.def | 15 + .../server/fix42/2b_MsgSeqNumTooHigh.def | 28 + .../server/fix42/2c_MsgSeqNumTooLow.def | 12 + .../server/fix42/2d_GarbledMessage.def | 27 + .../fix42/2e_PossDupAlreadyReceived.def | 14 + .../server/fix42/2e_PossDupNotReceived.def | 17 + .../2f_PossDupOrigSendingTimeTooHigh.def | 22 + .../fix42/2g_PossDupNoOrigSendingTime.def | 27 + .../fix42/2i_BeginStringValueUnexpected.def | 20 + .../fix42/2k_CompIDDoesNotMatchProfile.def | 47 + .../fix42/2m_BodyLengthValueNotCorrect.def | 34 + .../fix42/2o_SendingTimeValueOutOfRange.def | 25 + .../server/fix42/2q_MsgTypeNotValid.def | 13 + .../server/fix42/2r_UnregisteredMsgType.def | 13 + .../fix42/2t_FirstThreeFieldsOutOfOrder.def | 20 + .../server/fix42/3b_InvalidChecksum.def | 24 + .../server/fix42/3c_GarbledMessage.def | 26 + .../fix42/4a_NoDataSentDuringHeartBtInt.def | 22 + .../server/fix42/4b_ReceivedTestRequest.def | 12 + .../server/fix42/6_SendTestRequest.def | 24 + .../server/fix42/7_ReceiveRejectMessage.def | 12 + .../fix42/8_AdminAndApplicationMessages.def | 71 + .../server/fix42/8_OnlyAdminMessages.def | 28 + .../fix42/8_OnlyApplicationMessages.def | 34 + .../server/fix42/AlreadyLoggedOn.def | 14 + .../server/fix42/RejectResentMessage.def | 26 + .../definitions/server/fix42/ReverseRoute.def | 42 + .../ReverseRouteWithEmptyRoutingTags.def | 41 + .../server/fix43/10_MsgSeqNumEqual.def | 15 + .../server/fix43/10_MsgSeqNumGreater.def | 16 + .../server/fix43/10_MsgSeqNumLess.def | 15 + .../server/fix43/11a_NewSeqNoGreater.def | 20 + .../server/fix43/11b_NewSeqNoEqual.def | 20 + .../server/fix43/11c_NewSeqNoLess.def | 24 + .../fix43/13b_UnsolicitedLogoutMessage.def | 8 + .../definitions/server/fix43/14a_BadField.def | 42 + .../server/fix43/14b_RequiredFieldMissing.def | 32 + .../fix43/14c_TagNotDefinedForMsgType.def | 27 + .../fix43/14d_TagSpecifiedWithoutValue.def | 27 + .../server/fix43/14e_IncorrectEnumValue.def | 36 + .../server/fix43/14f_IncorrectDataFormat.def | 25 + .../14g_HeaderBodyTrailerFieldsOutOfOrder.def | 32 + .../server/fix43/14h_RepeatedTag.def | 26 + .../fix43/14i_RepeatingGroupCountNotEqual.def | 26 + ..._HeaderAndBodyFieldsOrderedDifferently.def | 32 + ...ossResendMessageThatHAsAlreadyBeenSent.def | 30 + ...9b_PossResendMessageThatHasNotBeenSent.def | 27 + .../fix43/1a_ValidLogonMsgSeqNumTooHigh.def | 12 + .../1a_ValidLogonWithCorrectMsgSeqNum.def | 11 + .../server/fix43/1b_DuplicateIdentity.def | 16 + .../server/fix43/1c_InvalidSenderCompID.def | 5 + .../server/fix43/1c_InvalidTargetCompID.def | 5 + .../fix43/1d_InvalidLogonBadSendingTime.def | 5 + .../fix43/1d_InvalidLogonLengthInvalid.def | 5 + .../fix43/1d_InvalidLogonWrongBeginString.def | 5 + .../server/fix43/1e_NotLogonMessage.def | 5 + .../fix43/20_SimultaneousResendRequest.def | 33 + ...RepeatingGroupSpecifierWithValueOfZero.def | 27 + .../server/fix43/2a_MsgSeqNumCorrect.def | 15 + .../server/fix43/2b_MsgSeqNumTooHigh.def | 28 + .../server/fix43/2c_MsgSeqNumTooLow.def | 12 + .../server/fix43/2d_GarbledMessage.def | 27 + .../fix43/2e_PossDupAlreadyReceived.def | 14 + .../server/fix43/2e_PossDupNotReceived.def | 17 + .../2f_PossDupOrigSendingTimeTooHigh.def | 22 + .../fix43/2g_PossDupNoOrigSendingTime.def | 27 + .../fix43/2i_BeginStringValueUnexpected.def | 20 + .../fix43/2k_CompIDDoesNotMatchProfile.def | 47 + .../fix43/2m_BodyLengthValueNotCorrect.def | 34 + .../fix43/2o_SendingTimeValueOutOfRange.def | 25 + .../server/fix43/2q_MsgTypeNotValid.def | 13 + .../server/fix43/2r_UnregisteredMsgType.def | 13 + .../fix43/2t_FirstThreeFieldsOutOfOrder.def | 20 + .../server/fix43/3b_InvalidChecksum.def | 24 + .../server/fix43/3c_GarbledMessage.def | 26 + .../fix43/4a_NoDataSentDuringHeartBtInt.def | 22 + .../server/fix43/4b_ReceivedTestRequest.def | 12 + .../server/fix43/6_SendTestRequest.def | 24 + .../server/fix43/7_ReceiveRejectMessage.def | 12 + .../fix43/8_AdminAndApplicationMessages.def | 71 + .../server/fix43/8_OnlyAdminMessages.def | 28 + .../fix43/8_OnlyApplicationMessages.def | 34 + .../server/fix43/AlreadyLoggedOn.def | 14 + .../server/fix43/RejectResentMessage.def | 26 + .../definitions/server/fix43/ReverseRoute.def | 42 + .../ReverseRouteWithEmptyRoutingTags.def | 41 + .../server/fix44/10_MsgSeqNumEqual.def | 15 + .../server/fix44/10_MsgSeqNumGreater.def | 16 + .../server/fix44/10_MsgSeqNumLess.def | 15 + .../server/fix44/11a_NewSeqNoGreater.def | 20 + .../server/fix44/11b_NewSeqNoEqual.def | 20 + .../server/fix44/11c_NewSeqNoLess.def | 24 + .../fix44/13b_UnsolicitedLogoutMessage.def | 8 + .../definitions/server/fix44/14a_BadField.def | 42 + .../server/fix44/14b_RequiredFieldMissing.def | 32 + .../fix44/14c_TagNotDefinedForMsgType.def | 27 + .../fix44/14d_TagSpecifiedWithoutValue.def | 27 + .../server/fix44/14e_IncorrectEnumValue.def | 36 + .../server/fix44/14f_IncorrectDataFormat.def | 25 + .../14g_HeaderBodyTrailerFieldsOutOfOrder.def | 32 + .../server/fix44/14h_RepeatedTag.def | 26 + .../fix44/14i_RepeatingGroupCountNotEqual.def | 26 + ..._HeaderAndBodyFieldsOrderedDifferently.def | 32 + ...ossResendMessageThatHAsAlreadyBeenSent.def | 30 + ...9b_PossResendMessageThatHasNotBeenSent.def | 27 + .../fix44/1a_ValidLogonMsgSeqNumTooHigh.def | 12 + .../1a_ValidLogonWithCorrectMsgSeqNum.def | 11 + .../server/fix44/1b_DuplicateIdentity.def | 16 + .../server/fix44/1c_InvalidSenderCompID.def | 5 + .../server/fix44/1c_InvalidTargetCompID.def | 5 + .../fix44/1d_InvalidLogonBadSendingTime.def | 5 + .../fix44/1d_InvalidLogonLengthInvalid.def | 5 + .../fix44/1d_InvalidLogonWrongBeginString.def | 5 + .../server/fix44/1e_NotLogonMessage.def | 5 + .../fix44/20_SimultaneousResendRequest.def | 33 + ...RepeatingGroupSpecifierWithValueOfZero.def | 27 + .../server/fix44/2a_MsgSeqNumCorrect.def | 15 + .../server/fix44/2b_MsgSeqNumTooHigh.def | 28 + .../server/fix44/2c_MsgSeqNumTooLow.def | 12 + .../server/fix44/2d_GarbledMessage.def | 27 + .../fix44/2e_PossDupAlreadyReceived.def | 14 + .../server/fix44/2e_PossDupNotReceived.def | 17 + .../2f_PossDupOrigSendingTimeTooHigh.def | 22 + .../fix44/2g_PossDupNoOrigSendingTime.def | 27 + .../fix44/2i_BeginStringValueUnexpected.def | 20 + .../fix44/2k_CompIDDoesNotMatchProfile.def | 47 + .../fix44/2m_BodyLengthValueNotCorrect.def | 34 + .../fix44/2o_SendingTimeValueOutOfRange.def | 25 + .../server/fix44/2q_MsgTypeNotValid.def | 13 + .../server/fix44/2r_UnregisteredMsgType.def | 13 + .../fix44/2t_FirstThreeFieldsOutOfOrder.def | 20 + .../server/fix44/3b_InvalidChecksum.def | 24 + .../server/fix44/3c_GarbledMessage.def | 26 + .../fix44/4a_NoDataSentDuringHeartBtInt.def | 23 + .../server/fix44/4b_ReceivedTestRequest.def | 12 + .../server/fix44/6_SendTestRequest.def | 24 + .../server/fix44/7_ReceiveRejectMessage.def | 12 + .../fix44/8_AdminAndApplicationMessages.def | 71 + .../server/fix44/8_OnlyAdminMessages.def | 28 + .../fix44/8_OnlyApplicationMessages.def | 34 + .../server/fix44/AlreadyLoggedOn.def | 14 + .../server/fix44/RejectResentMessage.def | 26 + .../definitions/server/fix44/ReverseRoute.def | 42 + .../ReverseRouteWithEmptyRoutingTags.def | 41 + .../definitions/server/fix44/SessionReset.def | 34 + .../server/fix50/10_MsgSeqNumEqual.def | 15 + .../server/fix50/10_MsgSeqNumGreater.def | 16 + .../server/fix50/10_MsgSeqNumLess.def | 15 + .../server/fix50/11a_NewSeqNoGreater.def | 20 + .../server/fix50/11b_NewSeqNoEqual.def | 20 + .../server/fix50/11c_NewSeqNoLess.def | 24 + .../fix50/13b_UnsolicitedLogoutMessage.def | 9 + .../definitions/server/fix50/14a_BadField.def | 42 + .../server/fix50/14b_RequiredFieldMissing.def | 32 + .../fix50/14c_TagNotDefinedForMsgType.def | 27 + .../fix50/14d_TagSpecifiedWithoutValue.def | 27 + .../server/fix50/14e_IncorrectEnumValue.def | 36 + .../server/fix50/14f_IncorrectDataFormat.def | 25 + .../14g_HeaderBodyTrailerFieldsOutOfOrder.def | 32 + .../server/fix50/14h_RepeatedTag.def | 26 + .../fix50/14i_RepeatingGroupCountNotEqual.def | 26 + ..._HeaderAndBodyFieldsOrderedDifferently.def | 32 + ...ossResendMessageThatHAsAlreadyBeenSent.def | 30 + ...9b_PossResendMessageThatHasNotBeenSent.def | 27 + .../fix50/1a_ValidLogonMsgSeqNumTooHigh.def | 13 + .../1a_ValidLogonWithCorrectMsgSeqNum.def | 11 + .../server/fix50/1b_DuplicateIdentity.def | 16 + .../server/fix50/1c_InvalidSenderCompID.def | 5 + .../server/fix50/1c_InvalidTargetCompID.def | 5 + .../fix50/1d_InvalidLogonBadSendingTime.def | 5 + .../fix50/1d_InvalidLogonLengthInvalid.def | 5 + .../1d_InvalidLogonNoDefaultApplVerID.def | 5 + .../fix50/1d_InvalidLogonWrongBeginString.def | 5 + .../server/fix50/1e_NotLogonMessage.def | 5 + .../fix50/20_SimultaneousResendRequest.def | 33 + ...RepeatingGroupSpecifierWithValueOfZero.def | 27 + .../server/fix50/2a_MsgSeqNumCorrect.def | 16 + .../server/fix50/2b_MsgSeqNumTooHigh.def | 29 + .../server/fix50/2c_MsgSeqNumTooLow.def | 13 + .../server/fix50/2d_GarbledMessage.def | 27 + .../fix50/2e_PossDupAlreadyReceived.def | 15 + .../server/fix50/2e_PossDupNotReceived.def | 18 + .../2f_PossDupOrigSendingTimeTooHigh.def | 22 + .../fix50/2g_PossDupNoOrigSendingTime.def | 27 + .../fix50/2i_BeginStringValueUnexpected.def | 20 + .../fix50/2k_CompIDDoesNotMatchProfile.def | 47 + .../fix50/2m_BodyLengthValueNotCorrect.def | 34 + .../fix50/2o_SendingTimeValueOutOfRange.def | 29 + .../server/fix50/2q_MsgTypeNotValid.def | 14 + .../server/fix50/2r_UnregisteredMsgType.def | 13 + .../fix50/2t_FirstThreeFieldsOutOfOrder.def | 20 + .../server/fix50/3b_InvalidChecksum.def | 24 + .../server/fix50/3c_GarbledMessage.def | 26 + .../fix50/4a_NoDataSentDuringHeartBtInt.def | 23 + .../server/fix50/4b_ReceivedTestRequest.def | 13 + .../server/fix50/6_SendTestRequest.def | 24 + .../server/fix50/7_ReceiveRejectMessage.def | 12 + .../fix50/8_AdminAndApplicationMessages.def | 71 + .../server/fix50/8_OnlyAdminMessages.def | 29 + .../fix50/8_OnlyApplicationMessages.def | 34 + .../server/fix50/AlreadyLoggedOn.def | 14 + .../server/fix50/RejectResentMessage.def | 26 + .../definitions/server/fix50/ReverseRoute.def | 42 + .../ReverseRouteWithEmptyRoutingTags.def | 41 + .../definitions/server/fix50/SessionReset.def | 34 + .../server/fix50sp1/10_MsgSeqNumEqual.def | 15 + .../server/fix50sp1/10_MsgSeqNumGreater.def | 16 + .../server/fix50sp1/10_MsgSeqNumLess.def | 15 + .../server/fix50sp1/11a_NewSeqNoGreater.def | 20 + .../server/fix50sp1/11b_NewSeqNoEqual.def | 20 + .../server/fix50sp1/11c_NewSeqNoLess.def | 24 + .../fix50sp1/13b_UnsolicitedLogoutMessage.def | 9 + .../server/fix50sp1/14a_BadField.def | 42 + .../fix50sp1/14b_RequiredFieldMissing.def | 32 + .../fix50sp1/14c_TagNotDefinedForMsgType.def | 27 + .../fix50sp1/14d_TagSpecifiedWithoutValue.def | 27 + .../fix50sp1/14e_IncorrectEnumValue.def | 36 + .../fix50sp1/14f_IncorrectDataFormat.def | 25 + .../14g_HeaderBodyTrailerFieldsOutOfOrder.def | 32 + .../server/fix50sp1/14h_RepeatedTag.def | 26 + .../14i_RepeatingGroupCountNotEqual.def | 26 + ..._HeaderAndBodyFieldsOrderedDifferently.def | 32 + ...ossResendMessageThatHAsAlreadyBeenSent.def | 30 + ...9b_PossResendMessageThatHasNotBeenSent.def | 27 + .../1a_ValidLogonMsgSeqNumTooHigh.def | 13 + .../1a_ValidLogonWithCorrectMsgSeqNum.def | 11 + .../server/fix50sp1/1b_DuplicateIdentity.def | 16 + .../fix50sp1/1c_InvalidSenderCompID.def | 5 + .../fix50sp1/1c_InvalidTargetCompID.def | 5 + .../1d_InvalidLogonBadSendingTime.def | 5 + .../fix50sp1/1d_InvalidLogonLengthInvalid.def | 5 + .../1d_InvalidLogonNoDefaultApplVerID.def | 5 + .../1d_InvalidLogonWrongBeginString.def | 5 + .../server/fix50sp1/1e_NotLogonMessage.def | 5 + .../fix50sp1/20_SimultaneousResendRequest.def | 33 + ...RepeatingGroupSpecifierWithValueOfZero.def | 27 + .../server/fix50sp1/2a_MsgSeqNumCorrect.def | 16 + .../server/fix50sp1/2b_MsgSeqNumTooHigh.def | 29 + .../server/fix50sp1/2c_MsgSeqNumTooLow.def | 13 + .../server/fix50sp1/2d_GarbledMessage.def | 27 + .../fix50sp1/2e_PossDupAlreadyReceived.def | 15 + .../server/fix50sp1/2e_PossDupNotReceived.def | 18 + .../2f_PossDupOrigSendingTimeTooHigh.def | 22 + .../fix50sp1/2g_PossDupNoOrigSendingTime.def | 27 + .../2i_BeginStringValueUnexpected.def | 20 + .../fix50sp1/2k_CompIDDoesNotMatchProfile.def | 47 + .../fix50sp1/2m_BodyLengthValueNotCorrect.def | 34 + .../2o_SendingTimeValueOutOfRange.def | 29 + .../server/fix50sp1/2q_MsgTypeNotValid.def | 14 + .../fix50sp1/2r_UnregisteredMsgType.def | 13 + .../2t_FirstThreeFieldsOutOfOrder.def | 20 + .../server/fix50sp1/3b_InvalidChecksum.def | 24 + .../server/fix50sp1/3c_GarbledMessage.def | 26 + .../4a_NoDataSentDuringHeartBtInt.def | 23 + .../fix50sp1/4b_ReceivedTestRequest.def | 13 + .../server/fix50sp1/6_SendTestRequest.def | 24 + .../fix50sp1/7_ReceiveRejectMessage.def | 12 + .../8_AdminAndApplicationMessages.def | 71 + .../server/fix50sp1/8_OnlyAdminMessages.def | 29 + .../fix50sp1/8_OnlyApplicationMessages.def | 34 + .../server/fix50sp1/AlreadyLoggedOn.def | 14 + .../server/fix50sp1/RejectResentMessage.def | 26 + .../server/fix50sp1/ReverseRoute.def | 42 + .../ReverseRouteWithEmptyRoutingTags.def | 41 + .../server/fix50sp1/SessionReset.def | 34 + .../server/fix50sp2/10_MsgSeqNumEqual.def | 15 + .../server/fix50sp2/10_MsgSeqNumGreater.def | 16 + .../server/fix50sp2/10_MsgSeqNumLess.def | 15 + .../server/fix50sp2/11a_NewSeqNoGreater.def | 20 + .../server/fix50sp2/11b_NewSeqNoEqual.def | 20 + .../server/fix50sp2/11c_NewSeqNoLess.def | 24 + .../fix50sp2/13b_UnsolicitedLogoutMessage.def | 9 + .../server/fix50sp2/14a_BadField.def | 42 + .../fix50sp2/14b_RequiredFieldMissing.def | 32 + .../fix50sp2/14c_TagNotDefinedForMsgType.def | 27 + .../fix50sp2/14d_TagSpecifiedWithoutValue.def | 27 + .../fix50sp2/14e_IncorrectEnumValue.def | 36 + .../fix50sp2/14f_IncorrectDataFormat.def | 25 + .../14g_HeaderBodyTrailerFieldsOutOfOrder.def | 32 + .../server/fix50sp2/14h_RepeatedTag.def | 26 + .../14i_RepeatingGroupCountNotEqual.def | 26 + ..._HeaderAndBodyFieldsOrderedDifferently.def | 32 + ...ossResendMessageThatHAsAlreadyBeenSent.def | 30 + ...9b_PossResendMessageThatHasNotBeenSent.def | 27 + .../1a_ValidLogonMsgSeqNumTooHigh.def | 13 + .../1a_ValidLogonWithCorrectMsgSeqNum.def | 11 + .../server/fix50sp2/1b_DuplicateIdentity.def | 16 + .../fix50sp2/1c_InvalidSenderCompID.def | 5 + .../fix50sp2/1c_InvalidTargetCompID.def | 5 + .../1d_InvalidLogonBadSendingTime.def | 5 + .../fix50sp2/1d_InvalidLogonLengthInvalid.def | 5 + .../1d_InvalidLogonNoDefaultApplVerID.def | 5 + .../1d_InvalidLogonWrongBeginString.def | 5 + .../server/fix50sp2/1e_NotLogonMessage.def | 5 + .../fix50sp2/20_SimultaneousResendRequest.def | 33 + ...RepeatingGroupSpecifierWithValueOfZero.def | 27 + .../server/fix50sp2/2a_MsgSeqNumCorrect.def | 16 + .../server/fix50sp2/2b_MsgSeqNumTooHigh.def | 29 + .../server/fix50sp2/2c_MsgSeqNumTooLow.def | 13 + .../server/fix50sp2/2d_GarbledMessage.def | 27 + .../fix50sp2/2e_PossDupAlreadyReceived.def | 15 + .../server/fix50sp2/2e_PossDupNotReceived.def | 18 + .../2f_PossDupOrigSendingTimeTooHigh.def | 22 + .../fix50sp2/2g_PossDupNoOrigSendingTime.def | 27 + .../2i_BeginStringValueUnexpected.def | 20 + .../fix50sp2/2k_CompIDDoesNotMatchProfile.def | 47 + .../fix50sp2/2m_BodyLengthValueNotCorrect.def | 34 + .../2o_SendingTimeValueOutOfRange.def | 29 + .../server/fix50sp2/2q_MsgTypeNotValid.def | 14 + .../fix50sp2/2r_UnregisteredMsgType.def | 13 + .../2t_FirstThreeFieldsOutOfOrder.def | 20 + .../server/fix50sp2/3b_InvalidChecksum.def | 24 + .../server/fix50sp2/3c_GarbledMessage.def | 26 + .../4a_NoDataSentDuringHeartBtInt.def | 23 + .../fix50sp2/4b_ReceivedTestRequest.def | 13 + .../server/fix50sp2/6_SendTestRequest.def | 24 + .../fix50sp2/7_ReceiveRejectMessage.def | 12 + .../8_AdminAndApplicationMessages.def | 71 + .../server/fix50sp2/8_OnlyAdminMessages.def | 29 + .../fix50sp2/8_OnlyApplicationMessages.def | 34 + .../server/fix50sp2/AlreadyLoggedOn.def | 14 + .../server/fix50sp2/RejectResentMessage.def | 26 + .../server/fix50sp2/ReverseRoute.def | 42 + .../ReverseRouteWithEmptyRoutingTags.def | 41 + .../server/fix50sp2/SessionReset.def | 34 + quickfix/_test/fields.fmt | 5 + quickfix/_test/runat.sh | 15 + quickfix/_test/test-server/main.go | 254 + quickfix/_test/test.rb | 60 + quickfix/_test_data/ca.crt | 20 + quickfix/_test_data/localhost.crt | 84 + quickfix/_test_data/localhost.key | 27 + quickfix/acceptor.go | 452 + quickfix/acceptor_test.go | 176 + quickfix/application.go | 41 + quickfix/begin_string.go | 26 + quickfix/cmd/generate-fix/generate-fix.go | 194 + .../cmd/generate-fix/internal/generate.go | 88 + quickfix/cmd/generate-fix/internal/globals.go | 74 + quickfix/cmd/generate-fix/internal/helpers.go | 6 + .../generate-fix/internal/template_helpers.go | 365 + .../cmd/generate-fix/internal/templates.go | 455 + quickfix/config/configuration.go | 1185 + quickfix/connection.go | 44 + quickfix/connection_internal_test.go | 73 + quickfix/datadictionary/build.go | 247 + quickfix/datadictionary/build_test.go | 139 + .../datadictionary/component_type_test.go | 80 + quickfix/datadictionary/datadictionary.go | 333 + .../datadictionary/datadictionary_test.go | 191 + quickfix/datadictionary/field_def_test.go | 26 + quickfix/datadictionary/field_type_test.go | 17 + .../datadictionary/group_field_def_test.go | 17 + quickfix/datadictionary/message_def_test.go | 85 + quickfix/datadictionary/xml.go | 63 + quickfix/datadictionary/xml_test.go | 186 + quickfix/dialer.go | 95 + quickfix/dialer_test.go | 92 + quickfix/doc.go | 19 + quickfix/errors.go | 190 + quickfix/errors_test.go | 297 + quickfix/field.go | 66 + quickfix/field_map.go | 414 + quickfix/field_map_test.go | 204 + quickfix/fix_boolean.go | 47 + quickfix/fix_boolean_test.go | 59 + quickfix/fix_bytes.go | 28 + quickfix/fix_bytes_test.go | 37 + quickfix/fix_decimal.go | 35 + quickfix/fix_decimal_test.go | 89 + quickfix/fix_float.go | 53 + quickfix/fix_float_test.go | 71 + quickfix/fix_int.go | 78 + quickfix/fix_int_test.go | 52 + quickfix/fix_string.go | 32 + quickfix/fix_string_test.go | 65 + quickfix/fix_udecimal.go | 35 + quickfix/fix_udecimal_test.go | 85 + quickfix/fix_utc_timestamp.go | 86 + quickfix/fix_utc_timestamp_test.go | 78 + quickfix/gen/enum/enums.generated.go | 4989 ++++ quickfix/gen/field/fields.generated.go | 22192 ++++++++++++++++ .../advertisement/Advertisement.generated.go | 350 + .../fix40/allocation/Allocation.generated.go | 1120 + .../allocationack/AllocationACK.generated.go | 213 + .../dontknowtrade/DontKnowTrade.generated.go | 235 + quickfix/gen/fix40/email/Email.generated.go | 232 + .../ExecutionReport.generated.go | 1016 + quickfix/gen/fix40/header.generated.go | 365 + .../fix40/heartbeat/Heartbeat.generated.go | 74 + .../IndicationofInterest.generated.go | 426 + .../ListCancelRequest.generated.go | 113 + .../listexecute/ListExecute.generated.go | 113 + .../fix40/liststatus/ListStatus.generated.go | 265 + .../ListStatusRequest.generated.go | 113 + quickfix/gen/fix40/logon/Logon.generated.go | 134 + quickfix/gen/fix40/logout/Logout.generated.go | 74 + .../neworderlist/NewOrderList.generated.go | 810 + .../NewOrderSingle.generated.go | 750 + quickfix/gen/fix40/news/News.generated.go | 193 + .../OrderCancelReject.generated.go | 191 + .../OrderCancelReplaceRequest.generated.go | 713 + .../OrderCancelRequest.generated.go | 368 + .../OrderStatusRequest.generated.go | 230 + quickfix/gen/fix40/quote/Quote.generated.go | 310 + .../quoterequest/QuoteRequest.generated.go | 250 + quickfix/gen/fix40/reject/Reject.generated.go | 94 + .../resendrequest/ResendRequest.generated.go | 95 + .../sequencereset/SequenceReset.generated.go | 94 + .../testrequest/TestRequest.generated.go | 75 + quickfix/gen/fix40/trailer.generated.go | 70 + .../advertisement/Advertisement.generated.go | 540 + .../fix41/allocation/Allocation.generated.go | 1511 ++ .../allocationack/AllocationACK.generated.go | 213 + .../dontknowtrade/DontKnowTrade.generated.go | 479 + quickfix/gen/fix41/email/Email.generated.go | 593 + .../ExecutionReport.generated.go | 1194 + quickfix/gen/fix41/header.generated.go | 441 + .../fix41/heartbeat/Heartbeat.generated.go | 74 + .../IndicationofInterest.generated.go | 647 + .../ListCancelRequest.generated.go | 113 + .../listexecute/ListExecute.generated.go | 113 + .../fix41/liststatus/ListStatus.generated.go | 285 + .../ListStatusRequest.generated.go | 113 + quickfix/gen/fix41/logon/Logon.generated.go | 153 + quickfix/gen/fix41/logout/Logout.generated.go | 74 + .../neworderlist/NewOrderList.generated.go | 1076 + .../NewOrderSingle.generated.go | 1034 + quickfix/gen/fix41/news/News.generated.go | 553 + .../OrderCancelReject.generated.go | 250 + .../OrderCancelReplaceRequest.generated.go | 1016 + .../OrderCancelRequest.generated.go | 499 + .../OrderStatusRequest.generated.go | 403 + quickfix/gen/fix41/quote/Quote.generated.go | 613 + .../quoterequest/QuoteRequest.generated.go | 459 + quickfix/gen/fix41/reject/Reject.generated.go | 94 + .../resendrequest/ResendRequest.generated.go | 95 + .../sequencereset/SequenceReset.generated.go | 94 + .../SettlementInstructions.generated.go | 710 + .../testrequest/TestRequest.generated.go | 75 + quickfix/gen/fix41/trailer.generated.go | 70 + .../advertisement/Advertisement.generated.go | 711 + .../fix42/allocation/Allocation.generated.go | 1761 ++ .../allocationack/AllocationACK.generated.go | 251 + .../fix42/bidrequest/BidRequest.generated.go | 1037 + .../bidresponse/BidResponse.generated.go | 445 + .../BusinessMessageReject.generated.go | 191 + .../dontknowtrade/DontKnowTrade.generated.go | 633 + quickfix/gen/fix42/email/Email.generated.go | 880 + .../ExecutionReport.generated.go | 1928 ++ quickfix/gen/fix42/header.generated.go | 536 + .../fix42/heartbeat/Heartbeat.generated.go | 74 + .../IndicationofInterest.generated.go | 907 + .../ListCancelRequest.generated.go | 154 + .../listexecute/ListExecute.generated.go | 192 + .../fix42/liststatus/ListStatus.generated.go | 505 + .../ListStatusRequest.generated.go | 132 + .../ListStrikePrice.generated.go | 687 + quickfix/gen/fix42/logon/Logon.generated.go | 261 + quickfix/gen/fix42/logout/Logout.generated.go | 112 + .../MarketDataIncrementalRefresh.generated.go | 1248 + .../MarketDataRequest.generated.go | 674 + .../MarketDataRequestReject.generated.go | 152 + ...MarketDataSnapshotFullRefresh.generated.go | 1147 + .../fix42/massquote/MassQuote.generated.go | 1415 + .../neworderlist/NewOrderList.generated.go | 1921 ++ .../NewOrderSingle.generated.go | 1535 ++ quickfix/gen/fix42/news/News.generated.go | 840 + .../OrderCancelReject.generated.go | 348 + .../OrderCancelReplaceRequest.generated.go | 1517 ++ .../OrderCancelRequest.generated.go | 730 + .../OrderStatusRequest.generated.go | 536 + quickfix/gen/fix42/quote/Quote.generated.go | 784 + .../QuoteAcknowledgement.generated.go | 1131 + .../quotecancel/QuoteCancel.generated.go | 604 + .../quoterequest/QuoteRequest.generated.go | 749 + .../QuoteStatusRequest.generated.go | 477 + quickfix/gen/fix42/reject/Reject.generated.go | 190 + .../resendrequest/ResendRequest.generated.go | 95 + .../SecurityDefinition.generated.go | 1082 + .../SecurityDefinitionRequest.generated.go | 1043 + .../SecurityStatus.generated.go | 745 + .../SecurityStatusRequest.generated.go | 498 + .../sequencereset/SequenceReset.generated.go | 94 + .../SettlementInstructions.generated.go | 749 + .../testrequest/TestRequest.generated.go | 75 + .../TradingSessionStatus.generated.go | 347 + .../TradingSessionStatusRequest.generated.go | 153 + quickfix/gen/fix42/trailer.generated.go | 70 + .../advertisement/Advertisement.generated.go | 1065 + .../fix43/allocation/Allocation.generated.go | 2547 ++ .../allocationack/AllocationAck.generated.go | 361 + .../fix43/bidrequest/BidRequest.generated.go | 1057 + .../bidresponse/BidResponse.generated.go | 505 + .../BusinessMessageReject.generated.go | 191 + ...rossOrderCancelReplaceRequest.generated.go | 2955 ++ .../CrossOrderCancelRequest.generated.go | 1375 + .../DerivativeSecurityList.generated.go | 2573 ++ ...DerivativeSecurityListRequest.generated.go | 928 + .../dontknowtrade/DontKnowTrade.generated.go | 1025 + quickfix/gen/fix43/email/Email.generated.go | 1230 + .../ExecutionReport.generated.go | 4629 ++++ quickfix/gen/fix43/header.generated.go | 645 + .../fix43/heartbeat/Heartbeat.generated.go | 74 + quickfix/gen/fix43/ioi/IOI.generated.go | 1337 + .../ListCancelRequest.generated.go | 173 + .../listexecute/ListExecute.generated.go | 192 + .../fix43/liststatus/ListStatus.generated.go | 545 + .../ListStatusRequest.generated.go | 132 + .../ListStrikePrice.generated.go | 1057 + quickfix/gen/fix43/logon/Logon.generated.go | 318 + quickfix/gen/fix43/logout/Logout.generated.go | 112 + .../MarketDataIncrementalRefresh.generated.go | 1698 ++ .../MarketDataRequest.generated.go | 1150 + .../MarketDataRequestReject.generated.go | 152 + ...MarketDataSnapshotFullRefresh.generated.go | 1579 ++ .../fix43/massquote/MassQuote.generated.go | 2441 ++ .../MassQuoteAcknowledgement.generated.go | 2460 ++ ...ilegOrderCancelReplaceRequest.generated.go | 3470 +++ .../newordercross/NewOrderCross.generated.go | 2876 ++ .../neworderlist/NewOrderList.generated.go | 3218 +++ .../NewOrderMultileg.generated.go | 3412 +++ .../NewOrderSingle.generated.go | 2790 ++ quickfix/gen/fix43/news/News.generated.go | 1190 + .../OrderCancelReject.generated.go | 424 + .../OrderCancelReplaceRequest.generated.go | 2702 ++ .../OrderCancelRequest.generated.go | 1270 + .../OrderMassCancelReport.generated.go | 1851 ++ .../OrderMassCancelRequest.generated.go | 1647 ++ .../OrderMassStatusRequest.generated.go | 1697 ++ .../OrderStatusRequest.generated.go | 1000 + quickfix/gen/fix43/quote/Quote.generated.go | 1723 ++ .../quotecancel/QuoteCancel.generated.go | 1120 + .../quoterequest/QuoteRequest.generated.go | 1565 ++ .../QuoteRequestReject.generated.go | 1585 ++ .../QuoteStatusReport.generated.go | 1666 ++ .../QuoteStatusRequest.generated.go | 1017 + .../RegistrationInstructions.generated.go | 850 + ...istrationInstructionsResponse.generated.go | 341 + quickfix/gen/fix43/reject/Reject.generated.go | 190 + .../resendrequest/ResendRequest.generated.go | 95 + .../fix43/rfqrequest/RFQRequest.generated.go | 976 + .../SecurityDefinition.generated.go | 1806 ++ .../SecurityDefinitionRequest.generated.go | 1767 ++ .../securitylist/SecurityList.generated.go | 1916 ++ .../SecurityListRequest.generated.go | 928 + .../SecurityStatus.generated.go | 1156 + .../SecurityStatusRequest.generated.go | 852 + .../SecurityTypeRequest.generated.go | 171 + .../securitytypes/SecurityTypes.generated.go | 358 + .../sequencereset/SequenceReset.generated.go | 94 + .../SettlementInstructions.generated.go | 1049 + .../testrequest/TestRequest.generated.go | 75 + .../TradeCaptureReport.generated.go | 2528 ++ .../TradeCaptureReportRequest.generated.go | 1224 + .../TradingSessionStatus.generated.go | 385 + .../TradingSessionStatusRequest.generated.go | 172 + quickfix/gen/fix43/trailer.generated.go | 70 + .../advertisement/Advertisement.generated.go | 3433 +++ .../AllocationInstruction.generated.go | 6892 +++++ .../AllocationInstructionAck.generated.go | 737 + .../AllocationReport.generated.go | 6969 +++++ .../AllocationReportAck.generated.go | 757 + .../AssignmentReport.generated.go | 4131 +++ .../fix44/bidrequest/BidRequest.generated.go | 1077 + .../bidresponse/BidResponse.generated.go | 505 + .../BusinessMessageReject.generated.go | 191 + .../CollateralAssignment.generated.go | 5167 ++++ .../CollateralInquiry.generated.go | 5026 ++++ .../CollateralInquiryAck.generated.go | 4159 +++ .../CollateralReport.generated.go | 5107 ++++ .../CollateralRequest.generated.go | 4744 ++++ .../CollateralResponse.generated.go | 4727 ++++ .../confirmation/Confirmation.generated.go | 6117 +++++ .../ConfirmationAck.generated.go | 233 + .../ConfirmationRequest.generated.go | 700 + ...rossOrderCancelReplaceRequest.generated.go | 5905 ++++ .../CrossOrderCancelRequest.generated.go | 3814 +++ .../DerivativeSecurityList.generated.go | 3469 +++ ...DerivativeSecurityListRequest.generated.go | 1264 + .../dontknowtrade/DontKnowTrade.generated.go | 3393 +++ quickfix/gen/fix44/email/Email.generated.go | 3588 +++ .../ExecutionReport.generated.go | 7451 ++++++ quickfix/gen/fix44/header.generated.go | 626 + .../fix44/heartbeat/Heartbeat.generated.go | 74 + quickfix/gen/fix44/ioi/IOI.generated.go | 4322 +++ .../ListCancelRequest.generated.go | 192 + .../listexecute/ListExecute.generated.go | 192 + .../fix44/liststatus/ListStatus.generated.go | 564 + .../ListStatusRequest.generated.go | 132 + .../ListStrikePrice.generated.go | 2475 ++ quickfix/gen/fix44/logon/Logon.generated.go | 337 + quickfix/gen/fix44/logout/Logout.generated.go | 112 + .../MarketDataIncrementalRefresh.generated.go | 4056 +++ .../MarketDataRequest.generated.go | 3551 +++ .../MarketDataRequestReject.generated.go | 221 + ...MarketDataSnapshotFullRefresh.generated.go | 3929 +++ .../fix44/massquote/MassQuote.generated.go | 4130 +++ .../MassQuoteAcknowledgement.generated.go | 4187 +++ .../MultilegOrderCancelReplace.generated.go | 6182 +++++ ...unterpartySystemStatusRequest.generated.go | 225 + ...nterpartySystemStatusResponse.generated.go | 303 + .../newordercross/NewOrderCross.generated.go | 5826 ++++ .../neworderlist/NewOrderList.generated.go | 5294 ++++ .../NewOrderMultileg.generated.go | 6124 +++++ .../NewOrderSingle.generated.go | 4929 ++++ quickfix/gen/fix44/news/News.generated.go | 3548 +++ .../OrderCancelReject.generated.go | 462 + .../OrderCancelReplaceRequest.generated.go | 4841 ++++ .../OrderCancelRequest.generated.go | 2920 ++ .../OrderMassCancelReport.generated.go | 2449 ++ .../OrderMassCancelRequest.generated.go | 2245 ++ .../OrderMassStatusRequest.generated.go | 2384 ++ .../OrderStatusRequest.generated.go | 2669 ++ .../PositionMaintenanceReport.generated.go | 4201 +++ .../PositionMaintenanceRequest.generated.go | 4110 +++ .../PositionReport.generated.go | 4187 +++ quickfix/gen/fix44/quote/Quote.generated.go | 5457 ++++ .../quotecancel/QuoteCancel.generated.go | 3749 +++ .../quoterequest/QuoteRequest.generated.go | 5203 ++++ .../QuoteRequestReject.generated.go | 5165 ++++ .../quoteresponse/QuoteResponse.generated.go | 5496 ++++ .../QuoteStatusReport.generated.go | 5335 ++++ .../QuoteStatusRequest.generated.go | 3626 +++ .../RegistrationInstructions.generated.go | 1029 + ...istrationInstructionsResponse.generated.go | 430 + quickfix/gen/fix44/reject/Reject.generated.go | 190 + .../RequestForPositions.generated.go | 3723 +++ .../RequestForPositionsAck.generated.go | 3593 +++ .../resendrequest/ResendRequest.generated.go | 95 + .../fix44/rfqrequest/RFQRequest.generated.go | 3336 +++ .../SecurityDefinition.generated.go | 3462 +++ .../SecurityDefinitionRequest.generated.go | 3423 +++ .../securitylist/SecurityList.generated.go | 4385 +++ .../SecurityListRequest.generated.go | 3575 +++ .../SecurityStatus.generated.go | 3632 +++ .../SecurityStatusRequest.generated.go | 3328 +++ .../SecurityTypeRequest.generated.go | 228 + .../securitytypes/SecurityTypes.generated.go | 397 + .../sequencereset/SequenceReset.generated.go | 94 + .../SettlementInstructionRequest.generated.go | 525 + .../SettlementInstructions.generated.go | 1231 + .../testrequest/TestRequest.generated.go | 75 + .../TradeCaptureReport.generated.go | 7327 +++++ .../TradeCaptureReportAck.generated.go | 3554 +++ .../TradeCaptureReportRequest.generated.go | 4245 +++ .../TradeCaptureReportRequestAck.generated.go | 3336 +++ .../TradingSessionStatus.generated.go | 385 + .../TradingSessionStatusRequest.generated.go | 172 + quickfix/gen/fix44/trailer.generated.go | 70 + .../userrequest/UserRequest.generated.go | 192 + .../userresponse/UserResponse.generated.go | 134 + .../AdjustedPositionReport.generated.go | 2127 ++ .../advertisement/Advertisement.generated.go | 4301 +++ .../AllocationInstruction.generated.go | 8178 ++++++ .../AllocationInstructionAck.generated.go | 1036 + .../AllocationInstructionAlert.generated.go | 8178 ++++++ .../AllocationReport.generated.go | 8275 ++++++ .../AllocationReportAck.generated.go | 1131 + .../AssignmentReport.generated.go | 5049 ++++ .../fix50/bidrequest/BidRequest.generated.go | 1077 + .../bidresponse/BidResponse.generated.go | 505 + .../BusinessMessageReject.generated.go | 191 + .../CollateralAssignment.generated.go | 6095 +++++ .../CollateralInquiry.generated.go | 5954 +++++ .../CollateralInquiryAck.generated.go | 5027 ++++ .../CollateralReport.generated.go | 6092 +++++ .../CollateralRequest.generated.go | 5672 ++++ .../CollateralResponse.generated.go | 5710 ++++ .../confirmation/Confirmation.generated.go | 7045 +++++ .../ConfirmationAck.generated.go | 233 + .../ConfirmationRequest.generated.go | 700 + .../ContraryIntentionReport.generated.go | 3417 +++ ...rossOrderCancelReplaceRequest.generated.go | 7727 ++++++ .../CrossOrderCancelRequest.generated.go | 4900 ++++ .../DerivativeSecurityList.generated.go | 4337 +++ ...DerivativeSecurityListRequest.generated.go | 1672 ++ .../dontknowtrade/DontKnowTrade.generated.go | 4261 +++ quickfix/gen/fix50/email/Email.generated.go | 4468 ++++ .../ExecutionAcknowledgement.generated.go | 4375 +++ .../ExecutionReport.generated.go | 9551 +++++++ quickfix/gen/fix50/ioi/IOI.generated.go | 5389 ++++ .../ListCancelRequest.generated.go | 392 + .../listexecute/ListExecute.generated.go | 192 + .../fix50/liststatus/ListStatus.generated.go | 564 + .../ListStatusRequest.generated.go | 132 + .../ListStrikePrice.generated.go | 3315 +++ .../MarketDataIncrementalRefresh.generated.go | 5582 ++++ .../MarketDataRequest.generated.go | 4547 ++++ .../MarketDataRequestReject.generated.go | 221 + ...MarketDataSnapshotFullRefresh.generated.go | 5501 ++++ .../fix50/massquote/MassQuote.generated.go | 5010 ++++ .../MassQuoteAcknowledgement.generated.go | 5067 ++++ .../MultilegOrderCancelReplace.generated.go | 7845 ++++++ ...unterpartySystemStatusRequest.generated.go | 225 + ...nterpartySystemStatusResponse.generated.go | 303 + .../newordercross/NewOrderCross.generated.go | 7669 ++++++ .../neworderlist/NewOrderList.generated.go | 7143 +++++ .../NewOrderMultileg.generated.go | 7825 ++++++ .../NewOrderSingle.generated.go | 6795 +++++ quickfix/gen/fix50/news/News.generated.go | 4428 +++ .../OrderCancelReject.generated.go | 462 + .../OrderCancelReplaceRequest.generated.go | 6669 +++++ .../OrderCancelRequest.generated.go | 3748 +++ .../OrderMassCancelReport.generated.go | 3464 +++ .../OrderMassCancelRequest.generated.go | 3260 +++ .../OrderMassStatusRequest.generated.go | 3200 +++ .../OrderStatusRequest.generated.go | 3497 +++ .../PositionMaintenanceReport.generated.go | 5181 ++++ .../PositionMaintenanceRequest.generated.go | 5122 ++++ .../PositionReport.generated.go | 5315 ++++ quickfix/gen/fix50/quote/Quote.generated.go | 6462 +++++ .../quotecancel/QuoteCancel.generated.go | 4628 ++++ .../quoterequest/QuoteRequest.generated.go | 6163 +++++ .../QuoteRequestReject.generated.go | 6125 +++++ .../quoteresponse/QuoteResponse.generated.go | 6463 +++++ .../QuoteStatusReport.generated.go | 6242 +++++ .../QuoteStatusRequest.generated.go | 4494 ++++ .../RegistrationInstructions.generated.go | 1029 + ...istrationInstructionsResponse.generated.go | 430 + .../RequestForPositions.generated.go | 4608 ++++ .../RequestForPositionsAck.generated.go | 4592 ++++ .../fix50/rfqrequest/RFQRequest.generated.go | 4216 +++ .../SecurityDefinition.generated.go | 4435 +++ .../SecurityDefinitionRequest.generated.go | 4361 +++ ...ecurityDefinitionUpdateReport.generated.go | 4169 +++ .../securitylist/SecurityList.generated.go | 5300 ++++ .../SecurityListRequest.generated.go | 4443 ++++ .../SecurityListUpdateReport.generated.go | 5288 ++++ .../SecurityStatus.generated.go | 4519 ++++ .../SecurityStatusRequest.generated.go | 4196 +++ .../SecurityTypeRequest.generated.go | 228 + .../securitytypes/SecurityTypes.generated.go | 397 + .../SettlementInstructionRequest.generated.go | 544 + .../SettlementInstructions.generated.go | 1251 + .../TradeCaptureReport.generated.go | 9394 +++++++ .../TradeCaptureReportAck.generated.go | 8759 ++++++ .../TradeCaptureReportRequest.generated.go | 5247 ++++ .../TradeCaptureReportRequestAck.generated.go | 4299 +++ .../TradingSessionList.generated.go | 468 + .../TradingSessionListRequest.generated.go | 191 + .../TradingSessionStatus.generated.go | 1771 ++ .../TradingSessionStatusRequest.generated.go | 191 + .../userrequest/UserRequest.generated.go | 192 + .../userresponse/UserResponse.generated.go | 134 + .../AdjustedPositionReport.generated.go | 2652 ++ .../advertisement/Advertisement.generated.go | 4981 ++++ .../AllocationInstruction.generated.go | 8858 ++++++ .../AllocationInstructionAck.generated.go | 1036 + .../AllocationInstructionAlert.generated.go | 8858 ++++++ .../AllocationReport.generated.go | 8955 +++++++ .../AllocationReportAck.generated.go | 1131 + .../ApplicationMessageReport.generated.go | 262 + .../ApplicationMessageRequest.generated.go | 262 + .../ApplicationMessageRequestAck.generated.go | 358 + .../AssignmentReport.generated.go | 5807 ++++ .../bidrequest/BidRequest.generated.go | 1077 + .../bidresponse/BidResponse.generated.go | 505 + .../BusinessMessageReject.generated.go | 248 + .../CollateralAssignment.generated.go | 6775 +++++ .../CollateralInquiry.generated.go | 6634 +++++ .../CollateralInquiryAck.generated.go | 5709 ++++ .../CollateralReport.generated.go | 6772 +++++ .../CollateralRequest.generated.go | 6352 +++++ .../CollateralResponse.generated.go | 6390 +++++ .../confirmation/Confirmation.generated.go | 7725 ++++++ .../ConfirmationAck.generated.go | 233 + .../ConfirmationRequest.generated.go | 700 + .../ContraryIntentionReport.generated.go | 4013 +++ ...rossOrderCancelReplaceRequest.generated.go | 8427 ++++++ .../CrossOrderCancelRequest.generated.go | 5580 ++++ .../DerivativeSecurityList.generated.go | 8255 ++++++ ...DerivativeSecurityListRequest.generated.go | 3346 +++ ...ativeSecurityListUpdateReport.generated.go | 8293 ++++++ .../dontknowtrade/DontKnowTrade.generated.go | 4943 ++++ .../gen/fix50sp1/email/Email.generated.go | 5168 ++++ .../ExecutionAcknowledgement.generated.go | 5057 ++++ .../ExecutionReport.generated.go | 11586 ++++++++ quickfix/gen/fix50sp1/ioi/IOI.generated.go | 6145 +++++ .../ListCancelRequest.generated.go | 392 + .../listexecute/ListExecute.generated.go | 192 + .../liststatus/ListStatus.generated.go | 622 + .../ListStatusRequest.generated.go | 132 + .../ListStrikePrice.generated.go | 3858 +++ .../MarketDataIncrementalRefresh.generated.go | 7018 +++++ .../MarketDataRequest.generated.go | 5448 ++++ .../MarketDataRequestReject.generated.go | 420 + ...MarketDataSnapshotFullRefresh.generated.go | 6783 +++++ .../MarketDefinition.generated.go | 1076 + .../MarketDefinitionRequest.generated.go | 153 + .../MarketDefinitionUpdateReport.generated.go | 1095 + .../fix50sp1/massquote/MassQuote.generated.go | 5710 ++++ .../MassQuoteAcknowledgement.generated.go | 5866 ++++ .../MultilegOrderCancelReplace.generated.go | 8660 ++++++ ...unterpartySystemStatusRequest.generated.go | 225 + ...nterpartySystemStatusResponse.generated.go | 303 + .../newordercross/NewOrderCross.generated.go | 8369 ++++++ .../neworderlist/NewOrderList.generated.go | 7702 ++++++ .../NewOrderMultileg.generated.go | 8642 ++++++ .../NewOrderSingle.generated.go | 7315 +++++ quickfix/gen/fix50sp1/news/News.generated.go | 5204 ++++ .../OrderCancelReject.generated.go | 461 + .../OrderCancelReplaceRequest.generated.go | 7188 +++++ .../OrderCancelRequest.generated.go | 4267 +++ .../OrderMassActionReport.generated.go | 4106 +++ .../OrderMassActionRequest.generated.go | 3832 +++ .../OrderMassCancelReport.generated.go | 4125 +++ .../OrderMassCancelRequest.generated.go | 3812 +++ .../OrderMassStatusRequest.generated.go | 3716 +++ .../OrderStatusRequest.generated.go | 4018 +++ .../PositionMaintenanceReport.generated.go | 5861 ++++ .../PositionMaintenanceRequest.generated.go | 5802 ++++ .../PositionReport.generated.go | 6073 +++++ .../gen/fix50sp1/quote/Quote.generated.go | 7199 +++++ .../quotecancel/QuoteCancel.generated.go | 5349 ++++ .../quoterequest/QuoteRequest.generated.go | 7099 +++++ .../QuoteRequestReject.generated.go | 7041 +++++ .../quoteresponse/QuoteResponse.generated.go | 7219 +++++ .../QuoteStatusReport.generated.go | 6997 +++++ .../QuoteStatusRequest.generated.go | 5176 ++++ .../RegistrationInstructions.generated.go | 1029 + ...istrationInstructionsResponse.generated.go | 430 + .../RequestForPositions.generated.go | 5288 ++++ .../RequestForPositionsAck.generated.go | 5274 ++++ .../rfqrequest/RFQRequest.generated.go | 5136 ++++ .../SecurityDefinition.generated.go | 6901 +++++ .../SecurityDefinitionRequest.generated.go | 5366 ++++ ...ecurityDefinitionUpdateReport.generated.go | 6920 +++++ .../securitylist/SecurityList.generated.go | 7426 ++++++ .../SecurityListRequest.generated.go | 5163 ++++ .../SecurityListUpdateReport.generated.go | 7484 ++++++ .../SecurityStatus.generated.go | 5370 ++++ .../SecurityStatusRequest.generated.go | 4916 ++++ .../SecurityTypeRequest.generated.go | 266 + .../securitytypes/SecurityTypes.generated.go | 511 + .../SettlementInstructionRequest.generated.go | 544 + .../SettlementInstructions.generated.go | 1251 + .../SettlementObligationReport.generated.go | 2929 ++ .../TradeCaptureReport.generated.go | 11239 ++++++++ .../TradeCaptureReportAck.generated.go | 10434 ++++++++ .../TradeCaptureReportRequest.generated.go | 5927 +++++ .../TradeCaptureReportRequestAck.generated.go | 4981 ++++ .../TradingSessionList.generated.go | 1014 + .../TradingSessionListRequest.generated.go | 229 + ...radingSessionListUpdateReport.generated.go | 1033 + .../TradingSessionStatus.generated.go | 2304 ++ .../TradingSessionStatusRequest.generated.go | 229 + .../UserNotification.generated.go | 152 + .../userrequest/UserRequest.generated.go | 287 + .../userresponse/UserResponse.generated.go | 134 + .../BusinessMessageReject.generated.go | 191 + .../gen/fix50sp2/email/Email.generated.go | 3728 +++ .../executionack/ExecutionAck.generated.go | 329 + .../ExecutionReport.generated.go | 10722 ++++++++ .../fix50sp2/heartbeat/Heartbeat.generated.go | 74 + .../gen/fix50sp2/logon/Logon.generated.go | 357 + .../gen/fix50sp2/logout/Logout.generated.go | 112 + .../NewOrderSingle.generated.go | 5299 ++++ .../gen/fix50sp2/quote/Quote.generated.go | 6375 +++++ .../fix50sp2/quoteack/QuoteAck.generated.go | 341 + .../quotecancel/QuoteCancel.generated.go | 507 + .../quoterequest/QuoteRequest.generated.go | 9493 +++++++ .../QuoteRequestReject.generated.go | 5418 ++++ .../quoteresponse/QuoteResponse.generated.go | 6656 +++++ .../QuoteStatusReport.generated.go | 6022 +++++ .../gen/fix50sp2/reject/Reject.generated.go | 190 + .../resendrequest/ResendRequest.generated.go | 95 + .../sequencereset/SequenceReset.generated.go | 94 + .../testrequest/TestRequest.generated.go | 75 + quickfix/gen/fixt11/header.generated.go | 664 + .../fixt11/heartbeat/Heartbeat.generated.go | 74 + quickfix/gen/fixt11/logon/Logon.generated.go | 397 + .../gen/fixt11/logout/Logout.generated.go | 112 + .../gen/fixt11/reject/Reject.generated.go | 190 + .../resendrequest/ResendRequest.generated.go | 95 + .../sequencereset/SequenceReset.generated.go | 94 + .../testrequest/TestRequest.generated.go | 75 + quickfix/gen/fixt11/trailer.generated.go | 70 + quickfix/gen/tag/tag_numbers.generated.go | 1692 ++ quickfix/go.mod_ | 33 + quickfix/go.sum_ | 85 + quickfix/in_session.go | 418 + quickfix/in_session_test.go | 430 + quickfix/initiator.go | 244 + quickfix/internal/event.go | 15 + quickfix/internal/event_timer.go | 70 + quickfix/internal/event_timer_test.go | 27 + quickfix/internal/session_settings.go | 34 + quickfix/internal/testsuite/store_suite.go | 234 + quickfix/internal/time_range.go | 222 + quickfix/internal/time_range_test.go | 1046 + quickfix/latent_state.go | 38 + quickfix/latent_state_test.go | 51 + quickfix/log.go | 40 + quickfix/log/composite/composite_log.go | 81 + quickfix/log/composite/composite_log_test.go | 109 + quickfix/log/file/file_log.go | 118 + quickfix/log/file/file_log_test.go | 147 + quickfix/log/file/file_util.go | 58 + quickfix/log/file/file_util_test.go | 82 + quickfix/log/mongo/mongo_log.go | 222 + quickfix/log/mongo/mongo_log_test.go | 127 + quickfix/log/screen/screen_log.go | 63 + quickfix/log/sql/sql_log.go | 226 + quickfix/log/sql/sql_log_test.go | 139 + quickfix/logon_state.go | 90 + quickfix/logon_state_test.go | 432 + quickfix/logout_state.go | 45 + quickfix/logout_state_test.go | 128 + quickfix/memory_store.go | 131 + quickfix/message.go | 620 + quickfix/message_router.go | 107 + quickfix/message_router_test.go | 207 + quickfix/message_test.go | 547 + quickfix/msg_type.go | 42 + quickfix/not_session_time.go | 36 + quickfix/not_session_time_test.go | 51 + quickfix/null_log.go | 37 + quickfix/parser.go | 165 + quickfix/parser_test.go | 188 + quickfix/pending_timeout.go | 32 + quickfix/pending_timeout_test.go | 103 + quickfix/quickfix_test.go | 306 + quickfix/registry.go | 168 + quickfix/repeating_group.go | 229 + quickfix/repeating_group_test.go | 293 + quickfix/resend_state.go | 95 + quickfix/resend_state_test.go | 221 + quickfix/session.go | 950 + quickfix/session_factory.go | 592 + quickfix/session_factory_test.go | 746 + quickfix/session_id.go | 56 + quickfix/session_id_test.go | 43 + quickfix/session_rejects.go | 47 + quickfix/session_settings.go | 169 + quickfix/session_settings_test.go | 234 + quickfix/session_state.go | 298 + quickfix/session_test.go | 1328 + quickfix/settings.go | 191 + quickfix/settings_test.go | 389 + quickfix/spec/FIX40.xml | 863 + quickfix/spec/FIX41.xml | 1289 + quickfix/spec/FIX42.xml | 2747 ++ quickfix/spec/FIX43.xml | 4285 +++ quickfix/spec/FIX44.xml | 7022 +++++ quickfix/spec/FIX50.xml | 8272 ++++++ quickfix/spec/FIX50SP1.xml | 9629 +++++++ .../spec/FIX50SP2.xml | 0 quickfix/spec/FIXT11.xml | 313 + quickfix/store.go | 50 + quickfix/store/file/file_store.go | 439 + quickfix/store/file/file_store_test.go | 79 + quickfix/store/file/util.go | 84 + quickfix/store/memory/ignore.go | 3 + quickfix/store/memory/memory_store_test.go | 40 + quickfix/store/mongo/mongo_store.go | 393 + quickfix/store/mongo/mongo_store_test.go | 75 + quickfix/store/sql/sql_store.go | 433 + quickfix/store/sql/sql_store_test.go | 169 + quickfix/tag.go | 131 + quickfix/tag_value.go | 102 + quickfix/tag_value_test.go | 90 + quickfix/tls.go | 185 + quickfix/tls_test.go | 333 + quickfix/validation.go | 467 + quickfix/validation_test.go | 1269 + spec/FIX50SP2.xml | 4751 ++++ update_library.sh | 2 +- 1222 files changed, 1408232 insertions(+), 1 deletion(-) create mode 100644 last_update_info.txt create mode 100644 quickfix/CHANGELOG.md create mode 100644 quickfix/CONTRIBUTING.md create mode 100644 quickfix/LICENSE create mode 100644 quickfix/Makefile create mode 100644 quickfix/README.md create mode 100644 quickfix/_sql/embed.go create mode 100644 quickfix/_sql/mssql/create.bat create mode 100644 quickfix/_sql/mssql/quickfix_database.sql create mode 100644 quickfix/_sql/mysql/create.bat create mode 100644 quickfix/_sql/mysql/create.sh create mode 100644 quickfix/_sql/mysql/event_log_table.sql create mode 100644 quickfix/_sql/mysql/messages_log_table.sql create mode 100644 quickfix/_sql/mysql/messages_table.sql create mode 100644 quickfix/_sql/mysql/mysql.sql create mode 100644 quickfix/_sql/mysql/quickfix_database.sql create mode 100644 quickfix/_sql/mysql/sessions_table.sql create mode 100644 quickfix/_sql/oracle/messages_table.sql create mode 100644 quickfix/_sql/oracle/sessions_table.sql create mode 100644 quickfix/_sql/postgresql/create.bat create mode 100644 quickfix/_sql/postgresql/create.sh create mode 100644 quickfix/_sql/postgresql/event_log_table.sql create mode 100644 quickfix/_sql/postgresql/messages_log_table.sql create mode 100644 quickfix/_sql/postgresql/messages_table.sql create mode 100644 quickfix/_sql/postgresql/postgresql.sql create mode 100644 quickfix/_sql/postgresql/sessions_table.sql create mode 100644 quickfix/_sql/sqlite3/event_log_table.sql create mode 100644 quickfix/_sql/sqlite3/messages_log_table.sql create mode 100644 quickfix/_sql/sqlite3/messages_table.sql create mode 100644 quickfix/_sql/sqlite3/sessions_table.sql create mode 100644 quickfix/_test/Comparator.rb create mode 100644 quickfix/_test/ComparatorTestCase.rb create mode 100644 quickfix/_test/FixParser.rb create mode 100644 quickfix/_test/FixParserTestCase.rb create mode 100644 quickfix/_test/Reflector.rb create mode 100644 quickfix/_test/ReflectorClient.rb create mode 100644 quickfix/_test/ReflectorClientTestCase.rb create mode 100644 quickfix/_test/ReflectorServer.rb create mode 100644 quickfix/_test/ReflectorServerTestCase.rb create mode 100644 quickfix/_test/ReflectorTestCase.rb create mode 100644 quickfix/_test/Runner.rb create mode 100644 quickfix/_test/RunnerTestCase.rb create mode 100644 quickfix/_test/SocketServer.rb create mode 100644 quickfix/_test/SocketServerTestCase.rb create mode 100644 quickfix/_test/atfixturerun.rb create mode 100644 quickfix/_test/cfg/lastseqnumprocessed/fix42.cfg create mode 100644 quickfix/_test/cfg/lastseqnumprocessed/fix43.cfg create mode 100644 quickfix/_test/cfg/lastseqnumprocessed/fix44.cfg create mode 100644 quickfix/_test/cfg/lastseqnumprocessed/fix50.cfg create mode 100644 quickfix/_test/cfg/lastseqnumprocessed/fix50sp1.cfg create mode 100644 quickfix/_test/cfg/lastseqnumprocessed/fix50sp2.cfg create mode 100644 quickfix/_test/cfg/nextexpectedseqnum/fix44.cfg create mode 100644 quickfix/_test/cfg/nextexpectedseqnum/fix50.cfg create mode 100644 quickfix/_test/cfg/nextexpectedseqnum/fix50sp1.cfg create mode 100644 quickfix/_test/cfg/nextexpectedseqnum/fix50sp2.cfg create mode 100644 quickfix/_test/cfg/resendreqchunksize/fix40.cfg create mode 100644 quickfix/_test/cfg/resendreqchunksize/fix41.cfg create mode 100644 quickfix/_test/cfg/resendreqchunksize/fix42.cfg create mode 100644 quickfix/_test/cfg/resendreqchunksize/fix43.cfg create mode 100644 quickfix/_test/cfg/resendreqchunksize/fix44.cfg create mode 100644 quickfix/_test/cfg/resendreqchunksize/fix50.cfg create mode 100644 quickfix/_test/cfg/resendreqchunksize/fix50sp1.cfg create mode 100644 quickfix/_test/cfg/resendreqchunksize/fix50sp2.cfg create mode 100644 quickfix/_test/cfg/server/fix40.cfg create mode 100644 quickfix/_test/cfg/server/fix41.cfg create mode 100644 quickfix/_test/cfg/server/fix42.cfg create mode 100644 quickfix/_test/cfg/server/fix43.cfg create mode 100644 quickfix/_test/cfg/server/fix44.cfg create mode 100644 quickfix/_test/cfg/server/fix50.cfg create mode 100644 quickfix/_test/cfg/server/fix50sp1.cfg create mode 100644 quickfix/_test/cfg/server/fix50sp2.cfg create mode 100644 quickfix/_test/definitions/fields.fmt create mode 100644 quickfix/_test/definitions/lastseqnumprocessed/fix42/LastProcessedMsgSeqNum.def create mode 100644 quickfix/_test/definitions/lastseqnumprocessed/fix43/LastProcessedMsgSeqNum.def create mode 100644 quickfix/_test/definitions/lastseqnumprocessed/fix44/LastProcessedMsgSeqNum.def create mode 100644 quickfix/_test/definitions/lastseqnumprocessed/fix50/LastProcessedMsgSeqNum.def create mode 100644 quickfix/_test/definitions/lastseqnumprocessed/fix50sp1/LastProcessedMsgSeqNum.def create mode 100644 quickfix/_test/definitions/lastseqnumprocessed/fix50sp2/LastProcessedMsgSeqNum.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix44/2a_NextExpectedMsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix44/2b_NextExpectedMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix44/2c_NextExpectedMsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix44/ResetSeqNumFlagAndNextExpectedMsgSeqNum.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50/2a_NextExpectedMsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50/2b_NextExpectedMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50/2c_NextExpectedMsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50/ResetSeqNumFlagAndNextExpectedMsgSeqNum.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50sp1/2a_NextExpectedMsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50sp1/2b_NextExpectedMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50sp1/2c_NextExpectedMsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50sp1/ResetSeqNumFlagAndNextExpectedMsgSeqNum.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50sp2/2a_NextExpectedMsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50sp2/2b_NextExpectedMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50sp2/2c_NextExpectedMsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/nextexpectedseqnum/fix50sp2/ResetSeqNumFlagAndNextExpectedMsgSeqNum.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix40/SequenceGapFollowedByMessageResent.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix40/SequenceGapFollowedBySequenceResetWithGapFill.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix41/SequenceGapFollowedByMessageResent.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix41/SequenceGapFollowedBySequenceResetWithGapFill.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix42/SequenceGapFollowedByMessageResent.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix42/SequenceGapFollowedBySequenceResetWithGapFill.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix43/SequenceGapFollowedByMessageResent.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix43/SequenceGapFollowedBySequenceResetWithGapFill.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix44/SequenceGapFollowedByMessageResent.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix44/SequenceGapFollowedBySequenceResetWithGapFill.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix50/SequenceGapFollowedByMessageResent.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix50/SequenceGapFollowedBySequenceResetWithGapFill.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix50sp1/SequenceGapFollowedByMessageResent.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix50sp1/SequenceGapFollowedBySequenceResetWithGapFill.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix50sp2/SequenceGapFollowedByMessageResent.def create mode 100644 quickfix/_test/definitions/resendreqchunksize/fix50sp2/SequenceGapFollowedBySequenceResetWithGapFill.def create mode 100644 quickfix/_test/definitions/server/fix40/10_MsgSeqNumEqual.def create mode 100644 quickfix/_test/definitions/server/fix40/10_MsgSeqNumGreater.def create mode 100644 quickfix/_test/definitions/server/fix40/10_MsgSeqNumLess.def create mode 100644 quickfix/_test/definitions/server/fix40/11a_NewSeqNoGreater.def create mode 100644 quickfix/_test/definitions/server/fix40/11b_NewSeqNoEqual.def create mode 100644 quickfix/_test/definitions/server/fix40/11c_NewSeqNoLess.def create mode 100644 quickfix/_test/definitions/server/fix40/13b_UnsolicitedLogoutMessage.def create mode 100644 quickfix/_test/definitions/server/fix40/14a_BadField.def create mode 100644 quickfix/_test/definitions/server/fix40/14b_RequiredFieldMissing.def create mode 100644 quickfix/_test/definitions/server/fix40/14c_TagNotDefinedForMsgType.def create mode 100644 quickfix/_test/definitions/server/fix40/14d_TagSpecifiedWithoutValue.def create mode 100644 quickfix/_test/definitions/server/fix40/14e_IncorrectEnumValue.def create mode 100644 quickfix/_test/definitions/server/fix40/14f_IncorrectDataFormat.def create mode 100644 quickfix/_test/definitions/server/fix40/14g_HeaderBodyTrailerFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix40/14h_RepeatedTag.def create mode 100644 quickfix/_test/definitions/server/fix40/15_HeaderAndBodyFieldsOrderedDifferently.def create mode 100644 quickfix/_test/definitions/server/fix40/19a_PossResendMessageThatHAsAlreadyBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix40/19b_PossResendMessageThatHasNotBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix40/1a_ValidLogonMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix40/1a_ValidLogonWithCorrectMsgSeqNum.def create mode 100644 quickfix/_test/definitions/server/fix40/1b_DuplicateIdentity.def create mode 100644 quickfix/_test/definitions/server/fix40/1c_InvalidSenderCompID.def create mode 100644 quickfix/_test/definitions/server/fix40/1c_InvalidTargetCompID.def create mode 100644 quickfix/_test/definitions/server/fix40/1d_InvalidLogonBadSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix40/1d_InvalidLogonLengthInvalid.def create mode 100644 quickfix/_test/definitions/server/fix40/1d_InvalidLogonWrongBeginString.def create mode 100644 quickfix/_test/definitions/server/fix40/1e_NotLogonMessage.def create mode 100644 quickfix/_test/definitions/server/fix40/20_SimultaneousResendRequest.def create mode 100644 quickfix/_test/definitions/server/fix40/2a_MsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/server/fix40/2b_MsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix40/2c_MsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/server/fix40/2d_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix40/2e_PossDupAlreadyReceived.def create mode 100644 quickfix/_test/definitions/server/fix40/2e_PossDupNotReceived.def create mode 100644 quickfix/_test/definitions/server/fix40/2f_PossDupOrigSendingTimeTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix40/2g_PossDupNoOrigSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix40/2i_BeginStringValueUnexpected.def create mode 100644 quickfix/_test/definitions/server/fix40/2k_CompIDDoesNotMatchProfile.def create mode 100644 quickfix/_test/definitions/server/fix40/2m_BodyLengthValueNotCorrect.def create mode 100644 quickfix/_test/definitions/server/fix40/2o_SendingTimeValueOutOfRange.def create mode 100644 quickfix/_test/definitions/server/fix40/2q_MsgTypeNotValid.def create mode 100644 quickfix/_test/definitions/server/fix40/2r_UnregisteredMsgType.def create mode 100644 quickfix/_test/definitions/server/fix40/2t_FirstThreeFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix40/3b_InvalidChecksum.def create mode 100644 quickfix/_test/definitions/server/fix40/3c_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix40/4a_NoDataSentDuringHeartBtInt.def create mode 100644 quickfix/_test/definitions/server/fix40/4b_ReceivedTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix40/6_SendTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix40/7_ReceiveRejectMessage.def create mode 100644 quickfix/_test/definitions/server/fix40/8_AdminAndApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix40/8_OnlyAdminMessages.def create mode 100644 quickfix/_test/definitions/server/fix40/8_OnlyApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix40/AlreadyLoggedOn.def create mode 100644 quickfix/_test/definitions/server/fix40/RejectResentMessage.def create mode 100644 quickfix/_test/definitions/server/fix40/ReverseRoute.def create mode 100644 quickfix/_test/definitions/server/fix40/ReverseRouteWithEmptyRoutingTags.def create mode 100644 quickfix/_test/definitions/server/fix41/10_MsgSeqNumEqual.def create mode 100644 quickfix/_test/definitions/server/fix41/10_MsgSeqNumGreater.def create mode 100644 quickfix/_test/definitions/server/fix41/10_MsgSeqNumLess.def create mode 100644 quickfix/_test/definitions/server/fix41/11a_NewSeqNoGreater.def create mode 100644 quickfix/_test/definitions/server/fix41/11b_NewSeqNoEqual.def create mode 100644 quickfix/_test/definitions/server/fix41/11c_NewSeqNoLess.def create mode 100644 quickfix/_test/definitions/server/fix41/13b_UnsolicitedLogoutMessage.def create mode 100644 quickfix/_test/definitions/server/fix41/14a_BadField.def create mode 100644 quickfix/_test/definitions/server/fix41/14b_RequiredFieldMissing.def create mode 100644 quickfix/_test/definitions/server/fix41/14c_TagNotDefinedForMsgType.def create mode 100644 quickfix/_test/definitions/server/fix41/14d_TagSpecifiedWithoutValue.def create mode 100644 quickfix/_test/definitions/server/fix41/14e_IncorrectEnumValue.def create mode 100644 quickfix/_test/definitions/server/fix41/14f_IncorrectDataFormat.def create mode 100644 quickfix/_test/definitions/server/fix41/14g_HeaderBodyTrailerFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix41/14h_RepeatedTag.def create mode 100644 quickfix/_test/definitions/server/fix41/15_HeaderAndBodyFieldsOrderedDifferently.def create mode 100644 quickfix/_test/definitions/server/fix41/19a_PossResendMessageThatHAsAlreadyBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix41/19b_PossResendMessageThatHasNotBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix41/1a_ValidLogonMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix41/1a_ValidLogonWithCorrectMsgSeqNum.def create mode 100644 quickfix/_test/definitions/server/fix41/1b_DuplicateIdentity.def create mode 100644 quickfix/_test/definitions/server/fix41/1c_InvalidSenderCompID.def create mode 100644 quickfix/_test/definitions/server/fix41/1c_InvalidTargetCompID.def create mode 100644 quickfix/_test/definitions/server/fix41/1d_InvalidLogonBadSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix41/1d_InvalidLogonLengthInvalid.def create mode 100644 quickfix/_test/definitions/server/fix41/1d_InvalidLogonWrongBeginString.def create mode 100644 quickfix/_test/definitions/server/fix41/1e_NotLogonMessage.def create mode 100644 quickfix/_test/definitions/server/fix41/20_SimultaneousResendRequest.def create mode 100644 quickfix/_test/definitions/server/fix41/2a_MsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/server/fix41/2b_MsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix41/2c_MsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/server/fix41/2d_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix41/2e_PossDupAlreadyReceived.def create mode 100644 quickfix/_test/definitions/server/fix41/2e_PossDupNotReceived.def create mode 100644 quickfix/_test/definitions/server/fix41/2f_PossDupOrigSendingTimeTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix41/2g_PossDupNoOrigSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix41/2i_BeginStringValueUnexpected.def create mode 100644 quickfix/_test/definitions/server/fix41/2k_CompIDDoesNotMatchProfile.def create mode 100644 quickfix/_test/definitions/server/fix41/2m_BodyLengthValueNotCorrect.def create mode 100644 quickfix/_test/definitions/server/fix41/2o_SendingTimeValueOutOfRange.def create mode 100644 quickfix/_test/definitions/server/fix41/2q_MsgTypeNotValid.def create mode 100644 quickfix/_test/definitions/server/fix41/2r_UnregisteredMsgType.def create mode 100644 quickfix/_test/definitions/server/fix41/2t_FirstThreeFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix41/3b_InvalidChecksum.def create mode 100644 quickfix/_test/definitions/server/fix41/3c_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix41/4a_NoDataSentDuringHeartBtInt.def create mode 100644 quickfix/_test/definitions/server/fix41/4b_ReceivedTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix41/6_SendTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix41/7_ReceiveRejectMessage.def create mode 100644 quickfix/_test/definitions/server/fix41/8_AdminAndApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix41/8_OnlyAdminMessages.def create mode 100644 quickfix/_test/definitions/server/fix41/8_OnlyApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix41/AlreadyLoggedOn.def create mode 100644 quickfix/_test/definitions/server/fix41/RejectResentMessage.def create mode 100644 quickfix/_test/definitions/server/fix41/ReverseRoute.def create mode 100644 quickfix/_test/definitions/server/fix41/ReverseRouteWithEmptyRoutingTags.def create mode 100644 quickfix/_test/definitions/server/fix42/10_MsgSeqNumEqual.def create mode 100644 quickfix/_test/definitions/server/fix42/10_MsgSeqNumGreater.def create mode 100644 quickfix/_test/definitions/server/fix42/10_MsgSeqNumLess.def create mode 100644 quickfix/_test/definitions/server/fix42/11a_NewSeqNoGreater.def create mode 100644 quickfix/_test/definitions/server/fix42/11b_NewSeqNoEqual.def create mode 100644 quickfix/_test/definitions/server/fix42/11c_NewSeqNoLess.def create mode 100644 quickfix/_test/definitions/server/fix42/13b_UnsolicitedLogoutMessage.def create mode 100644 quickfix/_test/definitions/server/fix42/14a_BadField.def create mode 100644 quickfix/_test/definitions/server/fix42/14b_RequiredFieldMissing.def create mode 100644 quickfix/_test/definitions/server/fix42/14c_TagNotDefinedForMsgType.def create mode 100644 quickfix/_test/definitions/server/fix42/14d_TagSpecifiedWithoutValue.def create mode 100644 quickfix/_test/definitions/server/fix42/14e_IncorrectEnumValue.def create mode 100644 quickfix/_test/definitions/server/fix42/14f_IncorrectDataFormat.def create mode 100644 quickfix/_test/definitions/server/fix42/14g_HeaderBodyTrailerFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix42/14h_RepeatedTag.def create mode 100644 quickfix/_test/definitions/server/fix42/14i_RepeatingGroupCountNotEqual.def create mode 100644 quickfix/_test/definitions/server/fix42/15_HeaderAndBodyFieldsOrderedDifferently.def create mode 100644 quickfix/_test/definitions/server/fix42/19a_PossResendMessageThatHAsAlreadyBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix42/19b_PossResendMessageThatHasNotBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix42/1a_ValidLogonMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix42/1a_ValidLogonWithCorrectMsgSeqNum.def create mode 100644 quickfix/_test/definitions/server/fix42/1b_DuplicateIdentity.def create mode 100644 quickfix/_test/definitions/server/fix42/1c_InvalidSenderCompID.def create mode 100644 quickfix/_test/definitions/server/fix42/1c_InvalidTargetCompID.def create mode 100644 quickfix/_test/definitions/server/fix42/1d_InvalidLogonBadSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix42/1d_InvalidLogonLengthInvalid.def create mode 100644 quickfix/_test/definitions/server/fix42/1d_InvalidLogonWrongBeginString.def create mode 100644 quickfix/_test/definitions/server/fix42/1e_NotLogonMessage.def create mode 100644 quickfix/_test/definitions/server/fix42/20_SimultaneousResendRequest.def create mode 100644 quickfix/_test/definitions/server/fix42/21_RepeatingGroupSpecifierWithValueOfZero.def create mode 100644 quickfix/_test/definitions/server/fix42/2a_MsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/server/fix42/2b_MsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix42/2c_MsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/server/fix42/2d_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix42/2e_PossDupAlreadyReceived.def create mode 100644 quickfix/_test/definitions/server/fix42/2e_PossDupNotReceived.def create mode 100644 quickfix/_test/definitions/server/fix42/2f_PossDupOrigSendingTimeTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix42/2g_PossDupNoOrigSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix42/2i_BeginStringValueUnexpected.def create mode 100644 quickfix/_test/definitions/server/fix42/2k_CompIDDoesNotMatchProfile.def create mode 100644 quickfix/_test/definitions/server/fix42/2m_BodyLengthValueNotCorrect.def create mode 100644 quickfix/_test/definitions/server/fix42/2o_SendingTimeValueOutOfRange.def create mode 100644 quickfix/_test/definitions/server/fix42/2q_MsgTypeNotValid.def create mode 100644 quickfix/_test/definitions/server/fix42/2r_UnregisteredMsgType.def create mode 100644 quickfix/_test/definitions/server/fix42/2t_FirstThreeFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix42/3b_InvalidChecksum.def create mode 100644 quickfix/_test/definitions/server/fix42/3c_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix42/4a_NoDataSentDuringHeartBtInt.def create mode 100644 quickfix/_test/definitions/server/fix42/4b_ReceivedTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix42/6_SendTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix42/7_ReceiveRejectMessage.def create mode 100644 quickfix/_test/definitions/server/fix42/8_AdminAndApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix42/8_OnlyAdminMessages.def create mode 100644 quickfix/_test/definitions/server/fix42/8_OnlyApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix42/AlreadyLoggedOn.def create mode 100644 quickfix/_test/definitions/server/fix42/RejectResentMessage.def create mode 100644 quickfix/_test/definitions/server/fix42/ReverseRoute.def create mode 100644 quickfix/_test/definitions/server/fix42/ReverseRouteWithEmptyRoutingTags.def create mode 100644 quickfix/_test/definitions/server/fix43/10_MsgSeqNumEqual.def create mode 100644 quickfix/_test/definitions/server/fix43/10_MsgSeqNumGreater.def create mode 100644 quickfix/_test/definitions/server/fix43/10_MsgSeqNumLess.def create mode 100644 quickfix/_test/definitions/server/fix43/11a_NewSeqNoGreater.def create mode 100644 quickfix/_test/definitions/server/fix43/11b_NewSeqNoEqual.def create mode 100644 quickfix/_test/definitions/server/fix43/11c_NewSeqNoLess.def create mode 100644 quickfix/_test/definitions/server/fix43/13b_UnsolicitedLogoutMessage.def create mode 100644 quickfix/_test/definitions/server/fix43/14a_BadField.def create mode 100644 quickfix/_test/definitions/server/fix43/14b_RequiredFieldMissing.def create mode 100644 quickfix/_test/definitions/server/fix43/14c_TagNotDefinedForMsgType.def create mode 100644 quickfix/_test/definitions/server/fix43/14d_TagSpecifiedWithoutValue.def create mode 100644 quickfix/_test/definitions/server/fix43/14e_IncorrectEnumValue.def create mode 100644 quickfix/_test/definitions/server/fix43/14f_IncorrectDataFormat.def create mode 100644 quickfix/_test/definitions/server/fix43/14g_HeaderBodyTrailerFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix43/14h_RepeatedTag.def create mode 100644 quickfix/_test/definitions/server/fix43/14i_RepeatingGroupCountNotEqual.def create mode 100644 quickfix/_test/definitions/server/fix43/15_HeaderAndBodyFieldsOrderedDifferently.def create mode 100644 quickfix/_test/definitions/server/fix43/19a_PossResendMessageThatHAsAlreadyBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix43/19b_PossResendMessageThatHasNotBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix43/1a_ValidLogonMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix43/1a_ValidLogonWithCorrectMsgSeqNum.def create mode 100644 quickfix/_test/definitions/server/fix43/1b_DuplicateIdentity.def create mode 100644 quickfix/_test/definitions/server/fix43/1c_InvalidSenderCompID.def create mode 100644 quickfix/_test/definitions/server/fix43/1c_InvalidTargetCompID.def create mode 100644 quickfix/_test/definitions/server/fix43/1d_InvalidLogonBadSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix43/1d_InvalidLogonLengthInvalid.def create mode 100644 quickfix/_test/definitions/server/fix43/1d_InvalidLogonWrongBeginString.def create mode 100644 quickfix/_test/definitions/server/fix43/1e_NotLogonMessage.def create mode 100644 quickfix/_test/definitions/server/fix43/20_SimultaneousResendRequest.def create mode 100644 quickfix/_test/definitions/server/fix43/21_RepeatingGroupSpecifierWithValueOfZero.def create mode 100644 quickfix/_test/definitions/server/fix43/2a_MsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/server/fix43/2b_MsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix43/2c_MsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/server/fix43/2d_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix43/2e_PossDupAlreadyReceived.def create mode 100644 quickfix/_test/definitions/server/fix43/2e_PossDupNotReceived.def create mode 100644 quickfix/_test/definitions/server/fix43/2f_PossDupOrigSendingTimeTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix43/2g_PossDupNoOrigSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix43/2i_BeginStringValueUnexpected.def create mode 100644 quickfix/_test/definitions/server/fix43/2k_CompIDDoesNotMatchProfile.def create mode 100644 quickfix/_test/definitions/server/fix43/2m_BodyLengthValueNotCorrect.def create mode 100644 quickfix/_test/definitions/server/fix43/2o_SendingTimeValueOutOfRange.def create mode 100644 quickfix/_test/definitions/server/fix43/2q_MsgTypeNotValid.def create mode 100644 quickfix/_test/definitions/server/fix43/2r_UnregisteredMsgType.def create mode 100644 quickfix/_test/definitions/server/fix43/2t_FirstThreeFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix43/3b_InvalidChecksum.def create mode 100644 quickfix/_test/definitions/server/fix43/3c_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix43/4a_NoDataSentDuringHeartBtInt.def create mode 100644 quickfix/_test/definitions/server/fix43/4b_ReceivedTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix43/6_SendTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix43/7_ReceiveRejectMessage.def create mode 100644 quickfix/_test/definitions/server/fix43/8_AdminAndApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix43/8_OnlyAdminMessages.def create mode 100644 quickfix/_test/definitions/server/fix43/8_OnlyApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix43/AlreadyLoggedOn.def create mode 100644 quickfix/_test/definitions/server/fix43/RejectResentMessage.def create mode 100644 quickfix/_test/definitions/server/fix43/ReverseRoute.def create mode 100644 quickfix/_test/definitions/server/fix43/ReverseRouteWithEmptyRoutingTags.def create mode 100644 quickfix/_test/definitions/server/fix44/10_MsgSeqNumEqual.def create mode 100644 quickfix/_test/definitions/server/fix44/10_MsgSeqNumGreater.def create mode 100644 quickfix/_test/definitions/server/fix44/10_MsgSeqNumLess.def create mode 100644 quickfix/_test/definitions/server/fix44/11a_NewSeqNoGreater.def create mode 100644 quickfix/_test/definitions/server/fix44/11b_NewSeqNoEqual.def create mode 100644 quickfix/_test/definitions/server/fix44/11c_NewSeqNoLess.def create mode 100644 quickfix/_test/definitions/server/fix44/13b_UnsolicitedLogoutMessage.def create mode 100644 quickfix/_test/definitions/server/fix44/14a_BadField.def create mode 100644 quickfix/_test/definitions/server/fix44/14b_RequiredFieldMissing.def create mode 100644 quickfix/_test/definitions/server/fix44/14c_TagNotDefinedForMsgType.def create mode 100644 quickfix/_test/definitions/server/fix44/14d_TagSpecifiedWithoutValue.def create mode 100644 quickfix/_test/definitions/server/fix44/14e_IncorrectEnumValue.def create mode 100644 quickfix/_test/definitions/server/fix44/14f_IncorrectDataFormat.def create mode 100644 quickfix/_test/definitions/server/fix44/14g_HeaderBodyTrailerFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix44/14h_RepeatedTag.def create mode 100644 quickfix/_test/definitions/server/fix44/14i_RepeatingGroupCountNotEqual.def create mode 100644 quickfix/_test/definitions/server/fix44/15_HeaderAndBodyFieldsOrderedDifferently.def create mode 100644 quickfix/_test/definitions/server/fix44/19a_PossResendMessageThatHAsAlreadyBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix44/19b_PossResendMessageThatHasNotBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix44/1a_ValidLogonMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix44/1a_ValidLogonWithCorrectMsgSeqNum.def create mode 100644 quickfix/_test/definitions/server/fix44/1b_DuplicateIdentity.def create mode 100644 quickfix/_test/definitions/server/fix44/1c_InvalidSenderCompID.def create mode 100644 quickfix/_test/definitions/server/fix44/1c_InvalidTargetCompID.def create mode 100644 quickfix/_test/definitions/server/fix44/1d_InvalidLogonBadSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix44/1d_InvalidLogonLengthInvalid.def create mode 100644 quickfix/_test/definitions/server/fix44/1d_InvalidLogonWrongBeginString.def create mode 100644 quickfix/_test/definitions/server/fix44/1e_NotLogonMessage.def create mode 100644 quickfix/_test/definitions/server/fix44/20_SimultaneousResendRequest.def create mode 100644 quickfix/_test/definitions/server/fix44/21_RepeatingGroupSpecifierWithValueOfZero.def create mode 100644 quickfix/_test/definitions/server/fix44/2a_MsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/server/fix44/2b_MsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix44/2c_MsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/server/fix44/2d_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix44/2e_PossDupAlreadyReceived.def create mode 100644 quickfix/_test/definitions/server/fix44/2e_PossDupNotReceived.def create mode 100644 quickfix/_test/definitions/server/fix44/2f_PossDupOrigSendingTimeTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix44/2g_PossDupNoOrigSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix44/2i_BeginStringValueUnexpected.def create mode 100644 quickfix/_test/definitions/server/fix44/2k_CompIDDoesNotMatchProfile.def create mode 100644 quickfix/_test/definitions/server/fix44/2m_BodyLengthValueNotCorrect.def create mode 100644 quickfix/_test/definitions/server/fix44/2o_SendingTimeValueOutOfRange.def create mode 100644 quickfix/_test/definitions/server/fix44/2q_MsgTypeNotValid.def create mode 100644 quickfix/_test/definitions/server/fix44/2r_UnregisteredMsgType.def create mode 100644 quickfix/_test/definitions/server/fix44/2t_FirstThreeFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix44/3b_InvalidChecksum.def create mode 100644 quickfix/_test/definitions/server/fix44/3c_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix44/4a_NoDataSentDuringHeartBtInt.def create mode 100644 quickfix/_test/definitions/server/fix44/4b_ReceivedTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix44/6_SendTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix44/7_ReceiveRejectMessage.def create mode 100644 quickfix/_test/definitions/server/fix44/8_AdminAndApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix44/8_OnlyAdminMessages.def create mode 100644 quickfix/_test/definitions/server/fix44/8_OnlyApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix44/AlreadyLoggedOn.def create mode 100644 quickfix/_test/definitions/server/fix44/RejectResentMessage.def create mode 100644 quickfix/_test/definitions/server/fix44/ReverseRoute.def create mode 100644 quickfix/_test/definitions/server/fix44/ReverseRouteWithEmptyRoutingTags.def create mode 100644 quickfix/_test/definitions/server/fix44/SessionReset.def create mode 100644 quickfix/_test/definitions/server/fix50/10_MsgSeqNumEqual.def create mode 100644 quickfix/_test/definitions/server/fix50/10_MsgSeqNumGreater.def create mode 100644 quickfix/_test/definitions/server/fix50/10_MsgSeqNumLess.def create mode 100644 quickfix/_test/definitions/server/fix50/11a_NewSeqNoGreater.def create mode 100644 quickfix/_test/definitions/server/fix50/11b_NewSeqNoEqual.def create mode 100644 quickfix/_test/definitions/server/fix50/11c_NewSeqNoLess.def create mode 100644 quickfix/_test/definitions/server/fix50/13b_UnsolicitedLogoutMessage.def create mode 100644 quickfix/_test/definitions/server/fix50/14a_BadField.def create mode 100644 quickfix/_test/definitions/server/fix50/14b_RequiredFieldMissing.def create mode 100644 quickfix/_test/definitions/server/fix50/14c_TagNotDefinedForMsgType.def create mode 100644 quickfix/_test/definitions/server/fix50/14d_TagSpecifiedWithoutValue.def create mode 100644 quickfix/_test/definitions/server/fix50/14e_IncorrectEnumValue.def create mode 100644 quickfix/_test/definitions/server/fix50/14f_IncorrectDataFormat.def create mode 100644 quickfix/_test/definitions/server/fix50/14g_HeaderBodyTrailerFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix50/14h_RepeatedTag.def create mode 100644 quickfix/_test/definitions/server/fix50/14i_RepeatingGroupCountNotEqual.def create mode 100644 quickfix/_test/definitions/server/fix50/15_HeaderAndBodyFieldsOrderedDifferently.def create mode 100644 quickfix/_test/definitions/server/fix50/19a_PossResendMessageThatHAsAlreadyBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix50/19b_PossResendMessageThatHasNotBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix50/1a_ValidLogonMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix50/1a_ValidLogonWithCorrectMsgSeqNum.def create mode 100644 quickfix/_test/definitions/server/fix50/1b_DuplicateIdentity.def create mode 100644 quickfix/_test/definitions/server/fix50/1c_InvalidSenderCompID.def create mode 100644 quickfix/_test/definitions/server/fix50/1c_InvalidTargetCompID.def create mode 100644 quickfix/_test/definitions/server/fix50/1d_InvalidLogonBadSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix50/1d_InvalidLogonLengthInvalid.def create mode 100644 quickfix/_test/definitions/server/fix50/1d_InvalidLogonNoDefaultApplVerID.def create mode 100644 quickfix/_test/definitions/server/fix50/1d_InvalidLogonWrongBeginString.def create mode 100644 quickfix/_test/definitions/server/fix50/1e_NotLogonMessage.def create mode 100644 quickfix/_test/definitions/server/fix50/20_SimultaneousResendRequest.def create mode 100644 quickfix/_test/definitions/server/fix50/21_RepeatingGroupSpecifierWithValueOfZero.def create mode 100644 quickfix/_test/definitions/server/fix50/2a_MsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/server/fix50/2b_MsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix50/2c_MsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/server/fix50/2d_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix50/2e_PossDupAlreadyReceived.def create mode 100644 quickfix/_test/definitions/server/fix50/2e_PossDupNotReceived.def create mode 100644 quickfix/_test/definitions/server/fix50/2f_PossDupOrigSendingTimeTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix50/2g_PossDupNoOrigSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix50/2i_BeginStringValueUnexpected.def create mode 100644 quickfix/_test/definitions/server/fix50/2k_CompIDDoesNotMatchProfile.def create mode 100644 quickfix/_test/definitions/server/fix50/2m_BodyLengthValueNotCorrect.def create mode 100644 quickfix/_test/definitions/server/fix50/2o_SendingTimeValueOutOfRange.def create mode 100644 quickfix/_test/definitions/server/fix50/2q_MsgTypeNotValid.def create mode 100644 quickfix/_test/definitions/server/fix50/2r_UnregisteredMsgType.def create mode 100644 quickfix/_test/definitions/server/fix50/2t_FirstThreeFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix50/3b_InvalidChecksum.def create mode 100644 quickfix/_test/definitions/server/fix50/3c_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix50/4a_NoDataSentDuringHeartBtInt.def create mode 100644 quickfix/_test/definitions/server/fix50/4b_ReceivedTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix50/6_SendTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix50/7_ReceiveRejectMessage.def create mode 100644 quickfix/_test/definitions/server/fix50/8_AdminAndApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix50/8_OnlyAdminMessages.def create mode 100644 quickfix/_test/definitions/server/fix50/8_OnlyApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix50/AlreadyLoggedOn.def create mode 100644 quickfix/_test/definitions/server/fix50/RejectResentMessage.def create mode 100644 quickfix/_test/definitions/server/fix50/ReverseRoute.def create mode 100644 quickfix/_test/definitions/server/fix50/ReverseRouteWithEmptyRoutingTags.def create mode 100644 quickfix/_test/definitions/server/fix50/SessionReset.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/10_MsgSeqNumEqual.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/10_MsgSeqNumGreater.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/10_MsgSeqNumLess.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/11a_NewSeqNoGreater.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/11b_NewSeqNoEqual.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/11c_NewSeqNoLess.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/13b_UnsolicitedLogoutMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/14a_BadField.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/14b_RequiredFieldMissing.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/14c_TagNotDefinedForMsgType.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/14d_TagSpecifiedWithoutValue.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/14e_IncorrectEnumValue.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/14f_IncorrectDataFormat.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/14g_HeaderBodyTrailerFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/14h_RepeatedTag.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/14i_RepeatingGroupCountNotEqual.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/15_HeaderAndBodyFieldsOrderedDifferently.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/19a_PossResendMessageThatHAsAlreadyBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/19b_PossResendMessageThatHasNotBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/1a_ValidLogonMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/1a_ValidLogonWithCorrectMsgSeqNum.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/1b_DuplicateIdentity.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/1c_InvalidSenderCompID.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/1c_InvalidTargetCompID.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/1d_InvalidLogonBadSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/1d_InvalidLogonLengthInvalid.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/1d_InvalidLogonNoDefaultApplVerID.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/1d_InvalidLogonWrongBeginString.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/1e_NotLogonMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/20_SimultaneousResendRequest.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/21_RepeatingGroupSpecifierWithValueOfZero.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2a_MsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2b_MsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2c_MsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2d_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2e_PossDupAlreadyReceived.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2e_PossDupNotReceived.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2f_PossDupOrigSendingTimeTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2g_PossDupNoOrigSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2i_BeginStringValueUnexpected.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2k_CompIDDoesNotMatchProfile.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2m_BodyLengthValueNotCorrect.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2o_SendingTimeValueOutOfRange.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2q_MsgTypeNotValid.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2r_UnregisteredMsgType.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/2t_FirstThreeFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/3b_InvalidChecksum.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/3c_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/4a_NoDataSentDuringHeartBtInt.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/4b_ReceivedTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/6_SendTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/7_ReceiveRejectMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/8_AdminAndApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/8_OnlyAdminMessages.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/8_OnlyApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/AlreadyLoggedOn.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/RejectResentMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/ReverseRoute.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/ReverseRouteWithEmptyRoutingTags.def create mode 100644 quickfix/_test/definitions/server/fix50sp1/SessionReset.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/10_MsgSeqNumEqual.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/10_MsgSeqNumGreater.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/10_MsgSeqNumLess.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/11a_NewSeqNoGreater.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/11b_NewSeqNoEqual.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/11c_NewSeqNoLess.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/13b_UnsolicitedLogoutMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/14a_BadField.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/14b_RequiredFieldMissing.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/14c_TagNotDefinedForMsgType.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/14d_TagSpecifiedWithoutValue.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/14e_IncorrectEnumValue.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/14f_IncorrectDataFormat.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/14g_HeaderBodyTrailerFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/14h_RepeatedTag.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/14i_RepeatingGroupCountNotEqual.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/15_HeaderAndBodyFieldsOrderedDifferently.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/19a_PossResendMessageThatHAsAlreadyBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/19b_PossResendMessageThatHasNotBeenSent.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/1a_ValidLogonMsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/1a_ValidLogonWithCorrectMsgSeqNum.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/1b_DuplicateIdentity.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/1c_InvalidSenderCompID.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/1c_InvalidTargetCompID.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/1d_InvalidLogonBadSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/1d_InvalidLogonLengthInvalid.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/1d_InvalidLogonNoDefaultApplVerID.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/1d_InvalidLogonWrongBeginString.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/1e_NotLogonMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/20_SimultaneousResendRequest.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/21_RepeatingGroupSpecifierWithValueOfZero.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2a_MsgSeqNumCorrect.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2b_MsgSeqNumTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2c_MsgSeqNumTooLow.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2d_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2e_PossDupAlreadyReceived.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2e_PossDupNotReceived.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2f_PossDupOrigSendingTimeTooHigh.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2g_PossDupNoOrigSendingTime.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2i_BeginStringValueUnexpected.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2k_CompIDDoesNotMatchProfile.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2m_BodyLengthValueNotCorrect.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2o_SendingTimeValueOutOfRange.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2q_MsgTypeNotValid.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2r_UnregisteredMsgType.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/2t_FirstThreeFieldsOutOfOrder.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/3b_InvalidChecksum.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/3c_GarbledMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/4a_NoDataSentDuringHeartBtInt.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/4b_ReceivedTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/6_SendTestRequest.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/7_ReceiveRejectMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/8_AdminAndApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/8_OnlyAdminMessages.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/8_OnlyApplicationMessages.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/AlreadyLoggedOn.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/RejectResentMessage.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/ReverseRoute.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/ReverseRouteWithEmptyRoutingTags.def create mode 100644 quickfix/_test/definitions/server/fix50sp2/SessionReset.def create mode 100644 quickfix/_test/fields.fmt create mode 100755 quickfix/_test/runat.sh create mode 100644 quickfix/_test/test-server/main.go create mode 100644 quickfix/_test/test.rb create mode 100644 quickfix/_test_data/ca.crt create mode 100644 quickfix/_test_data/localhost.crt create mode 100644 quickfix/_test_data/localhost.key create mode 100644 quickfix/acceptor.go create mode 100644 quickfix/acceptor_test.go create mode 100644 quickfix/application.go create mode 100644 quickfix/begin_string.go create mode 100644 quickfix/cmd/generate-fix/generate-fix.go create mode 100644 quickfix/cmd/generate-fix/internal/generate.go create mode 100644 quickfix/cmd/generate-fix/internal/globals.go create mode 100644 quickfix/cmd/generate-fix/internal/helpers.go create mode 100644 quickfix/cmd/generate-fix/internal/template_helpers.go create mode 100644 quickfix/cmd/generate-fix/internal/templates.go create mode 100644 quickfix/config/configuration.go create mode 100644 quickfix/connection.go create mode 100644 quickfix/connection_internal_test.go create mode 100644 quickfix/datadictionary/build.go create mode 100644 quickfix/datadictionary/build_test.go create mode 100644 quickfix/datadictionary/component_type_test.go create mode 100644 quickfix/datadictionary/datadictionary.go create mode 100644 quickfix/datadictionary/datadictionary_test.go create mode 100644 quickfix/datadictionary/field_def_test.go create mode 100644 quickfix/datadictionary/field_type_test.go create mode 100644 quickfix/datadictionary/group_field_def_test.go create mode 100644 quickfix/datadictionary/message_def_test.go create mode 100644 quickfix/datadictionary/xml.go create mode 100644 quickfix/datadictionary/xml_test.go create mode 100644 quickfix/dialer.go create mode 100644 quickfix/dialer_test.go create mode 100644 quickfix/doc.go create mode 100644 quickfix/errors.go create mode 100644 quickfix/errors_test.go create mode 100644 quickfix/field.go create mode 100644 quickfix/field_map.go create mode 100644 quickfix/field_map_test.go create mode 100644 quickfix/fix_boolean.go create mode 100644 quickfix/fix_boolean_test.go create mode 100644 quickfix/fix_bytes.go create mode 100644 quickfix/fix_bytes_test.go create mode 100644 quickfix/fix_decimal.go create mode 100644 quickfix/fix_decimal_test.go create mode 100644 quickfix/fix_float.go create mode 100644 quickfix/fix_float_test.go create mode 100644 quickfix/fix_int.go create mode 100644 quickfix/fix_int_test.go create mode 100644 quickfix/fix_string.go create mode 100644 quickfix/fix_string_test.go create mode 100644 quickfix/fix_udecimal.go create mode 100644 quickfix/fix_udecimal_test.go create mode 100644 quickfix/fix_utc_timestamp.go create mode 100644 quickfix/fix_utc_timestamp_test.go create mode 100644 quickfix/gen/enum/enums.generated.go create mode 100644 quickfix/gen/field/fields.generated.go create mode 100644 quickfix/gen/fix40/advertisement/Advertisement.generated.go create mode 100644 quickfix/gen/fix40/allocation/Allocation.generated.go create mode 100644 quickfix/gen/fix40/allocationack/AllocationACK.generated.go create mode 100644 quickfix/gen/fix40/dontknowtrade/DontKnowTrade.generated.go create mode 100644 quickfix/gen/fix40/email/Email.generated.go create mode 100644 quickfix/gen/fix40/executionreport/ExecutionReport.generated.go create mode 100644 quickfix/gen/fix40/header.generated.go create mode 100644 quickfix/gen/fix40/heartbeat/Heartbeat.generated.go create mode 100644 quickfix/gen/fix40/indicationofinterest/IndicationofInterest.generated.go create mode 100644 quickfix/gen/fix40/listcancelrequest/ListCancelRequest.generated.go create mode 100644 quickfix/gen/fix40/listexecute/ListExecute.generated.go create mode 100644 quickfix/gen/fix40/liststatus/ListStatus.generated.go create mode 100644 quickfix/gen/fix40/liststatusrequest/ListStatusRequest.generated.go create mode 100644 quickfix/gen/fix40/logon/Logon.generated.go create mode 100644 quickfix/gen/fix40/logout/Logout.generated.go create mode 100644 quickfix/gen/fix40/neworderlist/NewOrderList.generated.go create mode 100644 quickfix/gen/fix40/newordersingle/NewOrderSingle.generated.go create mode 100644 quickfix/gen/fix40/news/News.generated.go create mode 100644 quickfix/gen/fix40/ordercancelreject/OrderCancelReject.generated.go create mode 100644 quickfix/gen/fix40/ordercancelreplacerequest/OrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix40/ordercancelrequest/OrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix40/orderstatusrequest/OrderStatusRequest.generated.go create mode 100644 quickfix/gen/fix40/quote/Quote.generated.go create mode 100644 quickfix/gen/fix40/quoterequest/QuoteRequest.generated.go create mode 100644 quickfix/gen/fix40/reject/Reject.generated.go create mode 100644 quickfix/gen/fix40/resendrequest/ResendRequest.generated.go create mode 100644 quickfix/gen/fix40/sequencereset/SequenceReset.generated.go create mode 100644 quickfix/gen/fix40/testrequest/TestRequest.generated.go create mode 100644 quickfix/gen/fix40/trailer.generated.go create mode 100644 quickfix/gen/fix41/advertisement/Advertisement.generated.go create mode 100644 quickfix/gen/fix41/allocation/Allocation.generated.go create mode 100644 quickfix/gen/fix41/allocationack/AllocationACK.generated.go create mode 100644 quickfix/gen/fix41/dontknowtrade/DontKnowTrade.generated.go create mode 100644 quickfix/gen/fix41/email/Email.generated.go create mode 100644 quickfix/gen/fix41/executionreport/ExecutionReport.generated.go create mode 100644 quickfix/gen/fix41/header.generated.go create mode 100644 quickfix/gen/fix41/heartbeat/Heartbeat.generated.go create mode 100644 quickfix/gen/fix41/indicationofinterest/IndicationofInterest.generated.go create mode 100644 quickfix/gen/fix41/listcancelrequest/ListCancelRequest.generated.go create mode 100644 quickfix/gen/fix41/listexecute/ListExecute.generated.go create mode 100644 quickfix/gen/fix41/liststatus/ListStatus.generated.go create mode 100644 quickfix/gen/fix41/liststatusrequest/ListStatusRequest.generated.go create mode 100644 quickfix/gen/fix41/logon/Logon.generated.go create mode 100644 quickfix/gen/fix41/logout/Logout.generated.go create mode 100644 quickfix/gen/fix41/neworderlist/NewOrderList.generated.go create mode 100644 quickfix/gen/fix41/newordersingle/NewOrderSingle.generated.go create mode 100644 quickfix/gen/fix41/news/News.generated.go create mode 100644 quickfix/gen/fix41/ordercancelreject/OrderCancelReject.generated.go create mode 100644 quickfix/gen/fix41/ordercancelreplacerequest/OrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix41/ordercancelrequest/OrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix41/orderstatusrequest/OrderStatusRequest.generated.go create mode 100644 quickfix/gen/fix41/quote/Quote.generated.go create mode 100644 quickfix/gen/fix41/quoterequest/QuoteRequest.generated.go create mode 100644 quickfix/gen/fix41/reject/Reject.generated.go create mode 100644 quickfix/gen/fix41/resendrequest/ResendRequest.generated.go create mode 100644 quickfix/gen/fix41/sequencereset/SequenceReset.generated.go create mode 100644 quickfix/gen/fix41/settlementinstructions/SettlementInstructions.generated.go create mode 100644 quickfix/gen/fix41/testrequest/TestRequest.generated.go create mode 100644 quickfix/gen/fix41/trailer.generated.go create mode 100644 quickfix/gen/fix42/advertisement/Advertisement.generated.go create mode 100644 quickfix/gen/fix42/allocation/Allocation.generated.go create mode 100644 quickfix/gen/fix42/allocationack/AllocationACK.generated.go create mode 100644 quickfix/gen/fix42/bidrequest/BidRequest.generated.go create mode 100644 quickfix/gen/fix42/bidresponse/BidResponse.generated.go create mode 100644 quickfix/gen/fix42/businessmessagereject/BusinessMessageReject.generated.go create mode 100644 quickfix/gen/fix42/dontknowtrade/DontKnowTrade.generated.go create mode 100644 quickfix/gen/fix42/email/Email.generated.go create mode 100644 quickfix/gen/fix42/executionreport/ExecutionReport.generated.go create mode 100644 quickfix/gen/fix42/header.generated.go create mode 100644 quickfix/gen/fix42/heartbeat/Heartbeat.generated.go create mode 100644 quickfix/gen/fix42/indicationofinterest/IndicationofInterest.generated.go create mode 100644 quickfix/gen/fix42/listcancelrequest/ListCancelRequest.generated.go create mode 100644 quickfix/gen/fix42/listexecute/ListExecute.generated.go create mode 100644 quickfix/gen/fix42/liststatus/ListStatus.generated.go create mode 100644 quickfix/gen/fix42/liststatusrequest/ListStatusRequest.generated.go create mode 100644 quickfix/gen/fix42/liststrikeprice/ListStrikePrice.generated.go create mode 100644 quickfix/gen/fix42/logon/Logon.generated.go create mode 100644 quickfix/gen/fix42/logout/Logout.generated.go create mode 100644 quickfix/gen/fix42/marketdataincrementalrefresh/MarketDataIncrementalRefresh.generated.go create mode 100644 quickfix/gen/fix42/marketdatarequest/MarketDataRequest.generated.go create mode 100644 quickfix/gen/fix42/marketdatarequestreject/MarketDataRequestReject.generated.go create mode 100644 quickfix/gen/fix42/marketdatasnapshotfullrefresh/MarketDataSnapshotFullRefresh.generated.go create mode 100644 quickfix/gen/fix42/massquote/MassQuote.generated.go create mode 100644 quickfix/gen/fix42/neworderlist/NewOrderList.generated.go create mode 100644 quickfix/gen/fix42/newordersingle/NewOrderSingle.generated.go create mode 100644 quickfix/gen/fix42/news/News.generated.go create mode 100644 quickfix/gen/fix42/ordercancelreject/OrderCancelReject.generated.go create mode 100644 quickfix/gen/fix42/ordercancelreplacerequest/OrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix42/ordercancelrequest/OrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix42/orderstatusrequest/OrderStatusRequest.generated.go create mode 100644 quickfix/gen/fix42/quote/Quote.generated.go create mode 100644 quickfix/gen/fix42/quoteacknowledgement/QuoteAcknowledgement.generated.go create mode 100644 quickfix/gen/fix42/quotecancel/QuoteCancel.generated.go create mode 100644 quickfix/gen/fix42/quoterequest/QuoteRequest.generated.go create mode 100644 quickfix/gen/fix42/quotestatusrequest/QuoteStatusRequest.generated.go create mode 100644 quickfix/gen/fix42/reject/Reject.generated.go create mode 100644 quickfix/gen/fix42/resendrequest/ResendRequest.generated.go create mode 100644 quickfix/gen/fix42/securitydefinition/SecurityDefinition.generated.go create mode 100644 quickfix/gen/fix42/securitydefinitionrequest/SecurityDefinitionRequest.generated.go create mode 100644 quickfix/gen/fix42/securitystatus/SecurityStatus.generated.go create mode 100644 quickfix/gen/fix42/securitystatusrequest/SecurityStatusRequest.generated.go create mode 100644 quickfix/gen/fix42/sequencereset/SequenceReset.generated.go create mode 100644 quickfix/gen/fix42/settlementinstructions/SettlementInstructions.generated.go create mode 100644 quickfix/gen/fix42/testrequest/TestRequest.generated.go create mode 100644 quickfix/gen/fix42/tradingsessionstatus/TradingSessionStatus.generated.go create mode 100644 quickfix/gen/fix42/tradingsessionstatusrequest/TradingSessionStatusRequest.generated.go create mode 100644 quickfix/gen/fix42/trailer.generated.go create mode 100644 quickfix/gen/fix43/advertisement/Advertisement.generated.go create mode 100644 quickfix/gen/fix43/allocation/Allocation.generated.go create mode 100644 quickfix/gen/fix43/allocationack/AllocationAck.generated.go create mode 100644 quickfix/gen/fix43/bidrequest/BidRequest.generated.go create mode 100644 quickfix/gen/fix43/bidresponse/BidResponse.generated.go create mode 100644 quickfix/gen/fix43/businessmessagereject/BusinessMessageReject.generated.go create mode 100644 quickfix/gen/fix43/crossordercancelreplacerequest/CrossOrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix43/crossordercancelrequest/CrossOrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix43/derivativesecuritylist/DerivativeSecurityList.generated.go create mode 100644 quickfix/gen/fix43/derivativesecuritylistrequest/DerivativeSecurityListRequest.generated.go create mode 100644 quickfix/gen/fix43/dontknowtrade/DontKnowTrade.generated.go create mode 100644 quickfix/gen/fix43/email/Email.generated.go create mode 100644 quickfix/gen/fix43/executionreport/ExecutionReport.generated.go create mode 100644 quickfix/gen/fix43/header.generated.go create mode 100644 quickfix/gen/fix43/heartbeat/Heartbeat.generated.go create mode 100644 quickfix/gen/fix43/ioi/IOI.generated.go create mode 100644 quickfix/gen/fix43/listcancelrequest/ListCancelRequest.generated.go create mode 100644 quickfix/gen/fix43/listexecute/ListExecute.generated.go create mode 100644 quickfix/gen/fix43/liststatus/ListStatus.generated.go create mode 100644 quickfix/gen/fix43/liststatusrequest/ListStatusRequest.generated.go create mode 100644 quickfix/gen/fix43/liststrikeprice/ListStrikePrice.generated.go create mode 100644 quickfix/gen/fix43/logon/Logon.generated.go create mode 100644 quickfix/gen/fix43/logout/Logout.generated.go create mode 100644 quickfix/gen/fix43/marketdataincrementalrefresh/MarketDataIncrementalRefresh.generated.go create mode 100644 quickfix/gen/fix43/marketdatarequest/MarketDataRequest.generated.go create mode 100644 quickfix/gen/fix43/marketdatarequestreject/MarketDataRequestReject.generated.go create mode 100644 quickfix/gen/fix43/marketdatasnapshotfullrefresh/MarketDataSnapshotFullRefresh.generated.go create mode 100644 quickfix/gen/fix43/massquote/MassQuote.generated.go create mode 100644 quickfix/gen/fix43/massquoteacknowledgement/MassQuoteAcknowledgement.generated.go create mode 100644 quickfix/gen/fix43/multilegordercancelreplacerequest/MultilegOrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix43/newordercross/NewOrderCross.generated.go create mode 100644 quickfix/gen/fix43/neworderlist/NewOrderList.generated.go create mode 100644 quickfix/gen/fix43/newordermultileg/NewOrderMultileg.generated.go create mode 100644 quickfix/gen/fix43/newordersingle/NewOrderSingle.generated.go create mode 100644 quickfix/gen/fix43/news/News.generated.go create mode 100644 quickfix/gen/fix43/ordercancelreject/OrderCancelReject.generated.go create mode 100644 quickfix/gen/fix43/ordercancelreplacerequest/OrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix43/ordercancelrequest/OrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix43/ordermasscancelreport/OrderMassCancelReport.generated.go create mode 100644 quickfix/gen/fix43/ordermasscancelrequest/OrderMassCancelRequest.generated.go create mode 100644 quickfix/gen/fix43/ordermassstatusrequest/OrderMassStatusRequest.generated.go create mode 100644 quickfix/gen/fix43/orderstatusrequest/OrderStatusRequest.generated.go create mode 100644 quickfix/gen/fix43/quote/Quote.generated.go create mode 100644 quickfix/gen/fix43/quotecancel/QuoteCancel.generated.go create mode 100644 quickfix/gen/fix43/quoterequest/QuoteRequest.generated.go create mode 100644 quickfix/gen/fix43/quoterequestreject/QuoteRequestReject.generated.go create mode 100644 quickfix/gen/fix43/quotestatusreport/QuoteStatusReport.generated.go create mode 100644 quickfix/gen/fix43/quotestatusrequest/QuoteStatusRequest.generated.go create mode 100644 quickfix/gen/fix43/registrationinstructions/RegistrationInstructions.generated.go create mode 100644 quickfix/gen/fix43/registrationinstructionsresponse/RegistrationInstructionsResponse.generated.go create mode 100644 quickfix/gen/fix43/reject/Reject.generated.go create mode 100644 quickfix/gen/fix43/resendrequest/ResendRequest.generated.go create mode 100644 quickfix/gen/fix43/rfqrequest/RFQRequest.generated.go create mode 100644 quickfix/gen/fix43/securitydefinition/SecurityDefinition.generated.go create mode 100644 quickfix/gen/fix43/securitydefinitionrequest/SecurityDefinitionRequest.generated.go create mode 100644 quickfix/gen/fix43/securitylist/SecurityList.generated.go create mode 100644 quickfix/gen/fix43/securitylistrequest/SecurityListRequest.generated.go create mode 100644 quickfix/gen/fix43/securitystatus/SecurityStatus.generated.go create mode 100644 quickfix/gen/fix43/securitystatusrequest/SecurityStatusRequest.generated.go create mode 100644 quickfix/gen/fix43/securitytyperequest/SecurityTypeRequest.generated.go create mode 100644 quickfix/gen/fix43/securitytypes/SecurityTypes.generated.go create mode 100644 quickfix/gen/fix43/sequencereset/SequenceReset.generated.go create mode 100644 quickfix/gen/fix43/settlementinstructions/SettlementInstructions.generated.go create mode 100644 quickfix/gen/fix43/testrequest/TestRequest.generated.go create mode 100644 quickfix/gen/fix43/tradecapturereport/TradeCaptureReport.generated.go create mode 100644 quickfix/gen/fix43/tradecapturereportrequest/TradeCaptureReportRequest.generated.go create mode 100644 quickfix/gen/fix43/tradingsessionstatus/TradingSessionStatus.generated.go create mode 100644 quickfix/gen/fix43/tradingsessionstatusrequest/TradingSessionStatusRequest.generated.go create mode 100644 quickfix/gen/fix43/trailer.generated.go create mode 100644 quickfix/gen/fix44/advertisement/Advertisement.generated.go create mode 100644 quickfix/gen/fix44/allocationinstruction/AllocationInstruction.generated.go create mode 100644 quickfix/gen/fix44/allocationinstructionack/AllocationInstructionAck.generated.go create mode 100644 quickfix/gen/fix44/allocationreport/AllocationReport.generated.go create mode 100644 quickfix/gen/fix44/allocationreportack/AllocationReportAck.generated.go create mode 100644 quickfix/gen/fix44/assignmentreport/AssignmentReport.generated.go create mode 100644 quickfix/gen/fix44/bidrequest/BidRequest.generated.go create mode 100644 quickfix/gen/fix44/bidresponse/BidResponse.generated.go create mode 100644 quickfix/gen/fix44/businessmessagereject/BusinessMessageReject.generated.go create mode 100644 quickfix/gen/fix44/collateralassignment/CollateralAssignment.generated.go create mode 100644 quickfix/gen/fix44/collateralinquiry/CollateralInquiry.generated.go create mode 100644 quickfix/gen/fix44/collateralinquiryack/CollateralInquiryAck.generated.go create mode 100644 quickfix/gen/fix44/collateralreport/CollateralReport.generated.go create mode 100644 quickfix/gen/fix44/collateralrequest/CollateralRequest.generated.go create mode 100644 quickfix/gen/fix44/collateralresponse/CollateralResponse.generated.go create mode 100644 quickfix/gen/fix44/confirmation/Confirmation.generated.go create mode 100644 quickfix/gen/fix44/confirmationack/ConfirmationAck.generated.go create mode 100644 quickfix/gen/fix44/confirmationrequest/ConfirmationRequest.generated.go create mode 100644 quickfix/gen/fix44/crossordercancelreplacerequest/CrossOrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix44/crossordercancelrequest/CrossOrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix44/derivativesecuritylist/DerivativeSecurityList.generated.go create mode 100644 quickfix/gen/fix44/derivativesecuritylistrequest/DerivativeSecurityListRequest.generated.go create mode 100644 quickfix/gen/fix44/dontknowtrade/DontKnowTrade.generated.go create mode 100644 quickfix/gen/fix44/email/Email.generated.go create mode 100644 quickfix/gen/fix44/executionreport/ExecutionReport.generated.go create mode 100644 quickfix/gen/fix44/header.generated.go create mode 100644 quickfix/gen/fix44/heartbeat/Heartbeat.generated.go create mode 100644 quickfix/gen/fix44/ioi/IOI.generated.go create mode 100644 quickfix/gen/fix44/listcancelrequest/ListCancelRequest.generated.go create mode 100644 quickfix/gen/fix44/listexecute/ListExecute.generated.go create mode 100644 quickfix/gen/fix44/liststatus/ListStatus.generated.go create mode 100644 quickfix/gen/fix44/liststatusrequest/ListStatusRequest.generated.go create mode 100644 quickfix/gen/fix44/liststrikeprice/ListStrikePrice.generated.go create mode 100644 quickfix/gen/fix44/logon/Logon.generated.go create mode 100644 quickfix/gen/fix44/logout/Logout.generated.go create mode 100644 quickfix/gen/fix44/marketdataincrementalrefresh/MarketDataIncrementalRefresh.generated.go create mode 100644 quickfix/gen/fix44/marketdatarequest/MarketDataRequest.generated.go create mode 100644 quickfix/gen/fix44/marketdatarequestreject/MarketDataRequestReject.generated.go create mode 100644 quickfix/gen/fix44/marketdatasnapshotfullrefresh/MarketDataSnapshotFullRefresh.generated.go create mode 100644 quickfix/gen/fix44/massquote/MassQuote.generated.go create mode 100644 quickfix/gen/fix44/massquoteacknowledgement/MassQuoteAcknowledgement.generated.go create mode 100644 quickfix/gen/fix44/multilegordercancelreplace/MultilegOrderCancelReplace.generated.go create mode 100644 quickfix/gen/fix44/networkcounterpartysystemstatusrequest/NetworkCounterpartySystemStatusRequest.generated.go create mode 100644 quickfix/gen/fix44/networkcounterpartysystemstatusresponse/NetworkCounterpartySystemStatusResponse.generated.go create mode 100644 quickfix/gen/fix44/newordercross/NewOrderCross.generated.go create mode 100644 quickfix/gen/fix44/neworderlist/NewOrderList.generated.go create mode 100644 quickfix/gen/fix44/newordermultileg/NewOrderMultileg.generated.go create mode 100644 quickfix/gen/fix44/newordersingle/NewOrderSingle.generated.go create mode 100644 quickfix/gen/fix44/news/News.generated.go create mode 100644 quickfix/gen/fix44/ordercancelreject/OrderCancelReject.generated.go create mode 100644 quickfix/gen/fix44/ordercancelreplacerequest/OrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix44/ordercancelrequest/OrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix44/ordermasscancelreport/OrderMassCancelReport.generated.go create mode 100644 quickfix/gen/fix44/ordermasscancelrequest/OrderMassCancelRequest.generated.go create mode 100644 quickfix/gen/fix44/ordermassstatusrequest/OrderMassStatusRequest.generated.go create mode 100644 quickfix/gen/fix44/orderstatusrequest/OrderStatusRequest.generated.go create mode 100644 quickfix/gen/fix44/positionmaintenancereport/PositionMaintenanceReport.generated.go create mode 100644 quickfix/gen/fix44/positionmaintenancerequest/PositionMaintenanceRequest.generated.go create mode 100644 quickfix/gen/fix44/positionreport/PositionReport.generated.go create mode 100644 quickfix/gen/fix44/quote/Quote.generated.go create mode 100644 quickfix/gen/fix44/quotecancel/QuoteCancel.generated.go create mode 100644 quickfix/gen/fix44/quoterequest/QuoteRequest.generated.go create mode 100644 quickfix/gen/fix44/quoterequestreject/QuoteRequestReject.generated.go create mode 100644 quickfix/gen/fix44/quoteresponse/QuoteResponse.generated.go create mode 100644 quickfix/gen/fix44/quotestatusreport/QuoteStatusReport.generated.go create mode 100644 quickfix/gen/fix44/quotestatusrequest/QuoteStatusRequest.generated.go create mode 100644 quickfix/gen/fix44/registrationinstructions/RegistrationInstructions.generated.go create mode 100644 quickfix/gen/fix44/registrationinstructionsresponse/RegistrationInstructionsResponse.generated.go create mode 100644 quickfix/gen/fix44/reject/Reject.generated.go create mode 100644 quickfix/gen/fix44/requestforpositions/RequestForPositions.generated.go create mode 100644 quickfix/gen/fix44/requestforpositionsack/RequestForPositionsAck.generated.go create mode 100644 quickfix/gen/fix44/resendrequest/ResendRequest.generated.go create mode 100644 quickfix/gen/fix44/rfqrequest/RFQRequest.generated.go create mode 100644 quickfix/gen/fix44/securitydefinition/SecurityDefinition.generated.go create mode 100644 quickfix/gen/fix44/securitydefinitionrequest/SecurityDefinitionRequest.generated.go create mode 100644 quickfix/gen/fix44/securitylist/SecurityList.generated.go create mode 100644 quickfix/gen/fix44/securitylistrequest/SecurityListRequest.generated.go create mode 100644 quickfix/gen/fix44/securitystatus/SecurityStatus.generated.go create mode 100644 quickfix/gen/fix44/securitystatusrequest/SecurityStatusRequest.generated.go create mode 100644 quickfix/gen/fix44/securitytyperequest/SecurityTypeRequest.generated.go create mode 100644 quickfix/gen/fix44/securitytypes/SecurityTypes.generated.go create mode 100644 quickfix/gen/fix44/sequencereset/SequenceReset.generated.go create mode 100644 quickfix/gen/fix44/settlementinstructionrequest/SettlementInstructionRequest.generated.go create mode 100644 quickfix/gen/fix44/settlementinstructions/SettlementInstructions.generated.go create mode 100644 quickfix/gen/fix44/testrequest/TestRequest.generated.go create mode 100644 quickfix/gen/fix44/tradecapturereport/TradeCaptureReport.generated.go create mode 100644 quickfix/gen/fix44/tradecapturereportack/TradeCaptureReportAck.generated.go create mode 100644 quickfix/gen/fix44/tradecapturereportrequest/TradeCaptureReportRequest.generated.go create mode 100644 quickfix/gen/fix44/tradecapturereportrequestack/TradeCaptureReportRequestAck.generated.go create mode 100644 quickfix/gen/fix44/tradingsessionstatus/TradingSessionStatus.generated.go create mode 100644 quickfix/gen/fix44/tradingsessionstatusrequest/TradingSessionStatusRequest.generated.go create mode 100644 quickfix/gen/fix44/trailer.generated.go create mode 100644 quickfix/gen/fix44/userrequest/UserRequest.generated.go create mode 100644 quickfix/gen/fix44/userresponse/UserResponse.generated.go create mode 100644 quickfix/gen/fix50/adjustedpositionreport/AdjustedPositionReport.generated.go create mode 100644 quickfix/gen/fix50/advertisement/Advertisement.generated.go create mode 100644 quickfix/gen/fix50/allocationinstruction/AllocationInstruction.generated.go create mode 100644 quickfix/gen/fix50/allocationinstructionack/AllocationInstructionAck.generated.go create mode 100644 quickfix/gen/fix50/allocationinstructionalert/AllocationInstructionAlert.generated.go create mode 100644 quickfix/gen/fix50/allocationreport/AllocationReport.generated.go create mode 100644 quickfix/gen/fix50/allocationreportack/AllocationReportAck.generated.go create mode 100644 quickfix/gen/fix50/assignmentreport/AssignmentReport.generated.go create mode 100644 quickfix/gen/fix50/bidrequest/BidRequest.generated.go create mode 100644 quickfix/gen/fix50/bidresponse/BidResponse.generated.go create mode 100644 quickfix/gen/fix50/businessmessagereject/BusinessMessageReject.generated.go create mode 100644 quickfix/gen/fix50/collateralassignment/CollateralAssignment.generated.go create mode 100644 quickfix/gen/fix50/collateralinquiry/CollateralInquiry.generated.go create mode 100644 quickfix/gen/fix50/collateralinquiryack/CollateralInquiryAck.generated.go create mode 100644 quickfix/gen/fix50/collateralreport/CollateralReport.generated.go create mode 100644 quickfix/gen/fix50/collateralrequest/CollateralRequest.generated.go create mode 100644 quickfix/gen/fix50/collateralresponse/CollateralResponse.generated.go create mode 100644 quickfix/gen/fix50/confirmation/Confirmation.generated.go create mode 100644 quickfix/gen/fix50/confirmationack/ConfirmationAck.generated.go create mode 100644 quickfix/gen/fix50/confirmationrequest/ConfirmationRequest.generated.go create mode 100644 quickfix/gen/fix50/contraryintentionreport/ContraryIntentionReport.generated.go create mode 100644 quickfix/gen/fix50/crossordercancelreplacerequest/CrossOrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix50/crossordercancelrequest/CrossOrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix50/derivativesecuritylist/DerivativeSecurityList.generated.go create mode 100644 quickfix/gen/fix50/derivativesecuritylistrequest/DerivativeSecurityListRequest.generated.go create mode 100644 quickfix/gen/fix50/dontknowtrade/DontKnowTrade.generated.go create mode 100644 quickfix/gen/fix50/email/Email.generated.go create mode 100644 quickfix/gen/fix50/executionacknowledgement/ExecutionAcknowledgement.generated.go create mode 100644 quickfix/gen/fix50/executionreport/ExecutionReport.generated.go create mode 100644 quickfix/gen/fix50/ioi/IOI.generated.go create mode 100644 quickfix/gen/fix50/listcancelrequest/ListCancelRequest.generated.go create mode 100644 quickfix/gen/fix50/listexecute/ListExecute.generated.go create mode 100644 quickfix/gen/fix50/liststatus/ListStatus.generated.go create mode 100644 quickfix/gen/fix50/liststatusrequest/ListStatusRequest.generated.go create mode 100644 quickfix/gen/fix50/liststrikeprice/ListStrikePrice.generated.go create mode 100644 quickfix/gen/fix50/marketdataincrementalrefresh/MarketDataIncrementalRefresh.generated.go create mode 100644 quickfix/gen/fix50/marketdatarequest/MarketDataRequest.generated.go create mode 100644 quickfix/gen/fix50/marketdatarequestreject/MarketDataRequestReject.generated.go create mode 100644 quickfix/gen/fix50/marketdatasnapshotfullrefresh/MarketDataSnapshotFullRefresh.generated.go create mode 100644 quickfix/gen/fix50/massquote/MassQuote.generated.go create mode 100644 quickfix/gen/fix50/massquoteacknowledgement/MassQuoteAcknowledgement.generated.go create mode 100644 quickfix/gen/fix50/multilegordercancelreplace/MultilegOrderCancelReplace.generated.go create mode 100644 quickfix/gen/fix50/networkcounterpartysystemstatusrequest/NetworkCounterpartySystemStatusRequest.generated.go create mode 100644 quickfix/gen/fix50/networkcounterpartysystemstatusresponse/NetworkCounterpartySystemStatusResponse.generated.go create mode 100644 quickfix/gen/fix50/newordercross/NewOrderCross.generated.go create mode 100644 quickfix/gen/fix50/neworderlist/NewOrderList.generated.go create mode 100644 quickfix/gen/fix50/newordermultileg/NewOrderMultileg.generated.go create mode 100644 quickfix/gen/fix50/newordersingle/NewOrderSingle.generated.go create mode 100644 quickfix/gen/fix50/news/News.generated.go create mode 100644 quickfix/gen/fix50/ordercancelreject/OrderCancelReject.generated.go create mode 100644 quickfix/gen/fix50/ordercancelreplacerequest/OrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix50/ordercancelrequest/OrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix50/ordermasscancelreport/OrderMassCancelReport.generated.go create mode 100644 quickfix/gen/fix50/ordermasscancelrequest/OrderMassCancelRequest.generated.go create mode 100644 quickfix/gen/fix50/ordermassstatusrequest/OrderMassStatusRequest.generated.go create mode 100644 quickfix/gen/fix50/orderstatusrequest/OrderStatusRequest.generated.go create mode 100644 quickfix/gen/fix50/positionmaintenancereport/PositionMaintenanceReport.generated.go create mode 100644 quickfix/gen/fix50/positionmaintenancerequest/PositionMaintenanceRequest.generated.go create mode 100644 quickfix/gen/fix50/positionreport/PositionReport.generated.go create mode 100644 quickfix/gen/fix50/quote/Quote.generated.go create mode 100644 quickfix/gen/fix50/quotecancel/QuoteCancel.generated.go create mode 100644 quickfix/gen/fix50/quoterequest/QuoteRequest.generated.go create mode 100644 quickfix/gen/fix50/quoterequestreject/QuoteRequestReject.generated.go create mode 100644 quickfix/gen/fix50/quoteresponse/QuoteResponse.generated.go create mode 100644 quickfix/gen/fix50/quotestatusreport/QuoteStatusReport.generated.go create mode 100644 quickfix/gen/fix50/quotestatusrequest/QuoteStatusRequest.generated.go create mode 100644 quickfix/gen/fix50/registrationinstructions/RegistrationInstructions.generated.go create mode 100644 quickfix/gen/fix50/registrationinstructionsresponse/RegistrationInstructionsResponse.generated.go create mode 100644 quickfix/gen/fix50/requestforpositions/RequestForPositions.generated.go create mode 100644 quickfix/gen/fix50/requestforpositionsack/RequestForPositionsAck.generated.go create mode 100644 quickfix/gen/fix50/rfqrequest/RFQRequest.generated.go create mode 100644 quickfix/gen/fix50/securitydefinition/SecurityDefinition.generated.go create mode 100644 quickfix/gen/fix50/securitydefinitionrequest/SecurityDefinitionRequest.generated.go create mode 100644 quickfix/gen/fix50/securitydefinitionupdatereport/SecurityDefinitionUpdateReport.generated.go create mode 100644 quickfix/gen/fix50/securitylist/SecurityList.generated.go create mode 100644 quickfix/gen/fix50/securitylistrequest/SecurityListRequest.generated.go create mode 100644 quickfix/gen/fix50/securitylistupdatereport/SecurityListUpdateReport.generated.go create mode 100644 quickfix/gen/fix50/securitystatus/SecurityStatus.generated.go create mode 100644 quickfix/gen/fix50/securitystatusrequest/SecurityStatusRequest.generated.go create mode 100644 quickfix/gen/fix50/securitytyperequest/SecurityTypeRequest.generated.go create mode 100644 quickfix/gen/fix50/securitytypes/SecurityTypes.generated.go create mode 100644 quickfix/gen/fix50/settlementinstructionrequest/SettlementInstructionRequest.generated.go create mode 100644 quickfix/gen/fix50/settlementinstructions/SettlementInstructions.generated.go create mode 100644 quickfix/gen/fix50/tradecapturereport/TradeCaptureReport.generated.go create mode 100644 quickfix/gen/fix50/tradecapturereportack/TradeCaptureReportAck.generated.go create mode 100644 quickfix/gen/fix50/tradecapturereportrequest/TradeCaptureReportRequest.generated.go create mode 100644 quickfix/gen/fix50/tradecapturereportrequestack/TradeCaptureReportRequestAck.generated.go create mode 100644 quickfix/gen/fix50/tradingsessionlist/TradingSessionList.generated.go create mode 100644 quickfix/gen/fix50/tradingsessionlistrequest/TradingSessionListRequest.generated.go create mode 100644 quickfix/gen/fix50/tradingsessionstatus/TradingSessionStatus.generated.go create mode 100644 quickfix/gen/fix50/tradingsessionstatusrequest/TradingSessionStatusRequest.generated.go create mode 100644 quickfix/gen/fix50/userrequest/UserRequest.generated.go create mode 100644 quickfix/gen/fix50/userresponse/UserResponse.generated.go create mode 100644 quickfix/gen/fix50sp1/adjustedpositionreport/AdjustedPositionReport.generated.go create mode 100644 quickfix/gen/fix50sp1/advertisement/Advertisement.generated.go create mode 100644 quickfix/gen/fix50sp1/allocationinstruction/AllocationInstruction.generated.go create mode 100644 quickfix/gen/fix50sp1/allocationinstructionack/AllocationInstructionAck.generated.go create mode 100644 quickfix/gen/fix50sp1/allocationinstructionalert/AllocationInstructionAlert.generated.go create mode 100644 quickfix/gen/fix50sp1/allocationreport/AllocationReport.generated.go create mode 100644 quickfix/gen/fix50sp1/allocationreportack/AllocationReportAck.generated.go create mode 100644 quickfix/gen/fix50sp1/applicationmessagereport/ApplicationMessageReport.generated.go create mode 100644 quickfix/gen/fix50sp1/applicationmessagerequest/ApplicationMessageRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/applicationmessagerequestack/ApplicationMessageRequestAck.generated.go create mode 100644 quickfix/gen/fix50sp1/assignmentreport/AssignmentReport.generated.go create mode 100644 quickfix/gen/fix50sp1/bidrequest/BidRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/bidresponse/BidResponse.generated.go create mode 100644 quickfix/gen/fix50sp1/businessmessagereject/BusinessMessageReject.generated.go create mode 100644 quickfix/gen/fix50sp1/collateralassignment/CollateralAssignment.generated.go create mode 100644 quickfix/gen/fix50sp1/collateralinquiry/CollateralInquiry.generated.go create mode 100644 quickfix/gen/fix50sp1/collateralinquiryack/CollateralInquiryAck.generated.go create mode 100644 quickfix/gen/fix50sp1/collateralreport/CollateralReport.generated.go create mode 100644 quickfix/gen/fix50sp1/collateralrequest/CollateralRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/collateralresponse/CollateralResponse.generated.go create mode 100644 quickfix/gen/fix50sp1/confirmation/Confirmation.generated.go create mode 100644 quickfix/gen/fix50sp1/confirmationack/ConfirmationAck.generated.go create mode 100644 quickfix/gen/fix50sp1/confirmationrequest/ConfirmationRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/contraryintentionreport/ContraryIntentionReport.generated.go create mode 100644 quickfix/gen/fix50sp1/crossordercancelreplacerequest/CrossOrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/crossordercancelrequest/CrossOrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/derivativesecuritylist/DerivativeSecurityList.generated.go create mode 100644 quickfix/gen/fix50sp1/derivativesecuritylistrequest/DerivativeSecurityListRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/derivativesecuritylistupdatereport/DerivativeSecurityListUpdateReport.generated.go create mode 100644 quickfix/gen/fix50sp1/dontknowtrade/DontKnowTrade.generated.go create mode 100644 quickfix/gen/fix50sp1/email/Email.generated.go create mode 100644 quickfix/gen/fix50sp1/executionacknowledgement/ExecutionAcknowledgement.generated.go create mode 100644 quickfix/gen/fix50sp1/executionreport/ExecutionReport.generated.go create mode 100644 quickfix/gen/fix50sp1/ioi/IOI.generated.go create mode 100644 quickfix/gen/fix50sp1/listcancelrequest/ListCancelRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/listexecute/ListExecute.generated.go create mode 100644 quickfix/gen/fix50sp1/liststatus/ListStatus.generated.go create mode 100644 quickfix/gen/fix50sp1/liststatusrequest/ListStatusRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/liststrikeprice/ListStrikePrice.generated.go create mode 100644 quickfix/gen/fix50sp1/marketdataincrementalrefresh/MarketDataIncrementalRefresh.generated.go create mode 100644 quickfix/gen/fix50sp1/marketdatarequest/MarketDataRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/marketdatarequestreject/MarketDataRequestReject.generated.go create mode 100644 quickfix/gen/fix50sp1/marketdatasnapshotfullrefresh/MarketDataSnapshotFullRefresh.generated.go create mode 100644 quickfix/gen/fix50sp1/marketdefinition/MarketDefinition.generated.go create mode 100644 quickfix/gen/fix50sp1/marketdefinitionrequest/MarketDefinitionRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/marketdefinitionupdatereport/MarketDefinitionUpdateReport.generated.go create mode 100644 quickfix/gen/fix50sp1/massquote/MassQuote.generated.go create mode 100644 quickfix/gen/fix50sp1/massquoteacknowledgement/MassQuoteAcknowledgement.generated.go create mode 100644 quickfix/gen/fix50sp1/multilegordercancelreplace/MultilegOrderCancelReplace.generated.go create mode 100644 quickfix/gen/fix50sp1/networkcounterpartysystemstatusrequest/NetworkCounterpartySystemStatusRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/networkcounterpartysystemstatusresponse/NetworkCounterpartySystemStatusResponse.generated.go create mode 100644 quickfix/gen/fix50sp1/newordercross/NewOrderCross.generated.go create mode 100644 quickfix/gen/fix50sp1/neworderlist/NewOrderList.generated.go create mode 100644 quickfix/gen/fix50sp1/newordermultileg/NewOrderMultileg.generated.go create mode 100644 quickfix/gen/fix50sp1/newordersingle/NewOrderSingle.generated.go create mode 100644 quickfix/gen/fix50sp1/news/News.generated.go create mode 100644 quickfix/gen/fix50sp1/ordercancelreject/OrderCancelReject.generated.go create mode 100644 quickfix/gen/fix50sp1/ordercancelreplacerequest/OrderCancelReplaceRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/ordercancelrequest/OrderCancelRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/ordermassactionreport/OrderMassActionReport.generated.go create mode 100644 quickfix/gen/fix50sp1/ordermassactionrequest/OrderMassActionRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/ordermasscancelreport/OrderMassCancelReport.generated.go create mode 100644 quickfix/gen/fix50sp1/ordermasscancelrequest/OrderMassCancelRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/ordermassstatusrequest/OrderMassStatusRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/orderstatusrequest/OrderStatusRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/positionmaintenancereport/PositionMaintenanceReport.generated.go create mode 100644 quickfix/gen/fix50sp1/positionmaintenancerequest/PositionMaintenanceRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/positionreport/PositionReport.generated.go create mode 100644 quickfix/gen/fix50sp1/quote/Quote.generated.go create mode 100644 quickfix/gen/fix50sp1/quotecancel/QuoteCancel.generated.go create mode 100644 quickfix/gen/fix50sp1/quoterequest/QuoteRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/quoterequestreject/QuoteRequestReject.generated.go create mode 100644 quickfix/gen/fix50sp1/quoteresponse/QuoteResponse.generated.go create mode 100644 quickfix/gen/fix50sp1/quotestatusreport/QuoteStatusReport.generated.go create mode 100644 quickfix/gen/fix50sp1/quotestatusrequest/QuoteStatusRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/registrationinstructions/RegistrationInstructions.generated.go create mode 100644 quickfix/gen/fix50sp1/registrationinstructionsresponse/RegistrationInstructionsResponse.generated.go create mode 100644 quickfix/gen/fix50sp1/requestforpositions/RequestForPositions.generated.go create mode 100644 quickfix/gen/fix50sp1/requestforpositionsack/RequestForPositionsAck.generated.go create mode 100644 quickfix/gen/fix50sp1/rfqrequest/RFQRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/securitydefinition/SecurityDefinition.generated.go create mode 100644 quickfix/gen/fix50sp1/securitydefinitionrequest/SecurityDefinitionRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/securitydefinitionupdatereport/SecurityDefinitionUpdateReport.generated.go create mode 100644 quickfix/gen/fix50sp1/securitylist/SecurityList.generated.go create mode 100644 quickfix/gen/fix50sp1/securitylistrequest/SecurityListRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/securitylistupdatereport/SecurityListUpdateReport.generated.go create mode 100644 quickfix/gen/fix50sp1/securitystatus/SecurityStatus.generated.go create mode 100644 quickfix/gen/fix50sp1/securitystatusrequest/SecurityStatusRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/securitytyperequest/SecurityTypeRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/securitytypes/SecurityTypes.generated.go create mode 100644 quickfix/gen/fix50sp1/settlementinstructionrequest/SettlementInstructionRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/settlementinstructions/SettlementInstructions.generated.go create mode 100644 quickfix/gen/fix50sp1/settlementobligationreport/SettlementObligationReport.generated.go create mode 100644 quickfix/gen/fix50sp1/tradecapturereport/TradeCaptureReport.generated.go create mode 100644 quickfix/gen/fix50sp1/tradecapturereportack/TradeCaptureReportAck.generated.go create mode 100644 quickfix/gen/fix50sp1/tradecapturereportrequest/TradeCaptureReportRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/tradecapturereportrequestack/TradeCaptureReportRequestAck.generated.go create mode 100644 quickfix/gen/fix50sp1/tradingsessionlist/TradingSessionList.generated.go create mode 100644 quickfix/gen/fix50sp1/tradingsessionlistrequest/TradingSessionListRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/tradingsessionlistupdatereport/TradingSessionListUpdateReport.generated.go create mode 100644 quickfix/gen/fix50sp1/tradingsessionstatus/TradingSessionStatus.generated.go create mode 100644 quickfix/gen/fix50sp1/tradingsessionstatusrequest/TradingSessionStatusRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/usernotification/UserNotification.generated.go create mode 100644 quickfix/gen/fix50sp1/userrequest/UserRequest.generated.go create mode 100644 quickfix/gen/fix50sp1/userresponse/UserResponse.generated.go create mode 100644 quickfix/gen/fix50sp2/businessmessagereject/BusinessMessageReject.generated.go create mode 100644 quickfix/gen/fix50sp2/email/Email.generated.go create mode 100644 quickfix/gen/fix50sp2/executionack/ExecutionAck.generated.go create mode 100644 quickfix/gen/fix50sp2/executionreport/ExecutionReport.generated.go create mode 100644 quickfix/gen/fix50sp2/heartbeat/Heartbeat.generated.go create mode 100644 quickfix/gen/fix50sp2/logon/Logon.generated.go create mode 100644 quickfix/gen/fix50sp2/logout/Logout.generated.go create mode 100644 quickfix/gen/fix50sp2/newordersingle/NewOrderSingle.generated.go create mode 100644 quickfix/gen/fix50sp2/quote/Quote.generated.go create mode 100644 quickfix/gen/fix50sp2/quoteack/QuoteAck.generated.go create mode 100644 quickfix/gen/fix50sp2/quotecancel/QuoteCancel.generated.go create mode 100644 quickfix/gen/fix50sp2/quoterequest/QuoteRequest.generated.go create mode 100644 quickfix/gen/fix50sp2/quoterequestreject/QuoteRequestReject.generated.go create mode 100644 quickfix/gen/fix50sp2/quoteresponse/QuoteResponse.generated.go create mode 100644 quickfix/gen/fix50sp2/quotestatusreport/QuoteStatusReport.generated.go create mode 100644 quickfix/gen/fix50sp2/reject/Reject.generated.go create mode 100644 quickfix/gen/fix50sp2/resendrequest/ResendRequest.generated.go create mode 100644 quickfix/gen/fix50sp2/sequencereset/SequenceReset.generated.go create mode 100644 quickfix/gen/fix50sp2/testrequest/TestRequest.generated.go create mode 100644 quickfix/gen/fixt11/header.generated.go create mode 100644 quickfix/gen/fixt11/heartbeat/Heartbeat.generated.go create mode 100644 quickfix/gen/fixt11/logon/Logon.generated.go create mode 100644 quickfix/gen/fixt11/logout/Logout.generated.go create mode 100644 quickfix/gen/fixt11/reject/Reject.generated.go create mode 100644 quickfix/gen/fixt11/resendrequest/ResendRequest.generated.go create mode 100644 quickfix/gen/fixt11/sequencereset/SequenceReset.generated.go create mode 100644 quickfix/gen/fixt11/testrequest/TestRequest.generated.go create mode 100644 quickfix/gen/fixt11/trailer.generated.go create mode 100644 quickfix/gen/tag/tag_numbers.generated.go create mode 100644 quickfix/go.mod_ create mode 100644 quickfix/go.sum_ create mode 100644 quickfix/in_session.go create mode 100644 quickfix/in_session_test.go create mode 100644 quickfix/initiator.go create mode 100644 quickfix/internal/event.go create mode 100644 quickfix/internal/event_timer.go create mode 100644 quickfix/internal/event_timer_test.go create mode 100644 quickfix/internal/session_settings.go create mode 100644 quickfix/internal/testsuite/store_suite.go create mode 100644 quickfix/internal/time_range.go create mode 100644 quickfix/internal/time_range_test.go create mode 100644 quickfix/latent_state.go create mode 100644 quickfix/latent_state_test.go create mode 100644 quickfix/log.go create mode 100644 quickfix/log/composite/composite_log.go create mode 100644 quickfix/log/composite/composite_log_test.go create mode 100644 quickfix/log/file/file_log.go create mode 100644 quickfix/log/file/file_log_test.go create mode 100644 quickfix/log/file/file_util.go create mode 100644 quickfix/log/file/file_util_test.go create mode 100644 quickfix/log/mongo/mongo_log.go create mode 100644 quickfix/log/mongo/mongo_log_test.go create mode 100644 quickfix/log/screen/screen_log.go create mode 100644 quickfix/log/sql/sql_log.go create mode 100644 quickfix/log/sql/sql_log_test.go create mode 100644 quickfix/logon_state.go create mode 100644 quickfix/logon_state_test.go create mode 100644 quickfix/logout_state.go create mode 100644 quickfix/logout_state_test.go create mode 100644 quickfix/memory_store.go create mode 100644 quickfix/message.go create mode 100644 quickfix/message_router.go create mode 100644 quickfix/message_router_test.go create mode 100644 quickfix/message_test.go create mode 100644 quickfix/msg_type.go create mode 100644 quickfix/not_session_time.go create mode 100644 quickfix/not_session_time_test.go create mode 100644 quickfix/null_log.go create mode 100644 quickfix/parser.go create mode 100644 quickfix/parser_test.go create mode 100644 quickfix/pending_timeout.go create mode 100644 quickfix/pending_timeout_test.go create mode 100644 quickfix/quickfix_test.go create mode 100644 quickfix/registry.go create mode 100644 quickfix/repeating_group.go create mode 100644 quickfix/repeating_group_test.go create mode 100644 quickfix/resend_state.go create mode 100644 quickfix/resend_state_test.go create mode 100644 quickfix/session.go create mode 100644 quickfix/session_factory.go create mode 100644 quickfix/session_factory_test.go create mode 100644 quickfix/session_id.go create mode 100644 quickfix/session_id_test.go create mode 100644 quickfix/session_rejects.go create mode 100644 quickfix/session_settings.go create mode 100644 quickfix/session_settings_test.go create mode 100644 quickfix/session_state.go create mode 100644 quickfix/session_test.go create mode 100644 quickfix/settings.go create mode 100644 quickfix/settings_test.go create mode 100644 quickfix/spec/FIX40.xml create mode 100644 quickfix/spec/FIX41.xml create mode 100644 quickfix/spec/FIX42.xml create mode 100644 quickfix/spec/FIX43.xml create mode 100644 quickfix/spec/FIX44.xml create mode 100644 quickfix/spec/FIX50.xml create mode 100644 quickfix/spec/FIX50SP1.xml rename spec/FIX50SP2-DS-CORI.xml => quickfix/spec/FIX50SP2.xml (100%) create mode 100644 quickfix/spec/FIXT11.xml create mode 100644 quickfix/store.go create mode 100644 quickfix/store/file/file_store.go create mode 100644 quickfix/store/file/file_store_test.go create mode 100644 quickfix/store/file/util.go create mode 100644 quickfix/store/memory/ignore.go create mode 100644 quickfix/store/memory/memory_store_test.go create mode 100644 quickfix/store/mongo/mongo_store.go create mode 100644 quickfix/store/mongo/mongo_store_test.go create mode 100644 quickfix/store/sql/sql_store.go create mode 100644 quickfix/store/sql/sql_store_test.go create mode 100644 quickfix/tag.go create mode 100644 quickfix/tag_value.go create mode 100644 quickfix/tag_value_test.go create mode 100644 quickfix/tls.go create mode 100644 quickfix/tls_test.go create mode 100644 quickfix/validation.go create mode 100644 quickfix/validation_test.go create mode 100644 spec/FIX50SP2.xml mode change 100644 => 100755 update_library.sh diff --git a/go.mod b/go.mod index a55e016..7e4b300 100644 --- a/go.mod +++ b/go.mod @@ -72,6 +72,7 @@ require ( github.com/o1egl/paseto v1.0.0 // indirect github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/petermattis/goid v0.0.0-20241025130422-66cb2e6d7274 // indirect + github.com/pires/go-proxyproto v0.11.0 github.com/pkg/errors v0.9.1 // indirect github.com/prometheus/client_golang v1.20.5 // indirect github.com/prometheus/client_model v0.6.1 // indirect diff --git a/go.sum b/go.sum index 040ae6a..53249b7 100644 --- a/go.sum +++ b/go.sum @@ -423,6 +423,8 @@ github.com/peterh/liner v1.2.1/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/petermattis/goid v0.0.0-20241025130422-66cb2e6d7274 h1:qli3BGQK0tYDkSEvZ/FzZTi9ZrOX86Q6CIhKLGc489A= github.com/petermattis/goid v0.0.0-20241025130422-66cb2e6d7274/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/pires/go-proxyproto v0.11.0 h1:gUQpS85X/VJMdUsYyEgyn59uLJvGqPhJV5YvG68wXH4= +github.com/pires/go-proxyproto v0.11.0/go.mod h1:ZKAAyp3cgy5Y5Mo4n9AlScrkCZwUy0g3Jf+slqQVcuU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= diff --git a/last_update_info.txt b/last_update_info.txt new file mode 100644 index 0000000..8bbc155 --- /dev/null +++ b/last_update_info.txt @@ -0,0 +1 @@ +Thu Feb 19 05:35:16 2026 -0600 diff --git a/quickfix/CHANGELOG.md b/quickfix/CHANGELOG.md new file mode 100644 index 0000000..d4be155 --- /dev/null +++ b/quickfix/CHANGELOG.md @@ -0,0 +1,399 @@ +## 0.9.10 (August 8, 2025) + +### BUG FIXES +* Send Reset if the ResetTime elapsed in between checks [#725](https://quantex.com/qfixdpl/quickfix/pull/725) + +## 0.9.9 (July 31, 2025) + +### BUG FIXES +* Adds missing tz for resetseqtime without starttime endtime #723 [#723](https://quantex.com/qfixdpl/quickfix/pull/723) + +## 0.9.8 (July 21, 2025) + +### ENHANCEMENTS +* Add DB name configuration [#711](https://quantex.com/qfixdpl/quickfix/pull/711) +* Change ResetSeqTime to time.Time based on the config's timeZone [#712](https://quantex.com/qfixdpl/quickfix/pull/712) + +### BUG FIXES +* Block Sends when Resend Request is active [#715](https://quantex.com/qfixdpl/quickfix/pull/715) +* Fix the issue of incorrect time range calculation across days [#718](https://quantex.com/qfixdpl/quickfix/pull/718) + +## 0.9.7 (April 23, 2025) + +### FEATURES +* Adds SQL, MongoDB and Composite FIX Log and LogFactory implementations, see `config/configuration.go` for details [#672](https://quantex.com/qfixdpl/quickfix/pull/672) +* Adds convenience getters for session log and store [#675](https://quantex.com/qfixdpl/quickfix/pull/675) +* Adds config option for ResetSeqTime [#705](https://quantex.com/qfixdpl/quickfix/pull/705) + +### ENHANCEMENTS +* File store uses files exclusively [#680](https://quantex.com/qfixdpl/quickfix/pull/680) +* Protect concurrent usage of filestore [#688](https://quantex.com/qfixdpl/quickfix/pull/688) +* Support udecimal library in code generation [#700](https://quantex.com/qfixdpl/quickfix/pull/700) + +### BUG FIXES +* Avoid unkeyed fields usage for exported struct in generated code [#683](https://quantex.com/qfixdpl/quickfix/pull/683) +* Iterate messages in filestore opens a separate file to avoid deadlock [#703](https://quantex.com/qfixdpl/quickfix/pull/703) +* Correct ordering in message trailer [#707](https://quantex.com/qfixdpl/quickfix/pull/707) + +## 0.9.6 (September 20, 2024) + +### ENHANCEMENTS +* Allow the clients of acceptor to specify their own tls.Config https://quantex.com/qfixdpl/quickfix/pull/667 +* Adds NextExpectedSeqNum setting https://quantex.com/qfixdpl/quickfix/pull/668 + +### BUG FIXES +* Reinit stop sync to prevent deadlock on sequential start/stops https://quantex.com/qfixdpl/quickfix/pull/669 +* Check logon auth before resetting store https://quantex.com/qfixdpl/quickfix/pull/670 +* Reverts ToAdmin call sequencing https://quantex.com/qfixdpl/quickfix/pull/674 + +## 0.9.5 (August 14, 2024) + +### ENHANCEMENTS +* Introduce message iterator to avoid loading all messages into memory at once upon resend request https://quantex.com/qfixdpl/quickfix/pull/659 +* Only lock fieldmap once during message parsing https://quantex.com/qfixdpl/quickfix/pull/658 +* Optimize tag value parsing https://quantex.com/qfixdpl/quickfix/pull/657 +* Use bytes.Count to count the number of message fields https://quantex.com/qfixdpl/quickfix/pull/655 +* Port config documentation into proper go doc format https://quantex.com/qfixdpl/quickfix/pull/649 +* Support TLS configuration as raw bytes https://quantex.com/qfixdpl/quickfix/pull/647 + +### BUG FIXES +* Use the Go generated file convention https://quantex.com/qfixdpl/quickfix/pull/660 +* Fix stuck call to Dial when calling Stop on the Initiator https://quantex.com/qfixdpl/quickfix/pull/654 +* Do not increment NextTargetMsgSeqNum for out of sequence Logout and Test Requests https://quantex.com/qfixdpl/quickfix/pull/645 + +## 0.9.4 (May 29, 2024) + +### ENHANCEMENTS +* Adds log to readLoop just like writeLoop https://quantex.com/qfixdpl/quickfix/pull/642 + +### BUG FIXES +* Maintain repeating group field order when parsing messages https://quantex.com/qfixdpl/quickfix/pull/636 + +## 0.9.3 (May 9, 2024) + +### BUG FIXES +* Change filestore.offsets from map[int]msgDef to sync.Map https://quantex.com/qfixdpl/quickfix/pull/639 +* Unregister sessions on stop https://quantex.com/qfixdpl/quickfix/pull/637 +* Corrects ResetOnLogon behavior for initiators https://quantex.com/qfixdpl/quickfix/pull/635 + +### FEATURES +* Add AllowUnknownMessageFields & CheckUserDefinedFields settings as included in QuickFIX/J https://quantex.com/qfixdpl/quickfix/pull/632 + +## 0.9.2 (April 23, 2024) + +### BUG FIXES +* Prevent message queue blocking in the case of network connection trouble https://quantex.com/qfixdpl/quickfix/pull/615 https://quantex.com/qfixdpl/quickfix/pull/628 +* Corrects validation of multiple repeating groups with different fields https://quantex.com/qfixdpl/quickfix/pull/623 + +## 0.9.1 (April 15, 2024) + +### BUG FIXES +* Preserve original body when resending https://quantex.com/qfixdpl/quickfix/pull/624 + +## 0.9.0 (November 13, 2023) + +### FEATURES +* Add Weekdays config setting as included in QuickFIX/J https://quantex.com/qfixdpl/quickfix/pull/590 +* `MessageStore` Refactor + +The message store types external to a quickfix-go application have been refactored into individual sub-packages within `quickfix`. The benefit of this is that the dependencies for these specific store types are no longer included in the quickfix package itself, so many projects depending on the quickfix package will no longer be bloated with large indirect dependencies if they are not specifically implemented in your application. This applies to the `mongo` (MongoDB), `file` (A file on-disk), and `sql` (Any db accessed with a go sql driver interface). The `memorystore` (in-memory message store) syntax remains unchanged. The minor drawback to this is that with some re-packaging came some minor syntax changes. See https://quantex.com/qfixdpl/quickfix/issues/547 and https://quantex.com/qfixdpl/quickfix/pull/592 for more information. The relevant examples are below. + +MONGO +```go +import "quantex.com/qfixdpl/quickfix" + +... +acceptor, err = quickfix.NewAcceptor(app, quickfix.NewMongoStoreFactory(appSettings), appSettings, fileLogFactory) +``` +becomes +```go +import ( + "quantex.com/qfixdpl/quickfix" + "quantex.com/qfixdpl/quickfix/store/mongo" +) + +... +acceptor, err = quickfix.NewAcceptor(app, mongo.NewStoreFactory(appSettings), appSettings, fileLogFactory) +``` + +FILE +```go +import "quantex.com/qfixdpl/quickfix" + +... +acceptor, err = quickfix.NewAcceptor(app, quickfix.NewFileStoreFactory(appSettings), appSettings, fileLogFactory) +``` +becomes +```go +import ( + "quantex.com/qfixdpl/quickfix" + "quantex.com/qfixdpl/quickfix/store/file" +) + +... +acceptor, err = quickfix.NewAcceptor(app, file.NewStoreFactory(appSettings), appSettings, fileLogFactory) +``` + +SQL + +```go +import "quantex.com/qfixdpl/quickfix" + +... +acceptor, err = quickfix.NewAcceptor(app, quickfix.NewSQLStoreFactory(appSettings), appSettings, fileLogFactory) +``` +becomes +```go +import ( + "quantex.com/qfixdpl/quickfix" + "quantex.com/qfixdpl/quickfix/store/sql" +) + +... +acceptor, err = quickfix.NewAcceptor(app, sql.NewStoreFactory(appSettings), appSettings, fileLogFactory) +``` + + +### ENHANCEMENTS +* Acceptance suite store type expansions https://quantex.com/qfixdpl/quickfix/pull/596 and https://quantex.com/qfixdpl/quickfix/pull/591 +* Support Go v1.21 https://quantex.com/qfixdpl/quickfix/pull/589 + + +### BUG FIXES +* Resolves outstanding issues with postgres db creation syntax and `pgx` driver https://quantex.com/qfixdpl/quickfix/pull/598 +* Fix sequence number bug when storage fails https://quantex.com/qfixdpl/quickfix/pull/432 + + +## 0.8.1 (October 27, 2023) + +BUG FIXES + +* Remove initiator wait [GH 587] +* for xml charset and bug of "Incorrect NumInGroup" [GH 368, 363, 365, 366] +* Allow time.Duration or int for timeouts [GH 477] +* Trim extra non-ascii characters that can arise from manually editing [GH 463, 464] + +## 0.8.0 (October 25, 2023) + +ENHANCEMENTS + +* Remove tag from field map [GH 544] +* Add message.Bytes() to avoid string conversion [GH 546] +* Check RejectInvalidMessage on FIXT validation [GH 572] + +BUG FIXES + +* Fix repeating group read tags lost [GH 462] +* Acceptance test result must be predictable [GH 578] +* Makes event timer stop idempotent [GH 580, 581] +* Added WaitGroup Wait in Initiator [GH 584] + +## 0.7.0 (January 2, 2023) + +FEATURES + +* PersistMessages Config [GH 297] +* MaxLatency [GH 242] +* ResetOnDisconnect Configuration [GH 68] +* Support for High Precision Timestamps [GH 288] +* LogonTimeout [GH 295] +* LogoutTimeout [GH 296] +* Socks Proxy [GH 375] + +ENHANCEMENTS + +* Add SocketUseSSL parameter to allow SSL/TLS without client certs [GH 311] +* Support for RejectInvalidMessage configuration [GH 336] +* Add deep copy for Messages [GH 338] +* Add Go Module support [GH 340] +* Support timeout on ssl connection [GH 347, 349] +* Dynamic Sessions [GH 521] +* Upgrade Mongo Driver to support transactions [GH 527] + +BUG FIXES + +* header and trailer templates use rootpath [GH 302] +* Initiator stop panic if stop chan's already closed [GH 359] +* Connection closed when inbound logon has a too-low sequence number [GH 369] +* TLS server name config [GH 384] +* Fix concurrent map write [GH 436] +* Race condition during bilateral initial resend request [GH 439] +* Deadlock when disconnecting dynamic session [GH 524] +* Align session's ticker with round second [GH 533] +* Seqnum persist and increment fix [GH 528] + + +## 0.6.0 (August 14, 2017) + +FEATURES + +* CheckLatency [GH 241, 266] +* ResendRequestChunkSize [GH 243, 245] +* EnableLastMsgSeqNumProcessed [GH 253, 256] + +ENHANCEMENTS + +* config.SocketTLSForTesting(bool) [GH 235] +* API Interface Enhancements [GH 251, 252, 254, 255, 257, 258, 259] +* Misc. Performance Optimizations [GH 260, 261, 263, 264, 265, 268, 270, 271, 272, 273, 274, 275] +* TLS Configuration [GH 279, 280] +* Use data dictionary for parsing fix messages [GH 281] + +BUG FIXES + +* Resend logon fix [GH 244] +* PossDup messages with seqnum too low should not be sent to FromCallbacks [GH 246, 247] +* Router should not reject admin messages or business rejects [GH 249, 250] +* Fixes file log output for incoming, outgoing [GH 262] +* message.String() returns rawMessage if set, builds otherwise [GH 269] +* Use timestamp with time zone for postgres sql [GH 286] + + +## 0.5.0 (September 1, 2016) + +FEATURES + +* Session Scheduling [GH 31, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 211, 212, 218, 220] +* TimeZone configuration [GH 206] +* StartDay, EndDay for week long sessions [GH 207, 239] +* Support for connection over SSL [GH 63, 193] +* SocketConnectHost/Port [GH 65, 217] +* ResetOnLogout Configuration enhancement [GH 67, 192] +* SocketAcceptAddress, ipv6 support [GH 83, 215] +* RefreshOnLogon [GH 214] + +ENHANCEMENTS + +* Reject Logon Support [GH 57, 225] +* FIX Decimal [GH 114, 223, 224, 227, 228] +* test refactoring, leveraging testify mock assertions [GH 186] +* KISS on registry, session management [GH 208] +* moving and renaming test jigs [GH 210] +* Config Enhancements [GH 216] +* travis uses go 1.7 [GH 219] +* adds 'generated.go' suffix to generated source [GH 221] +* vendored deps GH [GH 222, 226] +* renames SQLStore config settings [GH 229] +* Add FieldMap.{SetInt, SetString} [GH 236] + + +BUG FIXES + +* DefaultApplVerID Configuration not translating enum names [GH 89, 213] +* Dropped issues in logout state [GH 187, 188] +* correctly increments in target seq num on logout for in session state [GH 189] +* SendToTarget should return an error if toApp returns DoNotSend [GH 190, 191] +* Logon fix [GH 194] +* onlogout calls depend on session state [GH 199] +* fixes bug in resend state where resend response is processed incomplete [GH 230] +* fixes logic around logon message with sequence number too high [GH 231] +* SequenceReset, Resent Messages not hitting ToAdmin/ToApp [GH 232, 233] +* Next MsgSeqNo after received ResetSeqNumFlag=Y [GH 238, 240] + + +## 0.4.0 (August 1, 2016) + +FEATURES + +* ReconnectInterval Initiator Configuration [GH 66, 161] + +ENHANCEMENTS + +* Generate Getters for messages [GH 118] +* Drop generate-* apps into cmd/ [GH 125, 150] +* Misc field type refactoring [GH 145] +* Cmd gen [GH 146, 147] +* refactoring enum generation [GH 148] +* pipelining generation [GH 149] +* Sending a message to an unlogged-in session, results an error [GH 173, 182] +* adds event logging related to session events [GH 175] +* Error handling around session code enhancement [GH 176] +* refactoring of session code [GH 183] +* Gen header beginstring [GH 184] + +BUG FIXES + +* Do not incr target seq num when seq num too high [GH 151] +* can't parse securitylist message [GH 153, 155] +* Concurrent map operations on Acceptor.Stop() [GH 156] +* Return requiredConfigurationMissing when "FileStorePath" not found [GH 157] +* Checks around HeartBtInt configuration [GH 158] +* Removed complexity around closing Initiator sessions [GH 159] +* Proper FIX logout sequence [GH 160] +* Session logic doesn't account for a failure when calling messageStore methods (e.g. persisting a message) [GH 162] +* Session event loop [GH 164] +* Session event loop follow up [GH 165] +* Handle OnLogon/Logout callbacks in user space [GH 167] +* Session deadlocks if both initiator and acceptor enter the resend state [GH 169, 179] +* Initiator.Stop() does not wait for Acceptor's logout response, causing a resend on next logon [GH 170, 172] +* Reset peer timer after logon [GH 171] +* Ensure OnLogon is called even if seq num too high [GH 174] +* increment target seq num on logout [GH 177] +* fixes bogus resend logic [GH 178] +* Session forgets it is in resend state [GH 180, 181] +* fixes donotsend logic [GH 185] + +## 0.3.0 (June 3, 2016) + +FEATURES + +* ValidateFieldsOutOfOrder Configuration Option [GH 107] + +ENHANCEMENTS + +* Datadictionary tests [GH 108] +* Proposal to add public method to convert raw fix message to quickfix.Message [GH 110] +* Make gen package public [GH 113] +* Make gen import path relative [GH 119] +* Validator interface [GH 120] +* Expose IncorrectDataFormat [GH 121] +* Spelling, fmtness [GH 123] +* More verbose error text on conditionally required field BMR [GH 131] +* better error handling in gen package [GH 134] +* Include timestamp in messages file log [GH 135] +* extracts repeating group interface [GH 137] +* Header, Body, Trailer FieldMap types [GH 138] +* Datadictionary/Gen refactor [GH 140] +* Gen value timestamp [GH 141] +* Slight gen revert [GH 142] +* replaced regex with faster impl for float parsing [GH 143] +* Expose sql.DB's SetConnMaxLifetime() in settings [GH 144, 139] + +BUG FIXES + +* Routing Incorrect for FIXT [GH 101] +* Validation Error for component tag [GH 102] +* Unmarshal error for repeating Group [GH 103] +* Marshaler/Reflector tries to convert time.Time struct into fix format [GH 109] +* nil pointer panic if no config.DataDictionary specified [GH 127] +* fixes required group validation error [GH 129] +* RefTagID is not known to BusinessMessageReject type [GH 130] + +## 0.2.0 (April 19, 2016) + +FEATURES + +* Persisted Store [GH 32] +* Initializer Constructors for Generated Messages [GH 69] +* Field Setters for generated messages [GH 70] +* Support for optional components, component setters [GH 79] +* Setters for repeating groups in components [GH 87] +* DB Store [GH 88] + +ENHANCEMENTS + +* Gen refactor [GH 78] +* Refactoring data dictionary pkg [GH 93] + +BUG FIXES + +* Initiator panic if connection closed [GH 59] +* New logs overrides old ones [GH 72] +* Session sending message timeout [GH 80] +* Potential FIX50 Market Data marshaling bug [GH 91] +* Allow settings values to contain equals signs [GH 97] +* Error when trying to unmarshal FIX message (FIX 5.0) [GH 99] + +## 0.1.0 (February 21, 2016) + +* Initial release diff --git a/quickfix/CONTRIBUTING.md b/quickfix/CONTRIBUTING.md new file mode 100644 index 0000000..2f86a01 --- /dev/null +++ b/quickfix/CONTRIBUTING.md @@ -0,0 +1,18 @@ +# Contribution Guidelines + +We welcome pull requests, bug fixes and issue reports. + +Please direct questions about using the library to the [Mailing List](https://groups.google.com/forum/#!forum/quickfixgo). + +Before proposing a large change, please discuss your change by raising an issue. + +## Submitting Changes + +* Push your changes to a topic branch in your fork of the repository +* Submit a pull request to the repository in the QuickFIXGo Organization + +## Notes + +* If you report a bug and do not include a fix, please include a failing test +* Generally, contributions without tests will not be accepted +* Contributions that fail the automated build will not be accepted diff --git a/quickfix/LICENSE b/quickfix/LICENSE new file mode 100644 index 0000000..273a59d --- /dev/null +++ b/quickfix/LICENSE @@ -0,0 +1,46 @@ +The QuickFIX Software License, Version 1.0 + +Copyright (c) 2001- quickfixengine.org All rights +reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. The end-user documentation included with the redistribution, + if any, must include the following acknowledgment: + "This product includes software developed by + quickfixengine.org (http://www.quickfixengine.org/)." + Alternately, this acknowledgment may appear in the software itself, + if and wherever such third-party acknowledgments normally appear. + +4. The names "QuickFIX" and "quickfixengine.org" must + not be used to endorse or promote products derived from this + software without prior written permission. For written + permission, please contact ask@quickfixengine.org + +5. Products derived from this software may not be called "QuickFIX", + nor may "QuickFIX" appear in their name, without prior written + permission of quickfixengine.org + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL QUICKFIXENGINE.ORG OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + diff --git a/quickfix/Makefile b/quickfix/Makefile new file mode 100644 index 0000000..e734b0d --- /dev/null +++ b/quickfix/Makefile @@ -0,0 +1,92 @@ + +all: vet test + +clean: + rm -rf gen + +generate: clean + mkdir -p gen; cd gen; go run ../cmd/generate-fix/generate-fix.go -pkg-root=quantex.com/qfixdpl/quickfix/gen ../spec/*.xml + +generate-udecimal: clean + mkdir -p gen; cd gen; go run ../cmd/generate-fix/generate-fix.go -use-udecimal=true -pkg-root=quantex.com/qfixdpl/quickfix/gen ../spec/*.xml + +fmt: + gofmt -l -w -s $(shell find . -type f -name '*.go') + +vet: + go vet `go list ./... | grep -v quickfix/gen` + +test: + MONGODB_TEST_CXN=mongodb://db:27017 go test -v -cover `go list ./... | grep -v quickfix/gen` + +linters-install: + @golangci-lint --version >/dev/null 2>&1 || { \ + echo "installing linting tools..."; \ + curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s v1.64.6; \ + } + +lint: linters-install + golangci-lint run + +# An easy way to run the linter without going through the install process - +# docker run -t --rm -v $(pwd):/app -w /app golangci/golangci-lint:v1.64.6 golangci-lint run -v +# See https://golangci-lint.run/welcome/install/ for more details. + +# --------------------------------------------------------------- +# Targets related to running acceptance tests - + +ifdef STORE_TYPE +STORE := $(STORE_TYPE) +else +STORE := memory +endif + +ifdef ACCEPTANCE_SET +TEST_SET := $(ACCEPTANCE_SET) +else +TEST_SET := server +endif + +build-test-srv: + cd _test; go build -v -o echo_server ./test-server/ +fix40: + cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5001 $(STORE) "definitions/$(TEST_SET)/$@/*.def" +fix41: + cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5002 $(STORE) "definitions/$(TEST_SET)/$@/*.def" +fix42: + cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5003 $(STORE) "definitions/$(TEST_SET)/$@/*.def" +fix43: + cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5004 $(STORE) "definitions/$(TEST_SET)/$@/*.def" +fix44: + cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5005 $(STORE) "definitions/$(TEST_SET)/$@/*.def" +fix50: + cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5006 $(STORE) "definitions/$(TEST_SET)/$@/*.def" +fix50sp1: + cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5007 $(STORE) "definitions/$(TEST_SET)/$@/*.def" +fix50sp2: + cd _test; ./runat.sh cfg/$(TEST_SET)/$@.cfg 5008 $(STORE) "definitions/$(TEST_SET)/$@/*.def" + +ACCEPT_SUITE=fix40 fix41 fix42 fix43 fix44 fix50 fix50sp1 fix50sp2 +accept: $(ACCEPT_SUITE) + +.PHONY: test $(ACCEPT_SUITE) +# --------------------------------------------------------------- + +# --------------------------------------------------------------- +# These targets are specific to the Github CI Runner - + +build-src: + go build -v `go list ./...` + +build: build-src build-test-srv + +test-ci: + go test -v -cover `go list ./... | grep -v quickfix/gen` + +generate-ci: clean + mkdir -p gen; cd gen; go run ../cmd/generate-fix/generate-fix.go -pkg-root=quantex.com/qfixdpl/quickfix/gen ../spec/$(shell echo $(FIX_TEST) | tr '[:lower:]' '[:upper:]').xml; + +generate-ci-udecimal: clean + mkdir -p gen; cd gen; go run ../cmd/generate-fix/generate-fix.go -use-udecimal=true -pkg-root=quantex.com/qfixdpl/quickfix/gen ../spec/$(shell echo $(FIX_TEST) | tr '[:lower:]' '[:upper:]').xml; + +# --------------------------------------------------------------- diff --git a/quickfix/README.md b/quickfix/README.md new file mode 100644 index 0000000..e43e13c --- /dev/null +++ b/quickfix/README.md @@ -0,0 +1,156 @@ +# QuickFIX/Go + +[![Build Status](https://quantex.com/qfixdpl/quickfix/workflows/CI/badge.svg)](https://quantex.com/qfixdpl/quickfix/actions) [![GoDoc](https://godoc.org/quantex.com/qfixdpl/quickfix?status.png)](https://godoc.org/quantex.com/qfixdpl/quickfix) [![Go Report Card](https://goreportcard.com/badge/quantex.com/qfixdpl/quickfix)](https://goreportcard.com/report/quantex.com/qfixdpl/quickfix) + +Open Source [FIX Protocol](http://www.fixprotocol.org/) library implemented in Go + +### Looking for help with `MessageStore` syntax changes? +See v0.9.0 release notes [here](https://quantex.com/qfixdpl/quickfix/releases/tag/v0.9.0) + + +## About +

QuickFIX/Go is a FIX Protocol Community implementation for the Go programming language.

+ + + +
+Sponsored by Connamara + +## Installation + +With [Go module](https://github.com/golang/go/wiki/Modules) support, simply add the following import + +``` +import "quantex.com/qfixdpl/quickfix" +``` + +to your code, and then `go [build|run|test]` will automatically fetch the necessary dependencies. + +Otherwise, run the following Go command to install the `quickfix` package: + +```sh +go get -u quantex.com/qfixdpl/quickfix +``` + +## Getting Started + +* [QuickFIX User Manual](https://quickfixengine.org/go/documentation/) +* [Go API Documentation](https://godoc.org/quantex.com/qfixdpl/quickfix) +* See [examples](https://github.com/quickfixgo/examples) for some simple examples of using QuickFIX/Go. + +## FIX Messaging Model +To send and receive messages, your application will need a few additional packages. + +QuickFIX/Go maintains separate packages for tags, fields, enums, messages, and message components auto-generated from the FIX 4.0 - FIX5.0SP2 XML specifications- + +* [Tag](https://github.com/quickfixgo/tag) +* [Field](https://github.com/quickfixgo/field) +* [Enum](https://github.com/quickfixgo/enum) +* [FIX 4.0](https://github.com/quickfixgo/fix40) +* [FIX 4.1](https://github.com/quickfixgo/fix41) +* [FIX 4.2](https://github.com/quickfixgo/fix42) +* [FIX 4.3](https://github.com/quickfixgo/fix43) +* [FIX 4.4](https://github.com/quickfixgo/fix44) +* [FIX 5.0](https://github.com/quickfixgo/fix50) +* [FIX 5.0 SP1](https://github.com/quickfixgo/fix50sp1) +* [FIX 5.0 SP2](https://github.com/quickfixgo/fix50sp2) +* [FIXT 1.1](https://github.com/quickfixgo/fixt11) + +For most FIX applications, these generated resources are sufficient. Custom FIX applications may generate source specific to the FIX spec of that application using the `generate-fix` tool included with QuickFIX/Go. + +Following installation, `generate-fix` is installed to `$GOPATH/bin/generate-fix`. Run `$GOPATH/bin/generate-fix --help` for usage instructions. + +## General Support +

Github Discussions

+ +

Our Github Discussions Board is free, public, and easily searchable. It’s the preferred method of user support from the QuickFIX/Go team. + +

Please provide as much detail as you can when asking a question, and include relevant configurations and code snippets.

+ +

FIX Protocol

+ +

More information about the FIX protocol can be found at the FIX Protocol website. + +

Bugs and Issues

+ +

Bugs and issues can be submitted by anyone through our GitHub repository issues list.

+ +

Note: Please do not submit questions or help requests to the issues list. It is for bugs and issues. If you need help, please use the Discussions board as described above and you’ll be able to send your question to the entire community.

+ +

GitHub Issues

+ +

Please provide sample code, logs, and a description of the problem when the issue is submitted.

+ +

We will try to address new issues as quickly as possible, and we welcome contributions for bug fixes and new features!

+ +## Commercial Support +

Connamara Systems offers commercial support for developers who are integrating any of the QuickFIX implementations (Go, C++, Java, .NET). The support is offered in 10-hour bundles and grants developers access, via telephone or email, to the team that created QuickFIX/Go, QuickFIX/n, and are maintainers of QuickFIX.

+ +

In addition to offering QuickFIX support, Connamara delivers Made-To-Measure Trading Solutions by bridging the gap between buy and build. By using internally developed trading platform components, Connamara delivers the best of off-the-shelf ISV solutions and custom application development. Coupled with Connamara’s unique licensing model, trading firms can get the best of both build and buy.

+ + +## Contributing + +If you wish to work on QuickFIX/Go itself, you will need [Docker](https://docs.docker.com/get-docker/) and [VSCode](https://code.visualstudio.com/download) on your machine. + +* Clone the repo and open it with VSCode with Docker running +* This repo comes with vscode devcontainer configs in `./.devcontainer/` +* Click the pop-up to re-open the project in the Dev Container +* This opens the project in a docker container pre-configured with everything you need + +### Build and Test + +The default make target runs [go vet](https://godoc.org/golang.org/x/tools/cmd/vet) and unit tests. + +```sh +make +``` + +If this exits with exit status 0, then everything is working! + +### Generated Code + +Generated code from the FIX40-FIX50SP2 specs are available as separate repos under the [QuickFIX/Go organization](https://github.com/quickfixgo). The source specifications for this generated code is located in `spec/`. Generated code can be identified by the `.generated.go` suffix. Any changes to generated code must be captured by changes to source in `cmd/generate-fix`. After making changes to the code generator source, run the following to re-generate the source + +```sh +make generate +``` + +If you are making changes to the generated code, please create Pull Requests for these changes for the affected repos. + +### Acceptance Tests + +QuickFIX/Go has a comprehensive acceptance test suite covering the FIX protocol. These are the same tests used across all QuickFIX implementations. + +QuickFIX/Go acceptance tests depend on ruby in path, if you are using the dev container, it is already installed + +To run acceptance tests, + +```sh +# generate code locally +make generate + +# build acceptance test rig +make build-test-srv + +# run acceptance tests +make accept +``` + +## Licensing + +This software is available under the QuickFIX Software License. Please see the [LICENSE.txt](https://quantex.com/qfixdpl/quickfix/blob/main/LICENSE.txt) for the terms specified by the QuickFIX Software License. diff --git a/quickfix/_sql/embed.go b/quickfix/_sql/embed.go new file mode 100644 index 0000000..f61fe51 --- /dev/null +++ b/quickfix/_sql/embed.go @@ -0,0 +1,6 @@ +package sql + +import "embed" + +//go:embed mssql mysql oracle postgresql sqlite3 +var FS embed.FS diff --git a/quickfix/_sql/mssql/create.bat b/quickfix/_sql/mssql/create.bat new file mode 100644 index 0000000..ac9639b --- /dev/null +++ b/quickfix/_sql/mssql/create.bat @@ -0,0 +1 @@ +osql -U sa -P -i quickfix_database.sql \ No newline at end of file diff --git a/quickfix/_sql/mssql/quickfix_database.sql b/quickfix/_sql/mssql/quickfix_database.sql new file mode 100644 index 0000000..10456d5 --- /dev/null +++ b/quickfix/_sql/mssql/quickfix_database.sql @@ -0,0 +1,65 @@ +DROP DATABASE quickfix; +CREATE DATABASE quickfix; + +USE quickfix; +CREATE TABLE sessions ( + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + creation_time DATETIME NOT NULL, + incoming_seqnum INT NOT NULL, + outgoing_seqnum INT NOT NULL, + PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, + targetcompid, targetsubid, targetlocid, session_qualifier) +); + +CREATE TABLE messages ( + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + msgseqnum INT NOT NULL, + message TEXT NOT NULL, + PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, + targetcompid, targetsubid, targetlocid, session_qualifier, + msgseqnum) +); + +CREATE TABLE event_log ( + id INT NOT NULL IDENTITY, + time DATETIME NOT NULL, + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + text TEXT NOT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE messages_log ( + id INT NOT NULL IDENTITY, + time DATETIME NOT NULL, + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + text TEXT NOT NULL, + PRIMARY KEY (id) +); diff --git a/quickfix/_sql/mysql/create.bat b/quickfix/_sql/mysql/create.bat new file mode 100644 index 0000000..a6acfc8 --- /dev/null +++ b/quickfix/_sql/mysql/create.bat @@ -0,0 +1 @@ +mysql -u root --execute="source mysql.sql"; \ No newline at end of file diff --git a/quickfix/_sql/mysql/create.sh b/quickfix/_sql/mysql/create.sh new file mode 100644 index 0000000..a6acfc8 --- /dev/null +++ b/quickfix/_sql/mysql/create.sh @@ -0,0 +1 @@ +mysql -u root --execute="source mysql.sql"; \ No newline at end of file diff --git a/quickfix/_sql/mysql/event_log_table.sql b/quickfix/_sql/mysql/event_log_table.sql new file mode 100644 index 0000000..df30d4a --- /dev/null +++ b/quickfix/_sql/mysql/event_log_table.sql @@ -0,0 +1,18 @@ +USE quickfix; + +DROP TABLE IF EXISTS event_log; + +CREATE TABLE event_log ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT, + time DATETIME NOT NULL, + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64), + text TEXT NOT NULL, + PRIMARY KEY (id) +); \ No newline at end of file diff --git a/quickfix/_sql/mysql/messages_log_table.sql b/quickfix/_sql/mysql/messages_log_table.sql new file mode 100644 index 0000000..3345881 --- /dev/null +++ b/quickfix/_sql/mysql/messages_log_table.sql @@ -0,0 +1,18 @@ +USE quickfix; + +DROP TABLE IF EXISTS messages_log; + +CREATE TABLE messages_log ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT, + time DATETIME NOT NULL, + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + text TEXT NOT NULL, + PRIMARY KEY (id) +); \ No newline at end of file diff --git a/quickfix/_sql/mysql/messages_table.sql b/quickfix/_sql/mysql/messages_table.sql new file mode 100644 index 0000000..fd8f66c --- /dev/null +++ b/quickfix/_sql/mysql/messages_table.sql @@ -0,0 +1,19 @@ +USE quickfix; + +DROP TABLE IF EXISTS messages; + +CREATE TABLE messages ( + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + msgseqnum INT NOT NULL, + message TEXT NOT NULL, + PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, + targetcompid, targetsubid, targetlocid, session_qualifier, + msgseqnum) +); \ No newline at end of file diff --git a/quickfix/_sql/mysql/mysql.sql b/quickfix/_sql/mysql/mysql.sql new file mode 100644 index 0000000..a130b5b --- /dev/null +++ b/quickfix/_sql/mysql/mysql.sql @@ -0,0 +1,5 @@ +source quickfix_database.sql; +source sessions_table.sql; +source messages_table.sql; +source messages_log_table.sql; +source event_log_table.sql; \ No newline at end of file diff --git a/quickfix/_sql/mysql/quickfix_database.sql b/quickfix/_sql/mysql/quickfix_database.sql new file mode 100644 index 0000000..b2e2df5 --- /dev/null +++ b/quickfix/_sql/mysql/quickfix_database.sql @@ -0,0 +1,2 @@ +DROP DATABASE IF EXISTS quickfix; +CREATE DATABASE quickfix; \ No newline at end of file diff --git a/quickfix/_sql/mysql/sessions_table.sql b/quickfix/_sql/mysql/sessions_table.sql new file mode 100644 index 0000000..2f27d25 --- /dev/null +++ b/quickfix/_sql/mysql/sessions_table.sql @@ -0,0 +1,19 @@ +USE quickfix; + +DROP TABLE IF EXISTS sessions; + +CREATE TABLE sessions ( + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + creation_time DATETIME NOT NULL, + incoming_seqnum INT NOT NULL, + outgoing_seqnum INT NOT NULL, + PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, + targetcompid, targetsubid, targetlocid, session_qualifier) +); \ No newline at end of file diff --git a/quickfix/_sql/oracle/messages_table.sql b/quickfix/_sql/oracle/messages_table.sql new file mode 100644 index 0000000..ddfb399 --- /dev/null +++ b/quickfix/_sql/oracle/messages_table.sql @@ -0,0 +1,14 @@ +CREATE TABLE messages ( + beginstring VARCHAR2(8) NOT NULL, + sendercompid VARCHAR2(64) NOT NULL, + sendersubid VARCHAR2(64) NOT NULL, + senderlocid VARCHAR2(64) NOT NULL, + targetcompid VARCHAR2(64) NOT NULL, + targetsubid VARCHAR2(64) NOT NULL, + targetlocid VARCHAR2(64) NOT NULL, + session_qualifier VARCHAR2(64) NOT NULL, + msgseqnum INTEGER NOT NULL, + message VARCHAR2(4000) NOT NULL, + PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, + targetcompid, targetsubid, targetlocid, session_qualifier, msgseqnum) +); \ No newline at end of file diff --git a/quickfix/_sql/oracle/sessions_table.sql b/quickfix/_sql/oracle/sessions_table.sql new file mode 100644 index 0000000..ebf2d76 --- /dev/null +++ b/quickfix/_sql/oracle/sessions_table.sql @@ -0,0 +1,15 @@ +CREATE TABLE sessions ( + beginstring VARCHAR2(8) NOT NULL, + sendercompid VARCHAR2(64) NOT NULL, + sendersubid VARCHAR2(64) NOT NULL, + senderlocid VARCHAR2(64) NOT NULL, + targetcompid VARCHAR2(64) NOT NULL, + targetsubid VARCHAR2(64) NOT NULL, + targetlocid VARCHAR2(64) NOT NULL, + session_qualifier VARCHAR2(64) NOT NULL, + creation_time TIMESTAMP NOT NULL, + incoming_seqnum INTEGER NOT NULL, + outgoing_seqnum INTEGER NOT NULL, + PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, + targetcompid, targetsubid, targetlocid, session_qualifier) +); \ No newline at end of file diff --git a/quickfix/_sql/postgresql/create.bat b/quickfix/_sql/postgresql/create.bat new file mode 100644 index 0000000..8cb54a0 --- /dev/null +++ b/quickfix/_sql/postgresql/create.bat @@ -0,0 +1,3 @@ +dropdb -U postgres --if-exists quickfix +createdb -U postgres quickfix +psql -U postgres -d quickfix -f postgresql.sql diff --git a/quickfix/_sql/postgresql/create.sh b/quickfix/_sql/postgresql/create.sh new file mode 100644 index 0000000..8cb54a0 --- /dev/null +++ b/quickfix/_sql/postgresql/create.sh @@ -0,0 +1,3 @@ +dropdb -U postgres --if-exists quickfix +createdb -U postgres quickfix +psql -U postgres -d quickfix -f postgresql.sql diff --git a/quickfix/_sql/postgresql/event_log_table.sql b/quickfix/_sql/postgresql/event_log_table.sql new file mode 100644 index 0000000..8c17a6b --- /dev/null +++ b/quickfix/_sql/postgresql/event_log_table.sql @@ -0,0 +1,16 @@ +CREATE SEQUENCE event_log_sequence; + +CREATE TABLE event_log ( + id INTEGER DEFAULT NEXTVAL('event_log_sequence'), + time TIMESTAMP WITH TIME ZONE NOT NULL, + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64), + text TEXT NOT NULL, + PRIMARY KEY (id) +); \ No newline at end of file diff --git a/quickfix/_sql/postgresql/messages_log_table.sql b/quickfix/_sql/postgresql/messages_log_table.sql new file mode 100644 index 0000000..6cdd363 --- /dev/null +++ b/quickfix/_sql/postgresql/messages_log_table.sql @@ -0,0 +1,16 @@ +CREATE SEQUENCE messages_log_sequence; + +CREATE TABLE messages_log ( + id INTEGER DEFAULT NEXTVAL('messages_log_sequence'), + time TIMESTAMP WITH TIME ZONE NOT NULL, + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64), + text TEXT NOT NULL, + PRIMARY KEY (id) +); \ No newline at end of file diff --git a/quickfix/_sql/postgresql/messages_table.sql b/quickfix/_sql/postgresql/messages_table.sql new file mode 100644 index 0000000..38507c0 --- /dev/null +++ b/quickfix/_sql/postgresql/messages_table.sql @@ -0,0 +1,15 @@ +CREATE TABLE messages ( + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + msgseqnum INTEGER NOT NULL, + message TEXT NOT NULL, + PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, + targetcompid, targetsubid, targetlocid, session_qualifier, + msgseqnum) +); \ No newline at end of file diff --git a/quickfix/_sql/postgresql/postgresql.sql b/quickfix/_sql/postgresql/postgresql.sql new file mode 100644 index 0000000..c54d0b9 --- /dev/null +++ b/quickfix/_sql/postgresql/postgresql.sql @@ -0,0 +1,4 @@ +\i sessions_table.sql; +\i messages_table.sql; +\i messages_log_table.sql; +\i event_log_table.sql; \ No newline at end of file diff --git a/quickfix/_sql/postgresql/sessions_table.sql b/quickfix/_sql/postgresql/sessions_table.sql new file mode 100644 index 0000000..4abbe16 --- /dev/null +++ b/quickfix/_sql/postgresql/sessions_table.sql @@ -0,0 +1,15 @@ +CREATE TABLE sessions ( + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + creation_time TIMESTAMP WITH TIME ZONE NOT NULL, + incoming_seqnum INTEGER NOT NULL, + outgoing_seqnum INTEGER NOT NULL, + PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, + targetcompid, targetsubid, targetlocid, session_qualifier) +); \ No newline at end of file diff --git a/quickfix/_sql/sqlite3/event_log_table.sql b/quickfix/_sql/sqlite3/event_log_table.sql new file mode 100644 index 0000000..095eaf3 --- /dev/null +++ b/quickfix/_sql/sqlite3/event_log_table.sql @@ -0,0 +1,15 @@ +DROP TABLE IF EXISTS event_log; + +CREATE TABLE event_log ( + id INTEGER PRIMARY KEY NOT NULL, + time DATETIME NOT NULL, + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64), + text TEXT NOT NULL +); diff --git a/quickfix/_sql/sqlite3/messages_log_table.sql b/quickfix/_sql/sqlite3/messages_log_table.sql new file mode 100644 index 0000000..865caf5 --- /dev/null +++ b/quickfix/_sql/sqlite3/messages_log_table.sql @@ -0,0 +1,15 @@ +DROP TABLE IF EXISTS messages_log; + +CREATE TABLE messages_log ( + id INTEGER PRIMARY KEY NOT NULL, + time DATETIME NOT NULL, + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + text TEXT NOT NULL +); diff --git a/quickfix/_sql/sqlite3/messages_table.sql b/quickfix/_sql/sqlite3/messages_table.sql new file mode 100644 index 0000000..77515f4 --- /dev/null +++ b/quickfix/_sql/sqlite3/messages_table.sql @@ -0,0 +1,17 @@ +DROP TABLE IF EXISTS messages; + +CREATE TABLE messages ( + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + msgseqnum INT NOT NULL, + message TEXT NOT NULL, + PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, + targetcompid, targetsubid, targetlocid, session_qualifier, + msgseqnum) +); diff --git a/quickfix/_sql/sqlite3/sessions_table.sql b/quickfix/_sql/sqlite3/sessions_table.sql new file mode 100644 index 0000000..1739896 --- /dev/null +++ b/quickfix/_sql/sqlite3/sessions_table.sql @@ -0,0 +1,17 @@ +DROP TABLE IF EXISTS sessions; + +CREATE TABLE sessions ( + beginstring CHAR(8) NOT NULL, + sendercompid VARCHAR(64) NOT NULL, + sendersubid VARCHAR(64) NOT NULL, + senderlocid VARCHAR(64) NOT NULL, + targetcompid VARCHAR(64) NOT NULL, + targetsubid VARCHAR(64) NOT NULL, + targetlocid VARCHAR(64) NOT NULL, + session_qualifier VARCHAR(64) NOT NULL, + creation_time DATETIME NOT NULL, + incoming_seqnum INT NOT NULL, + outgoing_seqnum INT NOT NULL, + PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, + targetcompid, targetsubid, targetlocid, session_qualifier) +); diff --git a/quickfix/_test/Comparator.rb b/quickfix/_test/Comparator.rb new file mode 100644 index 0000000..b83bbe9 --- /dev/null +++ b/quickfix/_test/Comparator.rb @@ -0,0 +1,72 @@ +#**************************************************************************** +# Copyright (c) quickfixengine.org All rights reserved. +# +# This file is part of the QuickFIX FIX Engine +# +# This file may be distributed under the terms of the quickfixengine.org +# license as defined by quickfixengine.org and appearing in the file +# LICENSE included in the packaging of this file. +# +# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +# See http://www.quickfixengine.org/LICENSE for licensing information. +# +# Contact ask@quickfixengine.org if any conditions of this licensing are +# not clear to you. +#**************************************************************************** + +class Comparator < Hash + + def initialize(patterns) + patterns.each_line do + | line | + line.chomp! + array = line.split("=") + num = array[0].to_i + regex = Regexp.new(array[1]) + self[num] = regex; + end + end + + def compare(left, right) + @reason = nil + left_array = left.split("\001") + right_array = right.split("\001") + # check for number of fields + if left_array.size != right_array.size + @reason = "Number of fields do not match" + return false + end + left_array.each_index do + | index | + left_field = left_array[index].split("=") + right_field = right_array[index].split("=") + # check if field is in same order + if left_field[0] != right_field[0] + @reason = "Expected field (" + left_field[0] + ") but found field (" + right_field[0] + ")" + return false + end + + regexp = self[left_field[0].to_i] + # do a straight comparison or regex comparison + if regexp == nil + if left_field[1] != right_field[1] + @reason = "Value in field (" + left_field[0] + ") should be (" + left_field[1] + ") but was (" + right_field[1] + ")" + return false + end + else + if !(regexp === right_field[1]) + @reason = "Field (" + left_field[0] + ") does not match pattern" + return false + end + end + end + return true + end + + def reason() + return @reason + end + +end diff --git a/quickfix/_test/ComparatorTestCase.rb b/quickfix/_test/ComparatorTestCase.rb new file mode 100644 index 0000000..e47f5fa --- /dev/null +++ b/quickfix/_test/ComparatorTestCase.rb @@ -0,0 +1,37 @@ +require 'Comparator' +require 'runit/testcase' + +class ComparatorTestCase < RUNIT::TestCase + + def test_parsePatterns + patterns = "10=\\d{1,3}\n52=\\d{8}-\\d2:\\d2:\\d2\n" + comp = Comparator.new(patterns) + assert_equals(/\d{1,3}/, comp[10]) + assert_equals(/\d{8}-\d2:\d2:\d2/, comp[52]) + end + + def test_compare + patterns = "10=\\d{1,3}\n52=\\d{8}-\\d{2}:\\d{2}:\\d{2}\n" + comp = Comparator.new(patterns) + # matching fields + assert(comp.compare("1=hello\0012=goodbye\001", "1=hello\0012=goodbye\001")) + assert(comp.reason == nil) + # non-matching field + assert(!comp.compare("1=helloo\0012=goodbye\001", "1=hello\0012=goodbye\001")) + assert(comp.reason == "Value in field (1) should be (helloo) but was (hello)") + # out of order fields + assert(!comp.compare("2=hello\0011=goodbye\001", "1=hello\0012=goodbye\001")) + assert(comp.reason == "Expected field (2) but found field (1)") + # different number of fields + assert(!comp.compare("1=hello\001", "1=hello\0012=goodbye\001")) + assert(comp.reason == "Number of fields do not match") + # mathing non-deterministic field + assert(comp.compare( + "1=hello\0012=goodbye\00152=12345678-12:23:34\001", "1=hello\0012=goodbye\00152=87654321-98:87:76\001")) + # non-matching non-deterministic field + assert(!comp.compare( + "1=hello\0012=goodbye\00152=12345678-12:23:34\001", "1=hello\0012=goodbye\00152=7654321-98:87:76\001")) + assert(comp.reason == "Field (52) does not match pattern") + end + +end diff --git a/quickfix/_test/FixParser.rb b/quickfix/_test/FixParser.rb new file mode 100644 index 0000000..fbe1671 --- /dev/null +++ b/quickfix/_test/FixParser.rb @@ -0,0 +1,53 @@ +#**************************************************************************** +# Copyright (c) quickfixengine.org All rights reserved. +# +# This file is part of the QuickFIX FIX Engine +# +# This file may be distributed under the terms of the quickfixengine.org +# license as defined by quickfixengine.org and appearing in the file +# LICENSE included in the packaging of this file. +# +# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +# See http://www.quickfixengine.org/LICENSE for licensing information. +# +# Contact ask@quickfixengine.org if any conditions of this licensing are +# not clear to you. +#**************************************************************************** + +require "socket" + +class FixParser + + def initialize(io) + @io = io + end + + def readFixMessage() + if(@io.eof?) + raise "Was disconnected, expected data" + end + + m = "" + # read to begining of MsgLen field + m = @io.gets("\0019=") + # read contents of MsgLen field + length = @io.gets("\001") + m += length + length.chop! + + # regex checks to make sure length is an integer + # if it isn't there is nothing we can do so + # close the connection + if( (/^\d*$/ === length) == nil ) + @io.close + end + # read body + m += @io.read(Integer(length)) + # read CheckSum + m += @io.gets("\001") + return m + end + +end diff --git a/quickfix/_test/FixParserTestCase.rb b/quickfix/_test/FixParserTestCase.rb new file mode 100644 index 0000000..a6fbe92 --- /dev/null +++ b/quickfix/_test/FixParserTestCase.rb @@ -0,0 +1,46 @@ +require 'FixParser' +require 'runit/testcase' +require "thread" +require 'SocketServer' + +class FixParserTestCase < RUNIT::TestCase + + def test_readFixMessage + fixMsg1 = "8=FIX.4.2\0019=12\00135=A\001108=30\00110=31\001" + fixMsg2 = "8=FIX.4.2\0019=17\00135=4\00136=88\001123=Y\00110=34\001" + + server = SocketServer.new + def server.message=(m) + @message = m + end + + def server.connectAction(s) + end + + def server.receiveAction(s) + s.write(@message) + end + + def server.disconnectAction(s) + end + + server.message = fixMsg1 + fixMsg2 + Thread.start do + server.listen(RUNIT::TestCase.port) + end + server.wait + + s = TCPSocket.open("localhost", RUNIT::TestCase.port) + parser = FixParser.new(s) + begin + assert_equals(fixMsg1, parser.readFixMessage) + assert_equals(fixMsg2, parser.readFixMessage) + rescue IOError + # I have no idea why this is being thrown + end + + s.close + server.stop() + end + +end diff --git a/quickfix/_test/Reflector.rb b/quickfix/_test/Reflector.rb new file mode 100644 index 0000000..3e86af7 --- /dev/null +++ b/quickfix/_test/Reflector.rb @@ -0,0 +1,150 @@ +#**************************************************************************** +# Copyright (c) quickfixengine.org All rights reserved. +# +# This file is part of the QuickFIX FIX Engine +# +# This file may be distributed under the terms of the quickfixengine.org +# license as defined by quickfixengine.org and appearing in the file +# LICENSE included in the packaging of this file. +# +# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +# See http://www.quickfixengine.org/LICENSE for licensing information. +# +# Contact ask@quickfixengine.org if any conditions of this licensing are +# not clear to you. +#**************************************************************************** + +class Reflector < Array + + def identifyMessage(message) + if [?I, ?E, ?R, ?i, ?e].include?(message[0]) + return message[0] + else + return ?X + end + end + + def processFile(messages) + lineNum = 0 + messages.each_line do + | line | + lineNum += 1 + line.chomp! + if line.empty? then + elsif (/^[IEie]\d{1},/ === line) then + cid = line[1].to_i - 48 + body = fixify!(timify!(line[3, line.length])) + else + cid = 1 + body = fixify!(timify!(line[1, line.length])) + end + + begin + processLine(lineNum, line, body, cid) + rescue + errorAction(lineNum, line); + end + end + end + + def processLine(lineNum, line, body, cid) + if line.empty? + elsif line[0] == ?\# + elsif identifyMessage(line) == ?I + initiateAction(body, cid) + elsif identifyMessage(line) == ?E + expectedAction(body, cid) + elsif identifyMessage(line) == ?i + if body == "CONNECT" + connectAction(cid) + elsif body == "DISCONNECT" + disconnectAction(cid) + elsif body.index("SET_SESSION") == 0 + setSeqnum(body) + else + raise "Syntax error: " + body + end + elsif identifyMessage(line) == ?e + if body == "CONNECT" + waitConnectAction(cid) + elsif body == "DISCONNECT" + waitDisconnectAction(cid) + else + raise "Syntax error: " + body + end + else + raise "Syntax error: " + body + end + end + + def fixify!(message) + hasLength = (message =~ /[\001]9=.*?[\001]/) + length = "" + + head = message.slice!(/^8=.*?[\001]/) + + if head == nil + return message + end + + checksum = message.slice(/[\001]10=.*[\001]$/) + if(checksum != nil) + message.slice!(/[\001]10=.*[\001]$/) + end + + message.chomp! + if hasLength == nil + length = "9=" + message.length.to_s + "\001" + end + + if checksum == nil + checksumStr = sprintf("%03d", (head + length + message).sum(8)); + checksum = "10=" + checksumStr + "\001" + end + + message.replace(head + length + message + checksum) + return message + end + + def timify!(message) + copy = "" + copy.replace(message) + t = getTime + + strtime = t.strftime("%Y%m%d-%H:%M:%S") + message.sub!("