quickfix_ruby_ud 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. checksums.yaml +7 -0
  2. data/ext/quickfix/Acceptor.cpp +257 -0
  3. data/ext/quickfix/Acceptor.h +127 -0
  4. data/ext/quickfix/Allocator.h +9 -0
  5. data/ext/quickfix/Application.h +137 -0
  6. data/ext/quickfix/DOMDocument.h +70 -0
  7. data/ext/quickfix/DataDictionary.cpp +679 -0
  8. data/ext/quickfix/DataDictionary.h +607 -0
  9. data/ext/quickfix/DataDictionaryProvider.cpp +66 -0
  10. data/ext/quickfix/DataDictionaryProvider.h +67 -0
  11. data/ext/quickfix/DatabaseConnectionID.h +98 -0
  12. data/ext/quickfix/DatabaseConnectionPool.h +84 -0
  13. data/ext/quickfix/Dictionary.cpp +157 -0
  14. data/ext/quickfix/Dictionary.h +89 -0
  15. data/ext/quickfix/Event.h +89 -0
  16. data/ext/quickfix/Except.h +39 -0
  17. data/ext/quickfix/Exceptions.h +257 -0
  18. data/ext/quickfix/Field.h +654 -0
  19. data/ext/quickfix/FieldConvertors.cpp +86 -0
  20. data/ext/quickfix/FieldConvertors.h +800 -0
  21. data/ext/quickfix/FieldMap.cpp +254 -0
  22. data/ext/quickfix/FieldMap.h +327 -0
  23. data/ext/quickfix/FieldNumbers.h +44 -0
  24. data/ext/quickfix/FieldTypes.cpp +62 -0
  25. data/ext/quickfix/FieldTypes.h +817 -0
  26. data/ext/quickfix/Fields.h +30 -0
  27. data/ext/quickfix/FileLog.cpp +176 -0
  28. data/ext/quickfix/FileLog.h +110 -0
  29. data/ext/quickfix/FileStore.cpp +369 -0
  30. data/ext/quickfix/FileStore.h +131 -0
  31. data/ext/quickfix/FixCommonFields.h +13 -0
  32. data/ext/quickfix/FixFieldNumbers.h +6132 -0
  33. data/ext/quickfix/FixFields.h +6133 -0
  34. data/ext/quickfix/FixValues.h +5790 -0
  35. data/ext/quickfix/Group.cpp +44 -0
  36. data/ext/quickfix/Group.h +78 -0
  37. data/ext/quickfix/HostDetailsProvider.cpp +79 -0
  38. data/ext/quickfix/HostDetailsProvider.h +44 -0
  39. data/ext/quickfix/HtmlBuilder.h +178 -0
  40. data/ext/quickfix/HttpConnection.cpp +914 -0
  41. data/ext/quickfix/HttpConnection.h +74 -0
  42. data/ext/quickfix/HttpMessage.cpp +229 -0
  43. data/ext/quickfix/HttpMessage.h +112 -0
  44. data/ext/quickfix/HttpParser.cpp +49 -0
  45. data/ext/quickfix/HttpParser.h +49 -0
  46. data/ext/quickfix/HttpServer.cpp +152 -0
  47. data/ext/quickfix/HttpServer.h +76 -0
  48. data/ext/quickfix/Initiator.cpp +310 -0
  49. data/ext/quickfix/Initiator.h +151 -0
  50. data/ext/quickfix/Log.cpp +71 -0
  51. data/ext/quickfix/Log.h +254 -0
  52. data/ext/quickfix/Message.cpp +617 -0
  53. data/ext/quickfix/Message.h +419 -0
  54. data/ext/quickfix/MessageCracker.h +171 -0
  55. data/ext/quickfix/MessageSorters.cpp +101 -0
  56. data/ext/quickfix/MessageSorters.h +185 -0
  57. data/ext/quickfix/MessageStore.cpp +182 -0
  58. data/ext/quickfix/MessageStore.h +164 -0
  59. data/ext/quickfix/Mutex.h +120 -0
  60. data/ext/quickfix/MySQLConnection.h +187 -0
  61. data/ext/quickfix/MySQLLog.cpp +262 -0
  62. data/ext/quickfix/MySQLLog.h +158 -0
  63. data/ext/quickfix/MySQLStore.cpp +323 -0
  64. data/ext/quickfix/MySQLStore.h +161 -0
  65. data/ext/quickfix/MySQLStubs.h +203 -0
  66. data/ext/quickfix/NullStore.cpp +40 -0
  67. data/ext/quickfix/NullStore.h +89 -0
  68. data/ext/quickfix/OdbcConnection.h +241 -0
  69. data/ext/quickfix/OdbcLog.cpp +230 -0
  70. data/ext/quickfix/OdbcLog.h +109 -0
  71. data/ext/quickfix/OdbcStore.cpp +313 -0
  72. data/ext/quickfix/OdbcStore.h +124 -0
  73. data/ext/quickfix/PUGIXML_DOMDocument.cpp +112 -0
  74. data/ext/quickfix/PUGIXML_DOMDocument.h +81 -0
  75. data/ext/quickfix/Parser.cpp +111 -0
  76. data/ext/quickfix/Parser.h +50 -0
  77. data/ext/quickfix/PostgreSQLConnection.h +163 -0
  78. data/ext/quickfix/PostgreSQLLog.cpp +263 -0
  79. data/ext/quickfix/PostgreSQLLog.h +157 -0
  80. data/ext/quickfix/PostgreSQLStore.cpp +327 -0
  81. data/ext/quickfix/PostgreSQLStore.h +160 -0
  82. data/ext/quickfix/PostgreSQLStubs.h +203 -0
  83. data/ext/quickfix/Queue.h +66 -0
  84. data/ext/quickfix/QuickfixRuby.cpp +131900 -0
  85. data/ext/quickfix/QuickfixRuby.h +56 -0
  86. data/ext/quickfix/Responder.h +41 -0
  87. data/ext/quickfix/SSLSocketAcceptor.cpp +409 -0
  88. data/ext/quickfix/SSLSocketAcceptor.h +186 -0
  89. data/ext/quickfix/SSLSocketConnection.cpp +434 -0
  90. data/ext/quickfix/SSLSocketConnection.h +221 -0
  91. data/ext/quickfix/SSLSocketInitiator.cpp +558 -0
  92. data/ext/quickfix/SSLSocketInitiator.h +203 -0
  93. data/ext/quickfix/SSLStubs.h +129 -0
  94. data/ext/quickfix/Session.cpp +1437 -0
  95. data/ext/quickfix/Session.h +343 -0
  96. data/ext/quickfix/SessionFactory.cpp +314 -0
  97. data/ext/quickfix/SessionFactory.h +84 -0
  98. data/ext/quickfix/SessionID.h +136 -0
  99. data/ext/quickfix/SessionSettings.cpp +165 -0
  100. data/ext/quickfix/SessionSettings.h +283 -0
  101. data/ext/quickfix/SessionState.h +260 -0
  102. data/ext/quickfix/Settings.cpp +160 -0
  103. data/ext/quickfix/Settings.h +56 -0
  104. data/ext/quickfix/SharedArray.h +274 -0
  105. data/ext/quickfix/SocketAcceptor.cpp +216 -0
  106. data/ext/quickfix/SocketAcceptor.h +77 -0
  107. data/ext/quickfix/SocketConnection.cpp +256 -0
  108. data/ext/quickfix/SocketConnection.h +102 -0
  109. data/ext/quickfix/SocketConnector.cpp +112 -0
  110. data/ext/quickfix/SocketConnector.h +76 -0
  111. data/ext/quickfix/SocketInitiator.cpp +241 -0
  112. data/ext/quickfix/SocketInitiator.h +76 -0
  113. data/ext/quickfix/SocketMonitor.h +26 -0
  114. data/ext/quickfix/SocketMonitor_UNIX.cpp +238 -0
  115. data/ext/quickfix/SocketMonitor_UNIX.h +101 -0
  116. data/ext/quickfix/SocketMonitor_WIN32.cpp +248 -0
  117. data/ext/quickfix/SocketMonitor_WIN32.h +99 -0
  118. data/ext/quickfix/SocketServer.cpp +163 -0
  119. data/ext/quickfix/SocketServer.h +100 -0
  120. data/ext/quickfix/ThreadedSSLSocketAcceptor.cpp +436 -0
  121. data/ext/quickfix/ThreadedSSLSocketAcceptor.h +209 -0
  122. data/ext/quickfix/ThreadedSSLSocketConnection.cpp +364 -0
  123. data/ext/quickfix/ThreadedSSLSocketConnection.h +191 -0
  124. data/ext/quickfix/ThreadedSSLSocketInitiator.cpp +434 -0
  125. data/ext/quickfix/ThreadedSSLSocketInitiator.h +193 -0
  126. data/ext/quickfix/ThreadedSocketAcceptor.cpp +242 -0
  127. data/ext/quickfix/ThreadedSocketAcceptor.h +95 -0
  128. data/ext/quickfix/ThreadedSocketConnection.cpp +227 -0
  129. data/ext/quickfix/ThreadedSocketConnection.h +89 -0
  130. data/ext/quickfix/ThreadedSocketInitiator.cpp +238 -0
  131. data/ext/quickfix/ThreadedSocketInitiator.h +78 -0
  132. data/ext/quickfix/TimeRange.cpp +227 -0
  133. data/ext/quickfix/TimeRange.h +215 -0
  134. data/ext/quickfix/Utility.cpp +639 -0
  135. data/ext/quickfix/Utility.h +255 -0
  136. data/ext/quickfix/UtilitySSL.cpp +1612 -0
  137. data/ext/quickfix/UtilitySSL.h +274 -0
  138. data/ext/quickfix/Values.h +63 -0
  139. data/ext/quickfix/config-all.h +10 -0
  140. data/ext/quickfix/config.h +10 -0
  141. data/ext/quickfix/config_unix.h +178 -0
  142. data/ext/quickfix/config_windows.h +0 -0
  143. data/ext/quickfix/dirent_windows.h +838 -0
  144. data/ext/quickfix/double-conversion/bignum-dtoa.cc +641 -0
  145. data/ext/quickfix/double-conversion/bignum-dtoa.h +84 -0
  146. data/ext/quickfix/double-conversion/bignum.cc +766 -0
  147. data/ext/quickfix/double-conversion/bignum.h +144 -0
  148. data/ext/quickfix/double-conversion/cached-powers.cc +176 -0
  149. data/ext/quickfix/double-conversion/cached-powers.h +64 -0
  150. data/ext/quickfix/double-conversion/diy-fp.cc +57 -0
  151. data/ext/quickfix/double-conversion/diy-fp.h +118 -0
  152. data/ext/quickfix/double-conversion/double-conversion.cc +994 -0
  153. data/ext/quickfix/double-conversion/double-conversion.h +543 -0
  154. data/ext/quickfix/double-conversion/fast-dtoa.cc +665 -0
  155. data/ext/quickfix/double-conversion/fast-dtoa.h +88 -0
  156. data/ext/quickfix/double-conversion/fixed-dtoa.cc +404 -0
  157. data/ext/quickfix/double-conversion/fixed-dtoa.h +56 -0
  158. data/ext/quickfix/double-conversion/ieee.h +402 -0
  159. data/ext/quickfix/double-conversion/strtod.cc +557 -0
  160. data/ext/quickfix/double-conversion/strtod.h +45 -0
  161. data/ext/quickfix/double-conversion/utils.h +374 -0
  162. data/ext/quickfix/extconf.rb +76 -0
  163. data/ext/quickfix/index.h +37 -0
  164. data/ext/quickfix/pugiconfig.hpp +77 -0
  165. data/ext/quickfix/pugixml.cpp +13237 -0
  166. data/ext/quickfix/pugixml.hpp +1516 -0
  167. data/ext/quickfix/scope_guard.hpp +215 -0
  168. data/ext/quickfix/stdint_msvc.h +254 -0
  169. data/ext/quickfix/strptime.h +7 -0
  170. data/lib/quickfix40.rb +274 -0
  171. data/lib/quickfix41.rb +351 -0
  172. data/lib/quickfix42.rb +1184 -0
  173. data/lib/quickfix43.rb +3504 -0
  174. data/lib/quickfix44.rb +14040 -0
  175. data/lib/quickfix50.rb +20051 -0
  176. data/lib/quickfix50sp1.rb +23596 -0
  177. data/lib/quickfix50sp2.rb +412444 -0
  178. data/lib/quickfix_fields.rb +79393 -0
  179. data/lib/quickfix_ruby.rb +82 -0
  180. data/lib/quickfixt11.rb +65 -0
  181. data/spec/FIX40.xml +862 -0
  182. data/spec/FIX41.xml +1282 -0
  183. data/spec/FIX42.xml +2743 -0
  184. data/spec/FIX43.xml +4230 -0
  185. data/spec/FIX44.xml +6600 -0
  186. data/spec/FIX50.xml +8142 -0
  187. data/spec/FIX50SP1.xml +9506 -0
  188. data/spec/FIX50SP2.xml +26069 -0
  189. data/spec/FIXT11.xml +252 -0
  190. data/test/DataDictionaryTestCase.rb +268 -0
  191. data/test/DictionaryTestCase.rb +112 -0
  192. data/test/FieldBaseTestCase.rb +24 -0
  193. data/test/MessageStoreTestCase.rb +19 -0
  194. data/test/MessageTestCase.rb +368 -0
  195. data/test/SessionSettingsTestCase.rb +41 -0
  196. metadata +236 -0
