OnixS C++ B3 Binary UMDF Market Data Handler 1.10.0
Users' manual and API documentation
Loading...
Searching...
No Matches
ABI.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 <OnixS/B3/MarketData/UMDF/Export.h>
24
25#if defined (_MSC_VER)
26#define ONIXS_B3_UMDF_MD_API_DECL(typeKind, typeName) \
27typeKind ONIXS_B3_UMDF_MD_API typeName
28
29#define ONIXS_B3_UMDF_MD_THROWABLE
30#else
31#define ONIXS_B3_UMDF_MD_API_DECL(typeKind, typeName) \
32typeKind typeName
33
34#define ONIXS_B3_UMDF_MD_THROWABLE ONIXS_B3_UMDF_MD_API
35#endif
36
37#define ONIXS_B3_UMDF_MD_EXPORTED ONIXS_B3_UMDF_MD_API
38
39// Common part of export-related decorations.
40
41#define \
42 ONIXS_B3_UMDF_MD_EXPORTED_CLASS_DECL(typeName) \
43 ONIXS_B3_UMDF_MD_EXPORTED_DECL(class, typeName)
44
45#define \
46 ONIXS_B3_UMDF_MD_EXPORTED_STRUCT_DECL(typeName) \
47 ONIXS_B3_UMDF_MD_EXPORTED_DECL(struct, typeName)
48
49#define \
50 ONIXS_B3_UMDF_MD_EXPORTED_CLASS \
51 class ONIXS_B3_UMDF_MD_EXPORTED
52
53#define \
54 ONIXS_B3_UMDF_MD_EXPORTED_STRUCT \
55 struct ONIXS_B3_UMDF_MD_EXPORTED
56
57#define \
58 ONIXS_B3_UMDF_MD_INTERNAL_CLASS_DECL(typeName) \
59 class typeName
60
61#define \
62 ONIXS_B3_UMDF_MD_INTERNAL_STRUCT_DECL(typeName) \
63 struct typeName
64
65#if defined (ONIXS_B3_UMDF_MD_LTWT_AS_EXPORTED)
66
67#define \
68 ONIXS_B3_UMDF_MD_LTWT_CLASS \
69 ONIXS_B3_UMDF_MD_EXPORTED_CLASS
70
71#define \
72 ONIXS_B3_UMDF_MD_LTWT_STRUCT \
73 ONIXS_B3_UMDF_MD_EXPORTED_STRUCT
74
75#define \
76 ONIXS_B3_UMDF_MD_LTWT_EXPORTED \
77 /* Nothing */
78
79#define \
80 ONIXS_B3_UMDF_MD_LTWT_CLASS_DECL(name) \
81 ONIXS_B3_UMDF_MD_EXPORTED_CLASS_DECL(name)
82
83#define \
84 ONIXS_B3_UMDF_MD_LTWT_STRUCT_DECL(name) \
85 ONIXS_B3_UMDF_MD_EXPORTED_STRUCT_DECL(name)
86
87#else
88
89#define \
90 ONIXS_B3_UMDF_MD_LTWT_CLASS class
91
92#define \
93 ONIXS_B3_UMDF_MD_LTWT_STRUCT struct
94
95#define \
96 ONIXS_B3_UMDF_MD_LTWT_EXPORTED \
97 ONIXS_B3_UMDF_MD_EXPORTED
98
99#define \
100 ONIXS_B3_UMDF_MD_LTWT_CLASS_DECL(name) \
101 class name
102
103#define \
104 ONIXS_B3_UMDF_MD_LTWT_STRUCT_DECL(name) \
105 struct name
106
107#endif // ONIXS_B3_UMDF_MD_LTWT_AS_EXPORTED
108
109// Structure packing.
110
111#define \
112 ONIXS_B3_UMDF_MD_TO_STR(entity) \
113 #entity
114
115#if defined (_MSC_VER)
116
117#define \
118 ONIXS_B3_UMDF_MD_DATA_PACKING_BEGIN(alignment) \
119 __pragma(pack(push, alignment))
120
121#define \
122 ONIXS_B3_UMDF_MD_DATA_PACKING_END \
123 __pragma(pack(pop))
124
125#elif defined (__GNUC__) && (__GNUC__ >= 3)
126
127#define \
128 ONIXS_B3_UMDF_MD_DATA_PACKING_BEGIN(alignment) \
129 _Pragma(ONIXS_B3_UMDF_MD_TO_STR(pack(push, alignment)))
130
131#define \
132 ONIXS_B3_UMDF_MD_DATA_PACKING_END \
133 _Pragma("pack(pop)")
134
135#else
136
137#error \
138 Compiler toolset is not (yet) supported. \
139 Please contact support@onixs.biz for further assistance.
140
141#endif
142
143#define \
144 ONIXS_B3_UMDF_MD_TESTING_NAMESPACE_BEGIN \
145 namespace OnixS { namespace B3 { namespace MarketData { namespace UMDF { namespace Testing {
146
147
148#define \
149 ONIXS_B3_UMDF_MD_TESTING_NAMESPACE_END \
150 }}}}}
151
152#define \
153 ONIXS_B3_UMDF_MD_MESSAGING_NAMESPACE_BEGIN \
154 namespace OnixS { namespace B3 { namespace MarketData { namespace UMDF { namespace Messaging {
155
156
157#define \
158 ONIXS_B3_UMDF_MD_MESSAGING_NAMESPACE_END \
159 }}}}}
160
161
162#define \
163 ONIXS_B3_UMDF_MD_NAMESPACE_BEGIN \
164 namespace OnixS { namespace B3 { namespace MarketData { namespace UMDF {
165
166
167#define \
168 ONIXS_B3_UMDF_MD_NAMESPACE_END \
169 }}}}
170
171#define ONIXS_B3_UMDF_MD_MESSAGING OnixS::B3::MarketData::UMDF::Messaging