OnixS C++ FMX UST BIMP Market Data Handler 1.2.0
API documentation
Loading...
Searching...
No Matches
Integral.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 <string>
24
26
27namespace OnixS
28{
29 namespace FmxUST
30 {
31 namespace MarketData
32 {
33 namespace Bimp
34 {
35
36#if defined (_MSC_VER)
37
38 typedef signed char Int8;
39 typedef unsigned char UInt8;
40
41 typedef signed short Int16;
42 typedef unsigned short UInt16;
43
44 typedef signed int Int32;
45 typedef unsigned int UInt32;
46
47 typedef signed long long Int64;
48 typedef unsigned long long UInt64;
49
50#elif defined (__GNUC__)
51
52 typedef signed char Int8;
53 typedef unsigned char UInt8;
54
55 typedef signed short Int16;
56 typedef unsigned short UInt16;
57
58#if defined (__LP64__)
59
60 typedef signed int Int32;
61 typedef unsigned int UInt32;
62
63 typedef signed long Int64;
64 typedef unsigned long UInt64;
65
66#else
67
68 typedef signed int Int32;
69 typedef unsigned int UInt32;
70
71 typedef signed long long Int64;
72 typedef unsigned long long UInt64;
73
74#endif
75
76#else
77
78 // Compiler is not (yet) supported.
79 // Integral types must be defined explicitly.
80
81#error \
82 Cannot identify compiler toolset to define integral types. \
83 Please contact support@onixs.biz on further assistance.
84
85#endif
86
87//
88
90 template<typename Type, Type Constant>
92 {
94 typedef Type Value;
95
98 operator Value() const
99 {
100 return Constant;
101 }
102
105 {
106 return Constant;
107 }
108
110 static const Value value()
111 {
112 return Constant;
113 }
114 };
115
117 ONIXS_FMXUST_BIMP_API void toStr(std::string&, Int8);
118
120 inline std::string toStr(Int8 number)
121 {
122 std::string str;
123
124 toStr(str, number);
125
126 return str;
127 }
128
130 ONIXS_FMXUST_BIMP_API void toStr(std::string&, UInt8);
131
133 inline std::string toStr(UInt8 number)
134 {
135 std::string str;
136
137 toStr(str, number);
138
139 return str;
140 }
141
143 ONIXS_FMXUST_BIMP_API void toStr(std::string&, Int16);
144
146 inline std::string toStr(Int16 number)
147 {
148 std::string str;
149
150 toStr(str, number);
151
152 return str;
153 }
154
156 ONIXS_FMXUST_BIMP_API void toStr(std::string&, UInt16);
157
159 inline std::string toStr(UInt16 number)
160 {
161 std::string str;
162
163 toStr(str, number);
164
165 return str;
166 }
167
169 ONIXS_FMXUST_BIMP_API void toStr(std::string&, Int32);
170
172 inline std::string toStr(Int32 number)
173 {
174 std::string str;
175
176 toStr(str, number);
177
178 return str;
179 }
180
182 ONIXS_FMXUST_BIMP_API void toStr(std::string&, UInt32);
183
185 inline std::string toStr(UInt32 number)
186 {
187 std::string str;
188
189 toStr(str, number);
190
191 return str;
192 }
193
195 ONIXS_FMXUST_BIMP_API void toStr(std::string&, Int64);
196
198 inline std::string toStr(Int64 number)
199 {
200 std::string str;
201
202 toStr(str, number);
203
204 return str;
205 }
206
208 ONIXS_FMXUST_BIMP_API void toStr(std::string&, UInt64);
209
211 inline std::string toStr(UInt64 number)
212 {
213 std::string str;
214
215 toStr(str, number);
216
217 return str;
218 }
219
221 template <typename Type,Type Constant>
222 inline void toStr(std::string& str, IntegralConstant<Type, Constant> constant)
223 {
224 toStr(str, constant());
225 }
226
228 template <typename Type, Type Constant >
229 inline std::string toStr( IntegralConstant<Type, Constant> constant)
230 {
231 std::string str;
232
233 toStr(str, constant);
234
235 return str;
236 }
237 }
238 }
239 }
240}
#define ONIXS_FMXUST_BIMP_EXPLICIT
Definition Compiler.h:110
ONIXS_FMXUST_BIMP_API void toStr(std::string &, EventCode::Enum)
Appends string presentation of object.
static const Value value()
Returns value of the constant.
Definition Integral.h:110
Value operator()() const
Returns value of the constant.
Definition Integral.h:104