@@ -0,0 +1,257 @@
1
+ /* -*- C++ -*- */
2
+
3
+ /****************************************************************************
4
+ ** Copyright (c) 2001-2014
5
+ **
6
+ ** This file is part of the QuickFIX FIX Engine
7
+ **
8
+ ** This file may be distributed under the terms of the quickfixengine.org
9
+ ** license as defined by quickfixengine.org and appearing in the file
10
+ ** LICENSE included in the packaging of this file.
11
+ **
12
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14
+ **
15
+ ** See http://www.quickfixengine.org/LICENSE for licensing information.
16
+ **
17
+ ** Contact ask@quickfixengine.org if any conditions of this licensing are
18
+ ** not clear to you.
19
+ **
20
+ ****************************************************************************/
21
+
22
+ #ifndef FIX_EXCEPTIONS_H
23
+ #define FIX_EXCEPTIONS_H
24
+
25
+ #include "Utility.h"
26
+
27
+ #include <stdexcept>
28
+ #include <string>
29
+
30
+ namespace FIX {
31
+
32
+ /// Base QuickFIX exception type.
33
+ struct Exception : public std::logic_error {
34
+ Exception(const std::string &type, const std::string &detail)
35
+ : std::logic_error(detail.size() ? type + ": " + detail : type),
36
+ type(type),
37
+ detail(detail) {}
38
+ ~Exception() NOEXCEPT {}
39
+
40
+ std::string type;
41
+ std::string detail;
42
+ };
43
+
44
+ /// DataDictionary not found for BeginString or ApplVerID
45
+ struct DataDictionaryNotFound : public Exception {
46
+ DataDictionaryNotFound(const std::string &version, const std::string &what = "")
47
+ : Exception("Could not find data dictionary", what),
48
+ version(version) {}
49
+ ~DataDictionaryNotFound() NOEXCEPT {}
50
+
51
+ std::string version;
52
+ };
53
+
54
+ /// Field not found inside a message
55
+ struct FieldNotFound : public Exception {
56
+ FieldNotFound(int field = 0, const std::string &what = "")
57
+ : Exception("Field not found: " + std::to_string(field), what),
58
+ field(field) {}
59
+ int field;
60
+ };
61
+
62
+ /// Unable to convert field into its native format
63
+ struct FieldConvertError : public Exception {
64
+ FieldConvertError(const std::string &what = "")
65
+ : Exception("Could not convert field", what) {}
66
+ };
67
+
68
+ /// Unable to parse message
69
+ struct MessageParseError : public Exception {
70
+ MessageParseError(const std::string &what = "")
71
+ : Exception("Could not parse message", what) {}
72
+ };
73
+
74
+ /// Not a recognizable message
75
+ struct InvalidMessage : public Exception {
76
+ InvalidMessage(const std::string &what = "")
77
+ : Exception("Invalid message", what) {}
78
+ };
79
+
80
+ /// %Application is not configured correctly
81
+ struct ConfigError : public Exception {
82
+ ConfigError(const std::string &what = "")
83
+ : Exception("Configuration failed", what) {}
84
+ };
85
+
86
+ /// %Application encountered serious error during runtime
87
+ struct RuntimeError : public Exception {
88
+ RuntimeError(const std::string &what = "")
89
+ : Exception("Runtime error", what) {}
90
+ };
91
+
92
+ /// Tag number does not exist in specification
93
+ struct InvalidTagNumber : public Exception {
94
+ InvalidTagNumber(int field = 0, const std::string &what = "")
95
+ : Exception("Invalid tag number: " + std::to_string(field), what),
96
+ field(field) {}
97
+ int field;
98
+ };
99
+
100
+ /// Required field is not in message
101
+ struct RequiredTagMissing : public Exception {
102
+ RequiredTagMissing(int field = 0, const std::string &what = "")
103
+ : Exception("Required tag missing: " + std::to_string(field), what),
104
+ field(field) {}
105
+ int field;
106
+ };
107
+
108
+ /// Field does not belong to message
109
+ struct TagNotDefinedForMessage : public Exception {
110
+ TagNotDefinedForMessage(int field = 0, const std::string &what = "")
111
+ : Exception("Tag not defined for this message type: " + std::to_string(field), what),
112
+ field(field) {}
113
+ int field;
114
+ };
115
+
116
+ /// Field exists in message without a value
117
+ struct NoTagValue : public Exception {
118
+ NoTagValue(int field = 0, const std::string &what = "")
119
+ : Exception("Tag specified without a value: " + std::to_string(field), what),
120
+ field(field) {}
121
+ int field;
122
+ };
123
+
124
+ /// Field has a value that is out of range
125
+ struct IncorrectTagValue : public Exception {
126
+ IncorrectTagValue(int field = 0, const std::string &what = "")
127
+ : Exception("Value is incorrect (out of range) for this tag: " + std::to_string(field), what),
128
+ field(field) {}
129
+ int field;
130
+ };
131
+
132
+ /// Field has a badly formatted value
133
+ struct IncorrectDataFormat : public Exception {
134
+ IncorrectDataFormat(int field = 0, const std::string &what = "")
135
+ : Exception("Incorrect data format for value with tag: " + std::to_string(field), what),
136
+ field(field) {}
137
+ int field;
138
+ };
139
+
140
+ /// Message is not structured correctly
141
+ struct IncorrectMessageStructure : public Exception {
142
+ IncorrectMessageStructure(const std::string &what = "")
143
+ : Exception("Incorrect message structure", what) {}
144
+ };
145
+
146
+ /// Field shows up twice in the message
147
+ struct DuplicateFieldNumber : public Exception {
148
+ DuplicateFieldNumber(const std::string &what = "")
149
+ : Exception("Duplicate field number", what) {}
150
+ };
151
+
152
+ /// Not a known message type
153
+ struct InvalidMessageType : public Exception {
154
+ InvalidMessageType(const std::string &what = "")
155
+ : Exception("Invalid Message Type", what) {}
156
+ };
157
+
158
+ /// Message type not supported by application
159
+ struct UnsupportedMessageType : public Exception {
160
+ UnsupportedMessageType(const std::string &what = "")
161
+ : Exception("Unsupported Message Type", what) {}
162
+ };
163
+
164
+ /// Version of %FIX is not supported
165
+ struct UnsupportedVersion : public Exception {
166
+ UnsupportedVersion(const std::string &what = "")
167
+ : Exception("Unsupported Version", what) {}
168
+ };
169
+
170
+ /// Tag is not in the correct order
171
+ struct TagOutOfOrder : public Exception {
172
+ TagOutOfOrder(int field = 0, const std::string &what = "")
173
+ : Exception("Tag specified out of required order", what),
174
+ field(field) {}
175
+ int field;
176
+ };
177
+
178
+ /// Repeated tag not part of repeating group
179
+ struct RepeatedTag : public Exception {
180
+ RepeatedTag(int field = 0, const std::string &what = "")
181
+ : Exception("Repeated tag not part of repeating group", what),
182
+ field(field) {}
183
+ int field;
184
+ };
185
+
186
+ /// Repeated group count not equal to actual count
187
+ struct RepeatingGroupCountMismatch : public Exception {
188
+ RepeatingGroupCountMismatch(int field = 0, const std::string &what = "")
189
+ : Exception("Repeating group count mismatch", what),
190
+ field(field) {}
191
+ int field;
192
+ };
193
+
194
+ /// Indicates user does not want to send a message
195
+ struct DoNotSend : public Exception {
196
+ DoNotSend(const std::string &what = "")
197
+ : Exception("Do Not Send Message", what) {}
198
+ };
199
+
200
+ /// User wants to reject permission to logon
201
+ struct RejectLogon : public Exception {
202
+ RejectLogon(const std::string &what = "")
203
+ : Exception("Rejected Logon Attempt", what) {}
204
+ };
205
+
206
+ /// Session cannot be found for specified action
207
+ struct SessionNotFound : public Exception {
208
+ SessionNotFound(const std::string &what = "")
209
+ : Exception("Session Not Found", what) {}
210
+ };
211
+
212
+ /// IO Error
213
+ struct IOException : public Exception {
214
+ IOException(const std::string &what = "")
215
+ : Exception("IO Error", what) {}
216
+ };
217
+
218
+ /// Socket Error
219
+ struct SocketException : public Exception {
220
+ SocketException()
221
+ : Exception("Socket Error", errorToWhat()) {}
222
+
223
+ SocketException(const std::string &what)
224
+ : Exception("Socket Error", what) {}
225
+
226
+ static std::string errorToWhat() { return socket_error(); }
227
+ };
228
+
229
+ /// Socket send operation failed
230
+ struct SocketSendFailed : public SocketException {
231
+ SocketSendFailed() {}
232
+ SocketSendFailed(const std::string &what)
233
+ : SocketException(what) {}
234
+ };
235
+
236
+ /// Socket recv operation failed
237
+ struct SocketRecvFailed : public SocketException {
238
+ SocketRecvFailed(ssize_t size)
239
+ : SocketException(
240
+ size == 0 ? "Connection reset by peer."
241
+ : size < 0 ? errorToWhat()
242
+ : "Success.") {}
243
+ SocketRecvFailed(const std::string &what)
244
+ : SocketException(what) {}
245
+ };
246
+
247
+ /// Socket close operation failed
248
+ struct SocketCloseFailed : public SocketException {
249
+ SocketCloseFailed() {}
250
+ SocketCloseFailed(const std::string &what)
251
+ : SocketException(what) {}
252
+ };
253
+
254
+ /*! @} */
255
+ } // namespace FIX
256
+
257
+ #endif // FIX_EXCEPTIONS_H