OnixS C++ CME MDP Premium Market Data Handler 5.9.0
Users' manual and API documentation
Loading...
Searching...
No Matches
ValueConverters.h
Go to the documentation of this file.
1// Copyright Onix Solutions Limited [OnixS]. All rights reserved.
2//
3// This software owned by Onix Solutions Limited [OnixS] and is
4// protected by copyright law and international copyright treaties.
5//
6// Access to and use of the software is governed by the terms of the applicable
7// OnixS Software Services Agreement (the Agreement) and Customer end user license
8// agreements granting a non-assignable, non-transferable and non-exclusive license
9// to use the software for it's own data processing purposes under the terms defined
10// in the Agreement.
11//
12// Except as otherwise granted within the terms of the Agreement, copying or
13// reproduction of any part of this source code or associated reference material
14// to any other location for further reproduction or redistribution, and any
15// amendments to this copyright notice, are expressly prohibited.
16//
17// Any reproduction or redistribution for sale or hiring of the Software not in
18// accordance with the terms of the Agreement is a violation of copyright law.
19//
20
21#pragma once
22
23#include <stdexcept>
24
26#include <OnixS/CME/MDH/Time.h>
27
31
33
35
40{
43 virtual const Char* typeName() const = 0;
44
47 virtual void toStr(std::string&, const ValueContainer&) const {}
48
52 virtual bool convert(StrRef&, const ValueContainer&) const
53 {
54 return false;
55 }
56
60 virtual bool convert(Char&, const ValueContainer&) const
61 {
62 return false;
63 }
64
68 virtual bool convert(Int8&, const ValueContainer&) const
69 {
70 return false;
71 }
72
76 virtual bool convert(UInt8&, const ValueContainer&) const
77 {
78 return false;
79 }
80
84 virtual bool convert(Int16&, const ValueContainer&) const
85 {
86 return false;
87 }
88
92 virtual bool convert(UInt16&, const ValueContainer&) const
93 {
94 return false;
95 }
96
100 virtual bool convert(Int32&, const ValueContainer&) const
101 {
102 return false;
103 }
104
108 virtual bool convert(UInt32&, const ValueContainer&) const
109 {
110 return false;
111 }
112
116 virtual bool convert(Int64&, const ValueContainer&) const
117 {
118 return false;
119 }
120
124 virtual bool convert(UInt64&, const ValueContainer&) const
125 {
126 return false;
127 }
128
132 virtual bool convert(Decimal&, const ValueContainer&) const
133 {
134 return false;
135 }
136
140 virtual bool convert(Timestamp&, const ValueContainer&) const
141 {
142 return false;
143 }
144
148 virtual bool convert(MaturityMonthYear&, const ValueContainer&) const
149 {
150 return false;
151 }
152};
153
155{
157 {
158 return "Null";
159 }
160
161 static const ValueConverter& self();
162};
163
167{
169 {
170 return "String";
171 }
172
173 void toStr(std::string& str, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
174 {
175 const StrRef& ref = container.get<StrRef>();
176
177 str.assign(ref.items(), ref.size());
178 }
179
180 bool convert(StrRef& ref, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
181 {
182 ref = container.get<StrRef>();
183
184 return true;
185 }
186
188 {
189 const StrRef& str = container.get<StrRef>();
190
191 if (1 == str.size())
192 {
193 value = str[0];
194
195 return true;
196 }
197 else if (str.empty())
198 {
199 value = 0;
200
201 return true;
202 }
203
204 return false;
205 }
206
208 {
209 const StrRef& str = container.get<StrRef>();
210
211 return fromStr(value, str.items(), str.size());
212 }
213
215 {
216 const StrRef& str = container.get<StrRef>();
217
218 return fromStr(value, str.items(), str.size());
219 }
220
222 {
223 const StrRef& str = container.get<StrRef>();
224
225 return fromStr(value, str.items(), str.size());
226 }
227
229 {
230 const StrRef& str = container.get<StrRef>();
231
232 return fromStr(value, str.items(), str.size());
233 }
234
236 {
237 const StrRef& str = container.get<StrRef>();
238
239 return fromStr(value, str.items(), str.size());
240 }
241
243 {
244 const StrRef& str = container.get<StrRef>();
245
246 return fromStr(value, str.items(), str.size());
247 }
248
249 bool convert(Int64& value, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
250 {
251 const StrRef& str = container.get<StrRef>();
252
253 return fromStr(value, str.items(), str.size());
254 }
255
257 {
258 const StrRef& str = container.get<StrRef>();
259
260 return fromStr(value, str.items(), str.size());
261 }
262
264 {
265 const StrRef& str = container.get<StrRef>();
266
267 return fromStr(value, str.items(), str.size());
268 }
269
271 {
272 const StrRef& str = container.get<StrRef>();
273
274 return fromStr(value, str.items(), str.size());
275 }
276
278 {
279 return false;
280 }
281
282 static const ValueConverter& self();
283};
284
288{
290 {
291 return "Char";
292 }
293
294 void toStr(std::string& str, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
295 {
296 str.append(1, container.get<Char>());
297 }
298
299 bool convert(StrRef& ref, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
300 {
301 ref = StrRef(&container.get<Char>(), 1);
302
303 return true;
304 }
305
307 {
308 value = container.get<Char>();
309
310 return true;
311 }
312
314 {
315 return charToDigit(value, container.get<Char>());
316 }
317
319 {
320 return charToDigit(value, container.get<Char>());
321 }
322
324 {
325 return charToDigit(value, container.get<Char>());
326 }
327
329 {
330 return charToDigit(value, container.get<Char>());
331 }
332
334 {
335 return charToDigit(value, container.get<Char>());
336 }
337
339 {
340 return charToDigit(value, container.get<Char>());
341 }
342
343 bool convert(Int64& value, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
344 {
345 return charToDigit(value, container.get<Char>());
346 }
347
349 {
350 return charToDigit(value, container.get<Char>());
351 }
352
354 {
355 Decimal::Mantissa mantissa;
356
357 if (charToDigit(mantissa, container.get<Char>()))
358 {
359 value = Decimal(mantissa, 0);
360
361 return true;
362 }
363
364 return false;
365 }
366
368 {
369 return false;
370 }
371
373 {
374 return false;
375 }
376
377 static const ValueConverter& self();
378
379private:
380 template <class Integer>
381 static bool charToDigit(Integer& converted, Char original)
382 {
383 if ('0' <= original && '9' >= original)
384 {
385 converted = static_cast<Integer>(original - '0');
386
387 return true;
388 }
389
390 return false;
391 }
392};
393
394//
395
398template <class Integer, class Descendant>
400{
401 template <class Integral, bool IsSigned>
402 struct FitsToChar
403 {
404 bool operator()(Integral value) const
405 {
406 return (0 <= value && value < 10);
407 }
408 };
409
410 template <class Integral>
411 struct FitsToChar<Integral, false>
412 {
413 bool operator()(Integral value) const
414 {
415 return (value < 10);
416 }
417 };
418
419 typedef FitsToChar<Integer, !(static_cast<Integer>(-1) > static_cast<Integer>(0))> CanFitToChar;
420
421public:
422 void toStr(std::string& str, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
423 {
424 OnixS::CME::MDH::toStr(str, container.get<Integer>());
425 }
426
428 {
429 const Integer actual = container.get<Integer>();
430
431 if (CanFitToChar()(actual))
432 {
433 value = static_cast<Char>('0' + actual);
434
435 return true;
436 }
437
438 return false;
439 }
440
442 {
443 value = static_cast<Int8>(container.get<Integer>());
444
445 return true;
446 }
447
449 {
450 value = static_cast<UInt8>(container.get<Integer>());
451
452 return true;
453 }
454
456 {
457 value = static_cast<Int16>(container.get<Integer>());
458
459 return true;
460 }
461
463 {
464 value = static_cast<UInt16>(container.get<Integer>());
465
466 return true;
467 }
468
470 {
471 value = static_cast<Int32>(container.get<Integer>());
472
473 return true;
474 }
475
477 {
478 value = static_cast<UInt32>(container.get<Integer>());
479
480 return true;
481 }
482
483 bool convert(Int64& value, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
484 {
485 value = static_cast<Int64>(container.get<Integer>());
486
487 return true;
488 }
489
491 {
492 value = static_cast<UInt64>(container.get<Integer>());
493
494 return true;
495 }
496
498 {
499 value = Decimal(static_cast<Decimal::Mantissa>(container.get<Integer>()), 0);
500
501 return true;
502 }
503
505 {
506 return false;
507 }
508
510 {
511 return false;
512 }
513
515 {
516 return false;
517 }
518};
519
523{
525 {
526 return "Int8";
527 }
528
529 static const ValueConverter& self();
530};
531
535{
537 {
538 return "UInt8";
539 }
540
541 static const ValueConverter& self();
542};
543
547{
549 {
550 return "Int16";
551 }
552
553 static const ValueConverter& self();
554};
555
559{
561 {
562 return "UInt16";
563 }
564
565 static const ValueConverter& self();
566};
567
571{
573 {
574 return "Int32";
575 }
576
577 static const ValueConverter& self();
578};
579
583{
585 {
586 return "UInt32";
587 }
588
589 static const ValueConverter& self();
590};
591
595{
597 {
598 return "Int64";
599 }
600
601 static const ValueConverter& self();
602};
603
607{
609 {
610 return "UInt64";
611 }
612
613 static const ValueConverter& self();
614};
615
616//
617
621{
623 {
624 return "Decimal";
625 }
626
627 void toStr(std::string& str, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
628 {
629 OnixS::CME::MDH::toStr(str, container.get<Decimal>());
630 }
631
633 {
634 value = container.get<Decimal>();
635
636 return true;
637 }
638
640 {
641 return false;
642 }
643
645 {
646 return false;
647 }
648
650 {
651 return false;
652 }
653
655 {
656 return false;
657 }
658
660 {
661 return false;
662 }
663
665 {
666 return false;
667 }
668
670 {
671 return false;
672 }
673
675 {
676 return false;
677 }
678
680 {
681 return false;
682 }
683
685 {
686 return false;
687 }
688
690 {
691 return false;
692 }
693
695 {
696 return false;
697 }
698
699 static const ValueConverter& self();
700};
701
705{
707 {
708 return "Timestamp";
709 }
710
711 void toStr(std::string& str, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
712 {
713 OnixS::CME::MDH::toStr(str, container.get<Timestamp>());
714 }
715
716 bool convert(Int64& value, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
717 {
718 value = static_cast<Int64>(container.get<Timestamp>().sinceEpoch());
719
720 return true;
721 }
722
724 {
725 value = container.get<Timestamp>().sinceEpoch();
726
727 return true;
728 }
729
731 {
732 value = container.get<Timestamp>();
733
734 return true;
735 }
736
738 {
739 return false;
740 }
741
743 {
744 return false;
745 }
746
748 {
749 return false;
750 }
751
753 {
754 return false;
755 }
756
758 {
759 return false;
760 }
761
763 {
764 return false;
765 }
766
768 {
769 return false;
770 }
771
773 {
774 return false;
775 }
776
778 {
779 return false;
780 }
781
783 {
784 return false;
785 }
786
787 static const ValueConverter& self();
788};
789
793{
795 {
796 return "MaturityMonthYear";
797 }
798
799 void toStr(std::string& str, const ValueContainer& container) const ONIXS_CMEMDH_OVERRIDE
800 {
801 OnixS::CME::MDH::toStr(str, container.get<MaturityMonthYear>());
802 }
803
805 {
806 value = container.get<MaturityMonthYear>();
807
808 return true;
809 }
810
812 {
813 return false;
814 }
815
817 {
818 return false;
819 }
820
822 {
823 return false;
824 }
825
827 {
828 return false;
829 }
830
832 {
833 return false;
834 }
835
837 {
838 return false;
839 }
840
842 {
843 return false;
844 }
845
847 {
848 return false;
849 }
850
852 {
853 return false;
854 }
855
857 {
858 return false;
859 }
860
862 {
863 return false;
864 }
865
867 {
868 return false;
869 }
870
871 static const ValueConverter& self();
872};
873
874inline void throwBadConversion(const Char* typeName)
875{
876 std::string issue;
877
878 issue += "Cannot transform ";
879
880 issue += typeName ? typeName : "Unknown type";
881
882 issue += " value to the value of the requested "
883 "type because either conversion between "
884 "types does not exist or the value cannot "
885 "be fit to the value of the target type. ";
886
887 throw std::domain_error(issue);
888}
889
892{
900};
901
903template <class Value>
905{
906 typedef char Ordinary[1];
907
908 typedef char Enumeration[2];
909
910 typedef char Bits[3];
911
912 template <class Other>
913 static Bits& kind(typename Other::Bits*);
914
915 template <class Other>
916 static Enumeration& kind(typename Other::Enum*);
917
918 template <class Other>
919 static Ordinary& kind(...);
920
921public:
922 enum
923 {
926 (sizeof(Bits) == sizeof(kind<Value>(ONIXS_CMEMDH_NULLPTR))
928 : (sizeof(Enumeration) == sizeof(kind<Value>(ONIXS_CMEMDH_NULLPTR)) ? ValueKinds::Enumeration : ValueKinds::Ordinary))
929 };
930};
931
934template <class Value, int>
936{
938 typedef Value Result;
939
944 static Result convert(const ValueConverter& converter, const ValueContainer& container)
945 {
946 Result result;
947
948 if (!converter.convert(result, container))
949 {
950 throwBadConversion(converter.typeName());
951 }
952
953 return result;
954 }
955
960 static bool convert(Result& result, const ValueConverter& converter, const ValueContainer& container)
961 {
962 return converter.convert(result, container);
963 }
964};
965
970template <class Enumeration>
971struct ValueConversionTraits<Enumeration, ValueKinds::Enumeration>
972{
974 typedef typename Enumeration::Enum Result;
975
980 static Result convert(const ValueConverter& converter, const ValueContainer& container)
981 {
982 typename Enumeration::Base result;
983
984 if (!converter.convert(result, container))
985 {
986 throwBadConversion(converter.typeName());
987 }
988
989 return static_cast<Result>(result);
990 }
991
996 static bool convert(Result& result, const ValueConverter& converter, const ValueContainer& container)
997 {
998 typename Enumeration::Base base;
999
1000 if (converter.convert(base, container))
1001 {
1002 result = static_cast<Result>(base);
1003
1004 return true;
1005 }
1006
1007 return false;
1008 }
1009};
1010
1015template <class BitSet>
1017{
1019 typedef BitSet Result;
1020
1025 static BitSet convert(const ValueConverter& converter, const ValueContainer& container)
1026 {
1027 typename BitSet::Bits bits;
1028
1029 if (!converter.convert(bits, container))
1030 {
1031 throwBadConversion(converter.typeName());
1032 }
1033
1034 return BitSet(bits);
1035 }
1036
1041 static bool convert(BitSet& result, const ValueConverter& converter, const ValueContainer& container)
1042 {
1043 typename BitSet::Bits bits;
1044
1045 if (converter.convert(bits, container))
1046 {
1047 result = BitSet(bits);
1048
1049 return true;
1050 }
1051
1052 return false;
1053 }
1054};
1055
1058template <class Value>
1060{
1063
1065 typedef typename Traits::Result Result;
1066
1069 typename Traits::Result operator()(const ValueConverter& converter, const ValueContainer& container) const
1070 {
1071 return Traits::convert(converter, container);
1072 }
1073
1076 bool
1077 operator()(typename Traits::Result& result, const ValueConverter& converter, const ValueContainer& container) const
1078 {
1079 return Traits::convert(result, converter, container);
1080 }
1081};
1082
#define ONIXS_CMEMDHFIX_NAMESPACE_BEGIN
Definition Bootstrap.h:70
#define ONIXS_CMEMDHFIX_NAMESPACE_END
Definition Bootstrap.h:71
#define ONIXS_CMEMDH_NULLPTR
Definition Compiler.h:178
#define ONIXS_CMEMDH_EXPORTED
Definition Compiler.h:171
#define ONIXS_CMEMDH_OVERRIDE
Definition Compiler.h:176
A real number with floating exponent.
Definition Decimal.h:137
DecimalMantissa Mantissa
Aliases mantissa component type.
Definition Decimal.h:140
bool convert(Int64 &value, const ValueContainer &container) const override
bool convert(UInt8 &value, const ValueContainer &container) const override
void toStr(std::string &str, const ValueContainer &container) const override
bool convert(Int16 &value, const ValueContainer &container) const override
bool convert(UInt32 &value, const ValueContainer &container) const override
bool convert(Decimal &value, const ValueContainer &container) const override
bool convert(UInt64 &value, const ValueContainer &container) const override
bool convert(Int8 &value, const ValueContainer &container) const override
bool convert(Timestamp &, const ValueContainer &) const override
bool convert(StrRef &, const ValueContainer &) const override
bool convert(MaturityMonthYear &, const ValueContainer &) const override
bool convert(Int32 &value, const ValueContainer &container) const override
bool convert(UInt16 &value, const ValueContainer &container) const override
bool convert(Char &value, const ValueContainer &container) const override
Container for a value of any supported kinds.
Traits class used identify a field value kind.
@ Kind
The kind of the given field value by its type.
const Char * items() const
Read-only content.
Definition String.h:77
size_t size() const
Number of chars.
Definition String.h:83
bool empty() const
Indicates whether the referenced text is empty.
Definition String.h:71
Represents time point without time-zone information.
Definition Time.h:388
Ticks sinceEpoch() const
Number of nanoseconds since the Epoch (01-01-1970).
Definition Time.h:529
void throwBadConversion(const Char *typeName)
bool value(Number &number, const MultiContainer &container, Tag tag)
Int8 Int8
int8.
Definition Fields.h:63
bool fromStr(Decimal &, const Char *, size_t)
UInt64 UInt64
uInt64.
Definition Fields.h:205
Int32 Int32
int32.
Definition Fields.h:60
char Char
Character type alias.
Definition String.h:36
void toStr(std::string &, BookState::Enum)
Serializes book state value into a string.
UInt32 UInt32
uInt32.
Definition Fields.h:202
Int16 Int16
int16.
Definition Fields.h:57
UInt8 UInt8
uInt8.
Definition Fields.h:208
UInt16 UInt16
uInt16.
Definition Fields.h:199
bool convert(Int64 &value, const ValueContainer &container) const override
bool convert(UInt8 &value, const ValueContainer &container) const override
void toStr(std::string &str, const ValueContainer &container) const override
bool convert(Int16 &value, const ValueContainer &container) const override
bool convert(UInt32 &value, const ValueContainer &container) const override
bool convert(Decimal &value, const ValueContainer &container) const override
bool convert(UInt64 &value, const ValueContainer &container) const override
bool convert(Int8 &value, const ValueContainer &container) const override
bool convert(Timestamp &, const ValueContainer &) const override
const Char * typeName() const override
bool convert(MaturityMonthYear &, const ValueContainer &) const override
bool convert(Int32 &value, const ValueContainer &container) const override
bool convert(UInt16 &value, const ValueContainer &container) const override
bool convert(StrRef &ref, const ValueContainer &container) const override
bool convert(Char &value, const ValueContainer &container) const override
static const ValueConverter & self()
bool convert(UInt32 &, const ValueContainer &) const override
void toStr(std::string &str, const ValueContainer &container) const override
bool convert(UInt8 &, const ValueContainer &) const override
bool convert(Int8 &, const ValueContainer &) const override
bool convert(Decimal &value, const ValueContainer &container) const override
bool convert(Int64 &, const ValueContainer &) const override
bool convert(Timestamp &, const ValueContainer &) const override
bool convert(Int16 &, const ValueContainer &) const override
const Char * typeName() const override
bool convert(StrRef &, const ValueContainer &) const override
bool convert(UInt64 &, const ValueContainer &) const override
bool convert(MaturityMonthYear &, const ValueContainer &) const override
bool convert(Int32 &, const ValueContainer &) const override
bool convert(Char &, const ValueContainer &) const override
bool convert(UInt16 &, const ValueContainer &) const override
static const ValueConverter & self()
const Char * typeName() const override
static const ValueConverter & self()
const Char * typeName() const override
static const ValueConverter & self()
const Char * typeName() const override
static const ValueConverter & self()
const Char * typeName() const override
static const ValueConverter & self()
bool convert(UInt32 &, const ValueContainer &) const override
void toStr(std::string &str, const ValueContainer &container) const override
bool convert(UInt8 &, const ValueContainer &) const override
bool convert(Int8 &, const ValueContainer &) const override
bool convert(Int64 &, const ValueContainer &) const override
bool convert(Decimal &, const ValueContainer &) const override
bool convert(MaturityMonthYear &value, const ValueContainer &container) const override
bool convert(Timestamp &, const ValueContainer &) const override
bool convert(Int16 &, const ValueContainer &) const override
bool convert(StrRef &, const ValueContainer &) const override
bool convert(UInt64 &, const ValueContainer &) const override
bool convert(Int32 &, const ValueContainer &) const override
bool convert(Char &, const ValueContainer &) const override
bool convert(UInt16 &, const ValueContainer &) const override
static const ValueConverter & self()
const Char * typeName() const override
static const ValueConverter & self()
bool convert(Int64 &value, const ValueContainer &container) const override
bool convert(UInt8 &value, const ValueContainer &container) const override
void toStr(std::string &str, const ValueContainer &container) const override
bool convert(Int16 &value, const ValueContainer &container) const override
bool convert(Timestamp &value, const ValueContainer &container) const override
bool convert(UInt32 &value, const ValueContainer &container) const override
bool convert(Decimal &value, const ValueContainer &container) const override
bool convert(UInt64 &value, const ValueContainer &container) const override
bool convert(Int8 &value, const ValueContainer &container) const override
const Char * typeName() const override
bool convert(MaturityMonthYear &, const ValueContainer &) const override
bool convert(Int32 &value, const ValueContainer &container) const override
bool convert(UInt16 &value, const ValueContainer &container) const override
bool convert(StrRef &ref, const ValueContainer &container) const override
bool convert(Char &value, const ValueContainer &container) const override
static const ValueConverter & self()
bool convert(Int64 &value, const ValueContainer &container) const override
bool convert(UInt32 &, const ValueContainer &) const override
void toStr(std::string &str, const ValueContainer &container) const override
bool convert(UInt8 &, const ValueContainer &) const override
bool convert(Timestamp &value, const ValueContainer &container) const override
bool convert(Int8 &, const ValueContainer &) const override
bool convert(UInt64 &value, const ValueContainer &container) const override
bool convert(Decimal &, const ValueContainer &) const override
bool convert(Int16 &, const ValueContainer &) const override
const Char * typeName() const override
bool convert(StrRef &, const ValueContainer &) const override
bool convert(MaturityMonthYear &, const ValueContainer &) const override
bool convert(Int32 &, const ValueContainer &) const override
bool convert(Char &, const ValueContainer &) const override
bool convert(UInt16 &, const ValueContainer &) const override
static const ValueConverter & self()
const Char * typeName() const override
static const ValueConverter & self()
const Char * typeName() const override
static const ValueConverter & self()
const Char * typeName() const override
static const ValueConverter & self()
const Char * typeName() const override
static const ValueConverter & self()
static BitSet convert(const ValueConverter &converter, const ValueContainer &container)
static bool convert(BitSet &result, const ValueConverter &converter, const ValueContainer &container)
static Result convert(const ValueConverter &converter, const ValueContainer &container)
static bool convert(Result &result, const ValueConverter &converter, const ValueContainer &container)
static Result convert(const ValueConverter &converter, const ValueContainer &container)
Value Result
Type of the conversion output.
static bool convert(Result &result, const ValueConverter &converter, const ValueContainer &container)
bool operator()(typename Traits::Result &result, const ValueConverter &converter, const ValueContainer &container) const
Traits::Result Result
Conversion output type.
ValueConversionTraits< Value, ValueKind< Value >::Kind > Traits
Conversion traits.
Traits::Result operator()(const ValueConverter &converter, const ValueContainer &container) const
virtual bool convert(StrRef &, const ValueContainer &) const
virtual void toStr(std::string &, const ValueContainer &) const
virtual bool convert(MaturityMonthYear &, const ValueContainer &) const
virtual bool convert(UInt64 &, const ValueContainer &) const
virtual bool convert(Timestamp &, const ValueContainer &) const
virtual bool convert(UInt16 &, const ValueContainer &) const
virtual bool convert(UInt32 &, const ValueContainer &) const
virtual bool convert(UInt8 &, const ValueContainer &) const
virtual bool convert(Int16 &, const ValueContainer &) const
virtual bool convert(Int32 &, const ValueContainer &) const
virtual const Char * typeName() const =0
virtual bool convert(Decimal &, const ValueContainer &) const
virtual bool convert(Char &, const ValueContainer &) const
virtual bool convert(Int8 &, const ValueContainer &) const
virtual bool convert(Int64 &, const ValueContainer &) const
Identifies kinds of FIX field values.
Enum
Identifies kinds of FIX field values.