quickfix_ruby 1.14.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +7 -0
  2. data/ext/quickfix/Acceptor.cpp +248 -0
  3. data/ext/quickfix/Acceptor.h +127 -0
  4. data/ext/quickfix/Allocator.h +9 -0
  5. data/ext/quickfix/Application.h +127 -0
  6. data/ext/quickfix/AtomicCount.h +109 -0
  7. data/ext/quickfix/DOMDocument.h +74 -0
  8. data/ext/quickfix/DataDictionary.cpp +618 -0
  9. data/ext/quickfix/DataDictionary.h +539 -0
  10. data/ext/quickfix/DataDictionaryProvider.cpp +71 -0
  11. data/ext/quickfix/DataDictionaryProvider.h +70 -0
  12. data/ext/quickfix/DatabaseConnectionID.h +105 -0
  13. data/ext/quickfix/DatabaseConnectionPool.h +91 -0
  14. data/ext/quickfix/Dictionary.cpp +162 -0
  15. data/ext/quickfix/Dictionary.h +94 -0
  16. data/ext/quickfix/Event.h +95 -0
  17. data/ext/quickfix/Exceptions.h +299 -0
  18. data/ext/quickfix/Field.h +672 -0
  19. data/ext/quickfix/FieldConvertors.h +863 -0
  20. data/ext/quickfix/FieldMap.cpp +238 -0
  21. data/ext/quickfix/FieldMap.h +244 -0
  22. data/ext/quickfix/FieldNumbers.h +46 -0
  23. data/ext/quickfix/FieldTypes.cpp +64 -0
  24. data/ext/quickfix/FieldTypes.h +698 -0
  25. data/ext/quickfix/Fields.h +31 -0
  26. data/ext/quickfix/FileLog.cpp +200 -0
  27. data/ext/quickfix/FileLog.h +112 -0
  28. data/ext/quickfix/FileStore.cpp +332 -0
  29. data/ext/quickfix/FileStore.h +129 -0
  30. data/ext/quickfix/FixFieldNumbers.h +1537 -0
  31. data/ext/quickfix/FixFields.h +1538 -0
  32. data/ext/quickfix/FixValues.h +3281 -0
  33. data/ext/quickfix/FlexLexer.h +188 -0
  34. data/ext/quickfix/Group.cpp +64 -0
  35. data/ext/quickfix/Group.h +73 -0
  36. data/ext/quickfix/HtmlBuilder.h +186 -0
  37. data/ext/quickfix/HttpConnection.cpp +739 -0
  38. data/ext/quickfix/HttpConnection.h +78 -0
  39. data/ext/quickfix/HttpMessage.cpp +149 -0
  40. data/ext/quickfix/HttpMessage.h +133 -0
  41. data/ext/quickfix/HttpParser.cpp +49 -0
  42. data/ext/quickfix/HttpParser.h +54 -0
  43. data/ext/quickfix/HttpServer.cpp +169 -0
  44. data/ext/quickfix/HttpServer.h +78 -0
  45. data/ext/quickfix/Initiator.cpp +289 -0
  46. data/ext/quickfix/Initiator.h +149 -0
  47. data/ext/quickfix/Log.cpp +77 -0
  48. data/ext/quickfix/Log.h +179 -0
  49. data/ext/quickfix/Message.cpp +580 -0
  50. data/ext/quickfix/Message.h +370 -0
  51. data/ext/quickfix/MessageCracker.h +188 -0
  52. data/ext/quickfix/MessageSorters.cpp +105 -0
  53. data/ext/quickfix/MessageSorters.h +156 -0
  54. data/ext/quickfix/MessageStore.cpp +146 -0
  55. data/ext/quickfix/MessageStore.h +174 -0
  56. data/ext/quickfix/Mutex.h +131 -0
  57. data/ext/quickfix/MySQLConnection.h +194 -0
  58. data/ext/quickfix/MySQLLog.cpp +275 -0
  59. data/ext/quickfix/MySQLLog.h +145 -0
  60. data/ext/quickfix/MySQLStore.cpp +331 -0
  61. data/ext/quickfix/MySQLStore.h +142 -0
  62. data/ext/quickfix/NullStore.cpp +54 -0
  63. data/ext/quickfix/NullStore.h +99 -0
  64. data/ext/quickfix/OdbcConnection.h +266 -0
  65. data/ext/quickfix/OdbcLog.cpp +252 -0
  66. data/ext/quickfix/OdbcLog.h +117 -0
  67. data/ext/quickfix/OdbcStore.cpp +338 -0
  68. data/ext/quickfix/OdbcStore.h +113 -0
  69. data/ext/quickfix/PUGIXML_DOMDocument.cpp +112 -0
  70. data/ext/quickfix/PUGIXML_DOMDocument.h +81 -0
  71. data/ext/quickfix/Parser.cpp +103 -0
  72. data/ext/quickfix/Parser.h +57 -0
  73. data/ext/quickfix/PostgreSQLConnection.h +176 -0
  74. data/ext/quickfix/PostgreSQLLog.cpp +276 -0
  75. data/ext/quickfix/PostgreSQLLog.h +144 -0
  76. data/ext/quickfix/PostgreSQLStore.cpp +334 -0
  77. data/ext/quickfix/PostgreSQLStore.h +141 -0
  78. data/ext/quickfix/Queue.h +75 -0
  79. data/ext/quickfix/QuickfixRuby.cpp +252066 -0
  80. data/ext/quickfix/QuickfixRuby.h +34 -0
  81. data/ext/quickfix/Responder.h +43 -0
  82. data/ext/quickfix/Session.cpp +1487 -0
  83. data/ext/quickfix/Session.h +335 -0
  84. data/ext/quickfix/SessionFactory.cpp +274 -0
  85. data/ext/quickfix/SessionFactory.h +86 -0
  86. data/ext/quickfix/SessionID.h +170 -0
  87. data/ext/quickfix/SessionSettings.cpp +189 -0
  88. data/ext/quickfix/SessionSettings.h +171 -0
  89. data/ext/quickfix/SessionState.h +231 -0
  90. data/ext/quickfix/Settings.cpp +100 -0
  91. data/ext/quickfix/Settings.h +53 -0
  92. data/ext/quickfix/SharedArray.h +150 -0
  93. data/ext/quickfix/SocketAcceptor.cpp +222 -0
  94. data/ext/quickfix/SocketAcceptor.h +75 -0
  95. data/ext/quickfix/SocketConnection.cpp +238 -0
  96. data/ext/quickfix/SocketConnection.h +103 -0
  97. data/ext/quickfix/SocketConnector.cpp +116 -0
  98. data/ext/quickfix/SocketConnector.h +67 -0
  99. data/ext/quickfix/SocketInitiator.cpp +260 -0
  100. data/ext/quickfix/SocketInitiator.h +81 -0
  101. data/ext/quickfix/SocketMonitor.cpp +335 -0
  102. data/ext/quickfix/SocketMonitor.h +111 -0
  103. data/ext/quickfix/SocketServer.cpp +177 -0
  104. data/ext/quickfix/SocketServer.h +100 -0
  105. data/ext/quickfix/ThreadedSocketAcceptor.cpp +258 -0
  106. data/ext/quickfix/ThreadedSocketAcceptor.h +98 -0
  107. data/ext/quickfix/ThreadedSocketConnection.cpp +209 -0
  108. data/ext/quickfix/ThreadedSocketConnection.h +82 -0
  109. data/ext/quickfix/ThreadedSocketInitiator.cpp +268 -0
  110. data/ext/quickfix/ThreadedSocketInitiator.h +84 -0
  111. data/ext/quickfix/TimeRange.cpp +173 -0
  112. data/ext/quickfix/TimeRange.h +258 -0
  113. data/ext/quickfix/Utility.cpp +537 -0
  114. data/ext/quickfix/Utility.h +219 -0
  115. data/ext/quickfix/Values.h +62 -0
  116. data/ext/quickfix/config.h +0 -0
  117. data/ext/quickfix/config_windows.h +0 -0
  118. data/ext/quickfix/extconf.rb +12 -0
  119. data/ext/quickfix/index.h +37 -0
  120. data/ext/quickfix/pugiconfig.hpp +72 -0
  121. data/ext/quickfix/pugixml.cpp +10765 -0
  122. data/ext/quickfix/pugixml.hpp +1341 -0
  123. data/ext/quickfix/strptime.h +7 -0
  124. data/lib/quickfix40.rb +274 -0
  125. data/lib/quickfix41.rb +351 -0
  126. data/lib/quickfix42.rb +1184 -0
  127. data/lib/quickfix43.rb +3504 -0
  128. data/lib/quickfix44.rb +10721 -0
  129. data/lib/quickfix50.rb +13426 -0
  130. data/lib/quickfix50sp1.rb +15629 -0
  131. data/lib/quickfix50sp2.rb +17068 -0
  132. data/lib/quickfix_fields.rb +19853 -0
  133. data/lib/quickfix_ruby.rb +82 -0
  134. data/lib/quickfixt11.rb +70 -0
  135. data/spec/FIX40.xml +862 -0
  136. data/spec/FIX41.xml +1285 -0
  137. data/spec/FIX42.xml +2746 -0
  138. data/spec/FIX43.xml +4229 -0
  139. data/spec/FIX44.xml +6596 -0
  140. data/spec/FIX50.xml +8137 -0
  141. data/spec/FIX50SP1.xml +9496 -0
  142. data/spec/FIX50SP2.xml +10011 -0
  143. data/spec/FIXT11.xml +313 -0
  144. data/test/test_DataDictionaryTestCase.rb +268 -0
  145. data/test/test_DictionaryTestCase.rb +112 -0
  146. data/test/test_FieldBaseTestCase.rb +24 -0
  147. data/test/test_MessageTestCase.rb +368 -0
  148. data/test/test_SessionSettingsTestCase.rb +41 -0
  149. metadata +193 -0
