OnixS C++ FMX UST BIMP Market Data Handler 1.4.1
API documentation
Loading...
Searching...
No Matches
InstrumentDirectory.h
Go to the documentation of this file.
1/*
2* Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3*
4* This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5* and international copyright treaties.
6*
7* Access to and use of the software is governed by the terms of the applicable ONIXS Software
8* Services Agreement (the Agreement) and Customer end user license agreements granting
9* a non-assignable, non-transferable and non-exclusive license to use the software
10* for it's own data processing purposes under the terms defined in the Agreement.
11*
12* Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
13* of this source code or associated reference material to any other location for further reproduction
14* or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15*
16* Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17* the terms of the Agreement is a violation of copyright law.
18*/
19
20#pragma once
21
22#include <vector>
23
28
29
30namespace OnixS {
31namespace FmxUST {
32namespace MarketData {
33namespace Bimp {
34
37 {
44
52
60
64 {
65 return fixedStr<20>(21);
66 }
67
71 {
72 return fixedStr<10>(41);
73 }
74
78 {
79 return fixedStr<30>(51);
80 }
81
88
95
102
106 {
107 return fixedStr<2>(95);
108 }
109
113 {
114 return fixedStr<3>(97);
115 }
116
123
130
134 {
135 return ordinary<Integer8>(116);
136 }
137
144
151
158
165
172
176 {
177 return enumeration<Side>(147);
178 }
179
186
190 {
191 return enumeration<Side>(152);
192 }
193
200
204 {
205 return enumeration<Side>(157);
206 }
207
214
218 {
219 return fixedStr<30>(159);
220 }
221
225 {
226 return fixedStr<8>(189);
227 }
228
232 {
233 return fixedStr<8>(197);
234 }
235
239 {
240 return fixedStr<8>(205);
241 }
242
246 {
247 return fixedStr<8>(213);
248 }
249
256
260 {
261 return ordinary<Integer8>(222);
262 }
263
265 StrRef mIC() const
267 {
268 return fixedStr<4>(230);
269 }
270
274 {
275 return fixedStr<6>(234);
276 }
277
284
289 {
290 return ordinary<Integer8>(241);
291 }
292
300
307
311 {
312 return ordinary<Integer8>(265);
313 }
314
318 {
319 return ordinary<Integer8>(273);
320 }
321
329
333 {
334 if (binarySize() < 289 + sizeof(Integer8))
335 return false;
336
337 value = ordinary<Integer8>(289);
338 return true;
339 }
340
342 bool tradeDate(Integer4& value) const
344 {
345 if (binarySize() < 297 + sizeof(Integer4))
346 return false;
347
348 value = ordinary<Integer4>(297);
349 return true;
350 }
351
355 {
356 if (binarySize() < 301 + sizeof(SignedInteger8))
357 return false;
358
359 value = ordinary<SignedInteger8>(301);
360 return true;
361 }
362
365 bool instrumentFlags(Integer4& value) const
367 {
368 if (binarySize() < 309 + sizeof(Integer4))
369 return false;
370
371 value = ordinary<Integer4>(309);
372 return true;
373 }
374
377 bool legs(Integer1& value) const
379 {
380 if (binarySize() < 313 + sizeof(Integer1))
381 return false;
382
383 value = ordinary<Integer1>(313);
384 return true;
385 }
386
388 bool firstTrade(StrRef& value) const
390 {
391 if (binarySize() < 314 + 8)
392 return false;
393
394 value = fixedStr<8>(314);
395 return true;
396 }
397
399 bool lastTrade(StrRef& value) const
401 {
402 if (binarySize() < 322 + 8)
403 return false;
404
405 value = fixedStr<8>(322);
406 return true;
407 }
408
411 bool firstNotice(StrRef& value) const
413 {
414 if (binarySize() < 330 + 8)
415 return false;
416
417 value = fixedStr<8>(330);
418 return true;
419 }
420
423 bool lastNotice(StrRef& value) const
425 {
426 if (binarySize() < 338 + 8)
427 return false;
428
429 value = fixedStr<8>(338);
430 return true;
431 }
432
435 bool firstDelivery(StrRef& value) const
437 {
438 if (binarySize() < 346 + 8)
439 return false;
440
441 value = fixedStr<8>(346);
442 return true;
443 }
444
447 bool lastDelivery(StrRef& value) const
449 {
450 if (binarySize() < 354 + 8)
451 return false;
452
453 value = fixedStr<8>(354);
454 return true;
455 }
456
458 bool unitOfMeasure(StrRef& value) const
460 {
461 if (binarySize() < 362 + 10)
462 return false;
463
464 value = fixedStr<10>(362);
465 return true;
466 }
467
469 bool unitOfMeasureQty(Integer4& value) const
471 {
472 if (binarySize() < 372 + sizeof(Integer4))
473 return false;
474
475 value = ordinary<Integer4>(372);
476 return true;
477 }
478
481
484
486 static void validateSize(MessageSize size)
487 {
488 if (ONIXS_FMXUST_BIMP_CHECK_EXPECT((size < minMessageSize_), false))
489 throwIncorrectSize("InstrumentDirectory", size, minMessageSize_);
490 }
491
493 InstrumentDirectoryMsg(const void* data, MessageSize size)
495 : BinaryMessage(data, size)
496 {
497 }
498 };
499
501 ONIXS_FMXUST_BIMP_API void toStr(std::string&, const InstrumentDirectoryMsg&);
502
504 inline std::string toStr(const InstrumentDirectoryMsg& msg)
505 {
506 std::string str;
507 toStr(str, msg);
508 return str;
509 }
510
511}
512}
513}
514}
#define ONIXS_FMXUST_BIMP_NOTHROW
Definition Compiler.h:108
#define ONIXS_FMXUST_BIMP_CONST_OR_CONSTEXPR
Definition Compiler.h:111
StrRef fixedStr(MessageSize offset) const ONIXS_FMXUST_BIMP_NOTHROW
Enumeration::Enum enumeration(MessageSize offset) const ONIXS_FMXUST_BIMP_NOTHROW
FieldValue ordinary(MessageSize offset) const ONIXS_FMXUST_BIMP_NOTHROW
MessageSize binarySize() const ONIXS_FMXUST_BIMP_NOTHROW
Size of message.
BinaryMessage() ONIXS_FMXUST_BIMP_NOTHROW
Initializes blank instance referencing to nothing.
Provides efficient way of accessing text-based FIX field values.
Definition String.h:46
ONIXS_FMXUST_BIMP_API ONIXS_FMXUST_BIMP_COLDPATH ONIXS_FMXUST_BIMP_NORETURN void throwIncorrectSize(const std::string &messageName, MessageSize receivedSize, MessageSize expectedSize)
Integer2 MessageSize
Aliases message length type.
Definition Defines.h:100
ONIXS_FMXUST_BIMP_API void toStr(std::string &, EventCode::Enum)
Appends string presentation of object.
PriceType::Enum priceType() const ONIXS_FMXUST_BIMP_NOTHROW
Price Type.
Integer8 timestamp() const ONIXS_FMXUST_BIMP_NOTHROW
bool tradeDate(Integer4 &value) const ONIXS_FMXUST_BIMP_NOTHROW
Trade Date (YYYYMMDD). The date this instrument data is valid.
Integer8 legTwoRatioQty() const ONIXS_FMXUST_BIMP_NOTHROW
The ratio of quantity for the leg two instrument relative to the entire multileg security.
bool lastNotice(StrRef &value) const ONIXS_FMXUST_BIMP_NOTHROW
Integer8 maximumDirectedStreamingMultiplier() const ONIXS_FMXUST_BIMP_NOTHROW
Side::Enum legThreeSide() const ONIXS_FMXUST_BIMP_NOTHROW
Leg Three Side.
Integer4 legTwoInstrumentLocate() const ONIXS_FMXUST_BIMP_NOTHROW
The instrument locate code for the first leg of a multi-leg instrument.
Authenticity::Enum authenticity() const ONIXS_FMXUST_BIMP_NOTHROW
Authenticity.
Integer8 instrumentId() const ONIXS_FMXUST_BIMP_NOTHROW
StrRef industryIdentifier() const ONIXS_FMXUST_BIMP_NOTHROW
Instrument CUSIP / ISIN if applicable.
StrRef cFIcode() const ONIXS_FMXUST_BIMP_NOTHROW
CFI code.
bool referencePrice(SignedInteger8 &value) const ONIXS_FMXUST_BIMP_NOTHROW
For Swap Box instruments, the benchmark reference price. Applicable to UST.
StrRef enhancedSymbol() const ONIXS_FMXUST_BIMP_NOTHROW
Instrument Symbol (supersedes the Legacy Symbol above)
Integer8 maximumOrderSize() const ONIXS_FMXUST_BIMP_NOTHROW
Reserved for future use. Value is set to zero.
StrRef description() const ONIXS_FMXUST_BIMP_NOTHROW
Instrument description.
bool unitOfMeasure(StrRef &value) const ONIXS_FMXUST_BIMP_NOTHROW
Unit of measure for the futures contract. Applicable to Futures.
StrRef maturityDate() const ONIXS_FMXUST_BIMP_NOTHROW
Maturity Date (YYYYMMDD)
StrRef interestAccrualDate() const ONIXS_FMXUST_BIMP_NOTHROW
Accrual Date (YYYYMMDD)
Integer8 decimalPriceTick() const ONIXS_FMXUST_BIMP_NOTHROW
The minimum decimal price increment scaled as per a price field.
Integer4 legThreeInstrumentLocate() const ONIXS_FMXUST_BIMP_NOTHROW
The instrument locate code for the third leg of a multi-leg instrument.
Side::Enum legTwoSide() const ONIXS_FMXUST_BIMP_NOTHROW
Leg Two Side.
StrRef settlementDate() const ONIXS_FMXUST_BIMP_NOTHROW
Settlement Date (YYYYMMDD)
Integer8 priceMultiplier() const ONIXS_FMXUST_BIMP_NOTHROW
The amount that price related fields are scaled to allow them to be expressed as integers.
MatchAlgorithm::Enum matchAlgorithm() const ONIXS_FMXUST_BIMP_NOTHROW
Match Algorithm.
bool lastDelivery(StrRef &value) const ONIXS_FMXUST_BIMP_NOTHROW
bool firstTrade(StrRef &value) const ONIXS_FMXUST_BIMP_NOTHROW
First trading date of the futures contract (YYYYMMDD). Applicable to Futures.
InstrumentType::Enum instrumentType() const ONIXS_FMXUST_BIMP_NOTHROW
Instrument Type.
bool minimumIcebergOrderSize(Integer8 &value) const ONIXS_FMXUST_BIMP_NOTHROW
The minimum quantity that can be used on an Iceberg order.
StrRef mIC() const ONIXS_FMXUST_BIMP_NOTHROW
Market Identifier Code (MIC) (ISO 10383).
Integer8 thresholdLIS() const ONIXS_FMXUST_BIMP_NOTHROW
Integer8 sizeThresholdSSTI() const ONIXS_FMXUST_BIMP_NOTHROW
bool firstNotice(StrRef &value) const ONIXS_FMXUST_BIMP_NOTHROW
Integer8 couponRate() const ONIXS_FMXUST_BIMP_NOTHROW
The coupon rate scaled as per a price field.
static void validateSize(MessageSize size)
Check the given size.
static ONIXS_FMXUST_BIMP_CONST_OR_CONSTEXPR MessageSize messageSize_
Total message size.
Integer8 minimumOrderSize() const ONIXS_FMXUST_BIMP_NOTHROW
The minimum quantity that can be used on an order.
StrRef symbolSuffix() const ONIXS_FMXUST_BIMP_NOTHROW
Instrument Symbol Suffix.
StrRef legacySymbol() const ONIXS_FMXUST_BIMP_NOTHROW
Legacy Instrument Symbol. Deprecated but provided for backward compatibility.
bool unitOfMeasureQty(Integer4 &value) const ONIXS_FMXUST_BIMP_NOTHROW
Underlying security quantity per unit of measure. Applicable to Futures.
StrRef instrumentSubType() const ONIXS_FMXUST_BIMP_NOTHROW
Instrument Sub Type.
YesOrNo::Enum illiquidInstrument() const ONIXS_FMXUST_BIMP_NOTHROW
Illiquid Instrument.
Side::Enum legOneSide() const ONIXS_FMXUST_BIMP_NOTHROW
Leg One Side.
bool legs(Integer1 &value) const ONIXS_FMXUST_BIMP_NOTHROW
StrRef currency() const ONIXS_FMXUST_BIMP_NOTHROW
ISO currency code.
Integer8 fractionalPriceTick() const ONIXS_FMXUST_BIMP_NOTHROW
The minimum fractional price increment, expressed as a decimal and scaled as per a price field.
Integer4 instrumentLocate() const ONIXS_FMXUST_BIMP_NOTHROW
Instrument locate code assigned to the security for the day.
bool instrumentFlags(Integer4 &value) const ONIXS_FMXUST_BIMP_NOTHROW
Integer8 roundLotSize() const ONIXS_FMXUST_BIMP_NOTHROW
Incremental order size.
Integer4 legOneInstrumentLocate() const ONIXS_FMXUST_BIMP_NOTHROW
The instrument locate code for the first leg of a multi-leg instrument.
Integer8 legOneRatioQty() const ONIXS_FMXUST_BIMP_NOTHROW
The ratio of quantity for the leg one instrument relative to the entire multileg security.
BlockTierId::Enum blockTierId() const ONIXS_FMXUST_BIMP_NOTHROW
Block tier identifier in increasing order sizes.
StrRef issueDate() const ONIXS_FMXUST_BIMP_NOTHROW
Issue Date (YYYYMMDD)
IndustryIdentifierType::Enum industryIdentifierType() const ONIXS_FMXUST_BIMP_NOTHROW
Type of the content of the Industry Identifier.
bool firstDelivery(StrRef &value) const ONIXS_FMXUST_BIMP_NOTHROW
bool lastTrade(StrRef &value) const ONIXS_FMXUST_BIMP_NOTHROW
Last trading date of the futures contract (YYYYMMDD). Applicable to Futures.
static ONIXS_FMXUST_BIMP_CONST_OR_CONSTEXPR MessageSize minMessageSize_
Min message size.
InstrumentDirectoryMsg(const void *data, MessageSize size) ONIXS_FMXUST_BIMP_NOTHROW
Initializes instance over given memory block.