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.
- checksums.yaml +7 -0
- data/ext/quickfix/Acceptor.cpp +257 -0
- data/ext/quickfix/Acceptor.h +127 -0
- data/ext/quickfix/Allocator.h +9 -0
- data/ext/quickfix/Application.h +137 -0
- data/ext/quickfix/DOMDocument.h +70 -0
- data/ext/quickfix/DataDictionary.cpp +679 -0
- data/ext/quickfix/DataDictionary.h +607 -0
- data/ext/quickfix/DataDictionaryProvider.cpp +66 -0
- data/ext/quickfix/DataDictionaryProvider.h +67 -0
- data/ext/quickfix/DatabaseConnectionID.h +98 -0
- data/ext/quickfix/DatabaseConnectionPool.h +84 -0
- data/ext/quickfix/Dictionary.cpp +157 -0
- data/ext/quickfix/Dictionary.h +89 -0
- data/ext/quickfix/Event.h +89 -0
- data/ext/quickfix/Except.h +39 -0
- data/ext/quickfix/Exceptions.h +257 -0
- data/ext/quickfix/Field.h +654 -0
- data/ext/quickfix/FieldConvertors.cpp +86 -0
- data/ext/quickfix/FieldConvertors.h +800 -0
- data/ext/quickfix/FieldMap.cpp +254 -0
- data/ext/quickfix/FieldMap.h +327 -0
- data/ext/quickfix/FieldNumbers.h +44 -0
- data/ext/quickfix/FieldTypes.cpp +62 -0
- data/ext/quickfix/FieldTypes.h +817 -0
- data/ext/quickfix/Fields.h +30 -0
- data/ext/quickfix/FileLog.cpp +176 -0
- data/ext/quickfix/FileLog.h +110 -0
- data/ext/quickfix/FileStore.cpp +369 -0
- data/ext/quickfix/FileStore.h +131 -0
- data/ext/quickfix/FixCommonFields.h +13 -0
- data/ext/quickfix/FixFieldNumbers.h +6132 -0
- data/ext/quickfix/FixFields.h +6133 -0
- data/ext/quickfix/FixValues.h +5790 -0
- data/ext/quickfix/Group.cpp +44 -0
- data/ext/quickfix/Group.h +78 -0
- data/ext/quickfix/HostDetailsProvider.cpp +79 -0
- data/ext/quickfix/HostDetailsProvider.h +44 -0
- data/ext/quickfix/HtmlBuilder.h +178 -0
- data/ext/quickfix/HttpConnection.cpp +914 -0
- data/ext/quickfix/HttpConnection.h +74 -0
- data/ext/quickfix/HttpMessage.cpp +229 -0
- data/ext/quickfix/HttpMessage.h +112 -0
- data/ext/quickfix/HttpParser.cpp +49 -0
- data/ext/quickfix/HttpParser.h +49 -0
- data/ext/quickfix/HttpServer.cpp +152 -0
- data/ext/quickfix/HttpServer.h +76 -0
- data/ext/quickfix/Initiator.cpp +310 -0
- data/ext/quickfix/Initiator.h +151 -0
- data/ext/quickfix/Log.cpp +71 -0
- data/ext/quickfix/Log.h +254 -0
- data/ext/quickfix/Message.cpp +617 -0
- data/ext/quickfix/Message.h +419 -0
- data/ext/quickfix/MessageCracker.h +171 -0
- data/ext/quickfix/MessageSorters.cpp +101 -0
- data/ext/quickfix/MessageSorters.h +185 -0
- data/ext/quickfix/MessageStore.cpp +182 -0
- data/ext/quickfix/MessageStore.h +164 -0
- data/ext/quickfix/Mutex.h +120 -0
- data/ext/quickfix/MySQLConnection.h +187 -0
- data/ext/quickfix/MySQLLog.cpp +262 -0
- data/ext/quickfix/MySQLLog.h +158 -0
- data/ext/quickfix/MySQLStore.cpp +323 -0
- data/ext/quickfix/MySQLStore.h +161 -0
- data/ext/quickfix/MySQLStubs.h +203 -0
- data/ext/quickfix/NullStore.cpp +40 -0
- data/ext/quickfix/NullStore.h +89 -0
- data/ext/quickfix/OdbcConnection.h +241 -0
- data/ext/quickfix/OdbcLog.cpp +230 -0
- data/ext/quickfix/OdbcLog.h +109 -0
- data/ext/quickfix/OdbcStore.cpp +313 -0
- data/ext/quickfix/OdbcStore.h +124 -0
- data/ext/quickfix/PUGIXML_DOMDocument.cpp +112 -0
- data/ext/quickfix/PUGIXML_DOMDocument.h +81 -0
- data/ext/quickfix/Parser.cpp +111 -0
- data/ext/quickfix/Parser.h +50 -0
- data/ext/quickfix/PostgreSQLConnection.h +163 -0
- data/ext/quickfix/PostgreSQLLog.cpp +263 -0
- data/ext/quickfix/PostgreSQLLog.h +157 -0
- data/ext/quickfix/PostgreSQLStore.cpp +327 -0
- data/ext/quickfix/PostgreSQLStore.h +160 -0
- data/ext/quickfix/PostgreSQLStubs.h +203 -0
- data/ext/quickfix/Queue.h +66 -0
- data/ext/quickfix/QuickfixRuby.cpp +131900 -0
- data/ext/quickfix/QuickfixRuby.h +56 -0
- data/ext/quickfix/Responder.h +41 -0
- data/ext/quickfix/SSLSocketAcceptor.cpp +409 -0
- data/ext/quickfix/SSLSocketAcceptor.h +186 -0
- data/ext/quickfix/SSLSocketConnection.cpp +434 -0
- data/ext/quickfix/SSLSocketConnection.h +221 -0
- data/ext/quickfix/SSLSocketInitiator.cpp +558 -0
- data/ext/quickfix/SSLSocketInitiator.h +203 -0
- data/ext/quickfix/SSLStubs.h +129 -0
- data/ext/quickfix/Session.cpp +1437 -0
- data/ext/quickfix/Session.h +343 -0
- data/ext/quickfix/SessionFactory.cpp +314 -0
- data/ext/quickfix/SessionFactory.h +84 -0
- data/ext/quickfix/SessionID.h +136 -0
- data/ext/quickfix/SessionSettings.cpp +165 -0
- data/ext/quickfix/SessionSettings.h +283 -0
- data/ext/quickfix/SessionState.h +260 -0
- data/ext/quickfix/Settings.cpp +160 -0
- data/ext/quickfix/Settings.h +56 -0
- data/ext/quickfix/SharedArray.h +274 -0
- data/ext/quickfix/SocketAcceptor.cpp +216 -0
- data/ext/quickfix/SocketAcceptor.h +77 -0
- data/ext/quickfix/SocketConnection.cpp +256 -0
- data/ext/quickfix/SocketConnection.h +102 -0
- data/ext/quickfix/SocketConnector.cpp +112 -0
- data/ext/quickfix/SocketConnector.h +76 -0
- data/ext/quickfix/SocketInitiator.cpp +241 -0
- data/ext/quickfix/SocketInitiator.h +76 -0
- data/ext/quickfix/SocketMonitor.h +26 -0
- data/ext/quickfix/SocketMonitor_UNIX.cpp +238 -0
- data/ext/quickfix/SocketMonitor_UNIX.h +101 -0
- data/ext/quickfix/SocketMonitor_WIN32.cpp +248 -0
- data/ext/quickfix/SocketMonitor_WIN32.h +99 -0
- data/ext/quickfix/SocketServer.cpp +163 -0
- data/ext/quickfix/SocketServer.h +100 -0
- data/ext/quickfix/ThreadedSSLSocketAcceptor.cpp +436 -0
- data/ext/quickfix/ThreadedSSLSocketAcceptor.h +209 -0
- data/ext/quickfix/ThreadedSSLSocketConnection.cpp +364 -0
- data/ext/quickfix/ThreadedSSLSocketConnection.h +191 -0
- data/ext/quickfix/ThreadedSSLSocketInitiator.cpp +434 -0
- data/ext/quickfix/ThreadedSSLSocketInitiator.h +193 -0
- data/ext/quickfix/ThreadedSocketAcceptor.cpp +242 -0
- data/ext/quickfix/ThreadedSocketAcceptor.h +95 -0
- data/ext/quickfix/ThreadedSocketConnection.cpp +227 -0
- data/ext/quickfix/ThreadedSocketConnection.h +89 -0
- data/ext/quickfix/ThreadedSocketInitiator.cpp +238 -0
- data/ext/quickfix/ThreadedSocketInitiator.h +78 -0
- data/ext/quickfix/TimeRange.cpp +227 -0
- data/ext/quickfix/TimeRange.h +215 -0
- data/ext/quickfix/Utility.cpp +639 -0
- data/ext/quickfix/Utility.h +255 -0
- data/ext/quickfix/UtilitySSL.cpp +1612 -0
- data/ext/quickfix/UtilitySSL.h +274 -0
- data/ext/quickfix/Values.h +63 -0
- data/ext/quickfix/config-all.h +10 -0
- data/ext/quickfix/config.h +10 -0
- data/ext/quickfix/config_unix.h +178 -0
- data/ext/quickfix/config_windows.h +0 -0
- data/ext/quickfix/dirent_windows.h +838 -0
- data/ext/quickfix/double-conversion/bignum-dtoa.cc +641 -0
- data/ext/quickfix/double-conversion/bignum-dtoa.h +84 -0
- data/ext/quickfix/double-conversion/bignum.cc +766 -0
- data/ext/quickfix/double-conversion/bignum.h +144 -0
- data/ext/quickfix/double-conversion/cached-powers.cc +176 -0
- data/ext/quickfix/double-conversion/cached-powers.h +64 -0
- data/ext/quickfix/double-conversion/diy-fp.cc +57 -0
- data/ext/quickfix/double-conversion/diy-fp.h +118 -0
- data/ext/quickfix/double-conversion/double-conversion.cc +994 -0
- data/ext/quickfix/double-conversion/double-conversion.h +543 -0
- data/ext/quickfix/double-conversion/fast-dtoa.cc +665 -0
- data/ext/quickfix/double-conversion/fast-dtoa.h +88 -0
- data/ext/quickfix/double-conversion/fixed-dtoa.cc +404 -0
- data/ext/quickfix/double-conversion/fixed-dtoa.h +56 -0
- data/ext/quickfix/double-conversion/ieee.h +402 -0
- data/ext/quickfix/double-conversion/strtod.cc +557 -0
- data/ext/quickfix/double-conversion/strtod.h +45 -0
- data/ext/quickfix/double-conversion/utils.h +374 -0
- data/ext/quickfix/extconf.rb +76 -0
- data/ext/quickfix/index.h +37 -0
- data/ext/quickfix/pugiconfig.hpp +77 -0
- data/ext/quickfix/pugixml.cpp +13237 -0
- data/ext/quickfix/pugixml.hpp +1516 -0
- data/ext/quickfix/scope_guard.hpp +215 -0
- data/ext/quickfix/stdint_msvc.h +254 -0
- data/ext/quickfix/strptime.h +7 -0
- data/lib/quickfix40.rb +274 -0
- data/lib/quickfix41.rb +351 -0
- data/lib/quickfix42.rb +1184 -0
- data/lib/quickfix43.rb +3504 -0
- data/lib/quickfix44.rb +14040 -0
- data/lib/quickfix50.rb +20051 -0
- data/lib/quickfix50sp1.rb +23596 -0
- data/lib/quickfix50sp2.rb +412444 -0
- data/lib/quickfix_fields.rb +79393 -0
- data/lib/quickfix_ruby.rb +82 -0
- data/lib/quickfixt11.rb +65 -0
- data/spec/FIX40.xml +862 -0
- data/spec/FIX41.xml +1282 -0
- data/spec/FIX42.xml +2743 -0
- data/spec/FIX43.xml +4230 -0
- data/spec/FIX44.xml +6600 -0
- data/spec/FIX50.xml +8142 -0
- data/spec/FIX50SP1.xml +9506 -0
- data/spec/FIX50SP2.xml +26069 -0
- data/spec/FIXT11.xml +252 -0
- data/test/DataDictionaryTestCase.rb +268 -0
- data/test/DictionaryTestCase.rb +112 -0
- data/test/FieldBaseTestCase.rb +24 -0
- data/test/MessageStoreTestCase.rb +19 -0
- data/test/MessageTestCase.rb +368 -0
- data/test/SessionSettingsTestCase.rb +41 -0
- 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
|