@@ -0,0 +1,258 @@
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_TIMERANGE_H
23
+ #define FIX_TIMERANGE_H
24
+
25
+ #ifdef _MSC_VER
26
+ #pragma warning( disable : 4503 4355 4786 4290 )
27
+ #endif
28
+
29
+ #include "FieldTypes.h"
30
+
31
+ namespace FIX
32
+ {
33
+ /// Keeps track of when session is active
34
+ class TimeRange
35
+ {
36
+ public:
37
+ TimeRange( const UtcTimeOnly& startTime, const UtcTimeOnly& endTime,
38
+ int startDay = -1, int endDay = -1 );
39
+
40
+ TimeRange( const LocalTimeOnly& startTime, const LocalTimeOnly& endTime,
41
+ int startDay = -1, int endDay = -1 );
42
+
43
+ static bool isInRange( const UtcTimeOnly& start,
44
+ const UtcTimeOnly& end,
45
+ const DateTime& time )
46
+ {
47
+ return isInRange
48
+ ( (DateTime)start, (DateTime)end, (DateTime)time );
49
+ }
50
+
51
+ static bool isInRange( const UtcTimeOnly& startTime,
52
+ const UtcTimeOnly& endTime,
53
+ int startDay,
54
+ int endDay,
55
+ const DateTime& time,
56
+ int day )
57
+ {
58
+ return isInRange
59
+ ( (DateTime)startTime, (DateTime)endTime,
60
+ startDay, endDay,
61
+ (DateTime)time, day );
62
+ }
63
+
64
+ static bool isInRange( const UtcTimeOnly& startTime,
65
+ const UtcTimeOnly& endTime,
66
+ int startDay,
67
+ int endDay,
68
+ const DateTime& time )
69
+ {
70
+ return isInRange
71
+ ( (DateTime)startTime, (DateTime)endTime,
72
+ startDay, endDay,
73
+ (DateTime)time );
74
+ }
75
+
76
+ static bool isInSameRange( const UtcTimeOnly& start,
77
+ const UtcTimeOnly& end,
78
+ const DateTime& time1,
79
+ const DateTime& time2 )
80
+ {
81
+ return isInSameRange
82
+ ( (DateTime)start, (DateTime)end,
83
+ (DateTime)time1, (DateTime)time2 );
84
+ }
85
+
86
+ static bool isInSameRange( const UtcTimeOnly& startTime,
87
+ const UtcTimeOnly& endTime,
88
+ int startDay,
89
+ int endDay,
90
+ const DateTime& time1,
91
+ const DateTime& time2 )
92
+ {
93
+ return isInSameRange
94
+ ( (DateTime)startTime, (DateTime)endTime,
95
+ startDay, endDay,
96
+ (DateTime)time1, (DateTime)time2 );
97
+ }
98
+
99
+ static bool isInRange( const LocalTimeOnly& start,
100
+ const LocalTimeOnly& end,
101
+ const DateTime& time )
102
+ {
103
+ return isInRange
104
+ ( (DateTime)start, (DateTime)end, (DateTime)time );
105
+ }
106
+
107
+ static bool isInRange( const LocalTimeOnly& startTime,
108
+ const LocalTimeOnly& endTime,
109
+ int startDay,
110
+ int endDay,
111
+ const DateTime& time,
112
+ int day )
113
+ {
114
+ return isInRange
115
+ ( (DateTime)startTime, (DateTime)endTime,
116
+ startDay, endDay,
117
+ (DateTime)time, day );
118
+ }
119
+
120
+ static bool isInRange( const LocalTimeOnly& startTime,
121
+ const LocalTimeOnly& endTime,
122
+ int startDay,
123
+ int endDay,
124
+ const DateTime& time )
125
+ {
126
+ return isInRange
127
+ ( (DateTime)startTime, (DateTime)endTime,
128
+ startDay, endDay,
129
+ (DateTime)time );
130
+ }
131
+
132
+ static bool isInSameRange( const LocalTimeOnly& start,
133
+ const LocalTimeOnly& end,
134
+ const DateTime& time1,
135
+ const DateTime& time2 )
136
+ {
137
+ return isInSameRange
138
+ ( (DateTime)start, (DateTime)end,
139
+ (DateTime)time1, (DateTime)time2 );
140
+ }
141
+
142
+ static bool isInSameRange( const LocalTimeOnly& startTime,
143
+ const LocalTimeOnly& endTime,
144
+ int startDay,
145
+ int endDay,
146
+ const DateTime& time1,
147
+ const DateTime& time2 )
148
+ {
149
+ return isInSameRange
150
+ ( (DateTime)startTime, (DateTime)endTime,
151
+ startDay, endDay,
152
+ (DateTime)time1, (DateTime)time2 );
153
+ }
154
+
155
+ private:
156
+ static bool isInRange( const DateTime& start,
157
+ const DateTime& end,
158
+ const DateTime& time );
159
+
160
+ static bool isInRange( const DateTime& startTime,
161
+ const DateTime& endTime,
162
+ int startDay,
163
+ int endDay,
164
+ const DateTime& time,
165
+ int day );
166
+
167
+ static bool isInRange( const DateTime& startTime,
168
+ const DateTime& endTime,
169
+ int startDay,
170
+ int endDay,
171
+ const DateTime& time );
172
+
173
+ static bool isInSameRange( const DateTime& start,
174
+ const DateTime& end,
175
+ const DateTime& time1,
176
+ const DateTime& time2 );
177
+
178
+ static bool isInSameRange( const DateTime& startTime,
179
+ const DateTime& endTime,
180
+ int startDay,
181
+ int endDay,
182
+ const DateTime& time1,
183
+ const DateTime& time2 );
184
+ public:
185
+ bool isInRange( const DateTime& dateTime, int day )
186
+ {
187
+ if( m_startDay < 0 && m_endDay < 0 )
188
+ return isInRange( m_startTime, m_endTime, dateTime );
189
+ else
190
+ return isInRange
191
+ ( m_startTime, m_endTime, m_startDay, m_endDay, dateTime, day );
192
+ }
193
+
194
+ bool isInRange( const UtcTimeStamp& dateTime )
195
+ {
196
+ if( m_useLocalTime )
197
+ {
198
+ LocalTimeStamp localDateTime( dateTime.getTimeT() );
199
+ return isInRange( localDateTime, localDateTime.getWeekDay() );
200
+ }
201
+
202
+ return isInRange( dateTime, dateTime.getWeekDay() );
203
+ }
204
+
205
+ bool isInRange( const LocalTimeStamp& dateTime )
206
+ {
207
+ if( !m_useLocalTime )
208
+ {
209
+ LocalTimeStamp utcDateTime( dateTime.getTimeT() );
210
+ return isInRange( utcDateTime, utcDateTime.getWeekDay() );
211
+ }
212
+
213
+ return isInRange( dateTime, dateTime.getWeekDay() );
214
+ }
215
+
216
+ bool isInSameRange( const UtcTimeStamp& time1, const UtcTimeStamp& time2 )
217
+ {
218
+ if( m_useLocalTime )
219
+ {
220
+ LocalTimeStamp localTime1( time1.getTimeT() );
221
+ LocalTimeStamp localTime2( time2.getTimeT() );
222
+ return isInSameRange( (DateTime)localTime1, (DateTime)localTime2 );
223
+ }
224
+
225
+ return isInSameRange( (DateTime)time1, (DateTime)time2 );
226
+ }
227
+
228
+ bool isInSameRange( const LocalTimeStamp& time1, const LocalTimeStamp& time2 )
229
+ {
230
+ if( !m_useLocalTime )
231
+ {
232
+ UtcTimeStamp utcTime1( time1.getTimeT() );
233
+ UtcTimeStamp utcTime2( time2.getTimeT() );
234
+ return isInSameRange( (DateTime)utcTime1, (DateTime)utcTime2 );
235
+ }
236
+
237
+ return isInSameRange( (DateTime)time1, (DateTime)time2 );
238
+ }
239
+
240
+ private:
241
+ bool isInSameRange( const DateTime& time1, const DateTime& time2 )
242
+ {
243
+ if( m_startDay < 0 && m_endDay < 0 )
244
+ return isInSameRange( m_startTime, m_endTime, time1, time2 );
245
+ else
246
+ return isInSameRange
247
+ ( m_startTime, m_endTime, m_startDay, m_endDay, time1, time2 );
248
+ }
249
+
250
+ UtcTimeOnly m_startTime;
251
+ UtcTimeOnly m_endTime;
252
+ int m_startDay;
253
+ int m_endDay;
254
+ bool m_useLocalTime;
255
+ };
256
+ }
257
+
258
+ #endif