00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00048
00049 #if !defined(__B2BITS_Fixopaedia_Types_h__)
00050 #define __B2BITS_Fixopaedia_Types_h__
00051
00052 #include <vector>
00053 #include <list>
00054 #include <memory>
00055 #include <string>
00056
00058 namespace Fixopaedia
00059 {
00064 enum FixDataType
00065 {
00066 FDT_INITIAL,
00067
00068
00069
00070 FDT_INT,
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082 FDT_BEGIN=FDT_INT,
00083
00084 FDT_LENGTH,
00085
00086
00087 FDT_NUM_IN_GROUP,
00088
00089
00090 FDT_SEQ_NUM,
00091
00092
00093 FDT_TAG_NUM,
00094
00095
00096
00097 FDT_DAY_OF_MONTH,
00098
00099
00100 FDT_FLOAT,
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116 FDT_QTY,
00117
00118
00119
00120
00121
00122 FDT_PRICE,
00123
00124
00125
00126
00127
00128
00129
00130 FDT_PRICE_OFFSET,
00131
00132
00133
00134
00135 FDT_AMT,
00136
00137 FDT_PERCENTAGE,
00138
00139
00140
00141 FDT_CHAR,
00142
00143
00144
00145 FDT_BOOLEAN,
00146
00147
00148
00149 FDT_STRING,
00150
00151 FDT_MULTIPLE_VALUE_STRING,
00152
00153 FDT_COUNTRY,
00154
00155 FDT_CURRENCY,
00156
00157 FDT_EXCHANGE,
00158
00159 FDT_MONTH_YEAR,
00160
00161
00162 FDT_MONTH_YEAR_4_4,
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172 FDT_UTC_TIMESTAMP_4_0,
00173
00174 FDT_UTC_TIMESTAMP,
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199 FDT_UTC_TIME_ONLY,
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212 FDT_UTC_DATE_ONLY,
00213
00214
00215
00216
00217
00218
00219 FDT_LOCAL_MKT_DATE,
00220
00221
00222
00223
00224 FDT_DATA,
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234 FDT_MULTIPLE_CHAR_VALUE,
00235
00236 FDT_T_Z_TIME_ONLY,
00237
00238
00239
00240
00241
00242
00243
00244 FDT_T_Z_TIMESTAMP,
00245
00246
00247
00248
00249
00250
00251
00252
00253 FDT_PATTERN,
00254
00255
00256
00257
00258 FDT_TENOR,
00259
00260
00261
00262
00263
00264 FDT_RESERVED_1_0_0_PLUS,
00267 FDT_RESERVED_1_0_0_0_PLUS,
00270 FDT_RESERVED_4_0_0_0_PLUS,
00273 FDT_END
00274 };
00275
00276
00277
00278
00279
00282 enum SearchCriterion
00283 {
00284 SEARCH_FLAT,
00285 SEARCH_SHALLOW,
00286 SEARCH_DEEP
00287 };
00288
00291 struct SearchParams
00292 {
00293 SearchCriterion sc_;
00294 bool includeSMHSMT_;
00295
00296 SearchParams(SearchCriterion sc):sc_(sc), includeSMHSMT_(true){}
00297 SearchParams(SearchCriterion sc, bool includeSMHSMT):sc_(sc), includeSMHSMT_(includeSMHSMT){}
00298 };
00299
00302 enum RequirementCriterion
00303 {
00304 REQUIRED,
00305 NOT_REQUIRED,
00306 COND_REQUIRED,
00307 MISSING
00308
00309 };
00310
00312
00313
00315 class FDElement;
00316 struct FDTypeInfo;
00317
00318 class FieldDescription;
00319 class BlockDescription;
00320 class GroupDescription;
00321 class MessageDescription;
00322 class BaseProtocolDescription;
00323 class ProtocolDescription;
00324 class EnumValuesDescription;
00325
00328 typedef std::list<std::pair<std::string, std::string> > EnumValues;
00329
00331 typedef std::vector<FDElement*> FDElements;
00332
00334 typedef std::vector<std::string> TypeNames;
00335
00337 typedef std::list<FDTypeInfo*> FDTypeInfos;
00338
00340 typedef FieldDescription* FieldDescriptionPtr;
00341
00343 typedef BlockDescription* BlockDescriptionPtr;
00344
00346 typedef std::auto_ptr<GroupDescription> GroupDescriptionPtr;
00347
00349 typedef std::auto_ptr<MessageDescription> MessageDescriptionPtr;
00350
00352 typedef std::auto_ptr<BaseProtocolDescription> BaseProtocolDescriptionPtr;
00353
00355 typedef FDTypeInfo* FDTypeInfoPtr;
00356
00358 typedef EnumValues* EnumValuesPtr;
00359
00362 }
00363
00364 #endif // __B2BITS_Fixopaedia_Types_h__