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>
23
#include <
OnixS/B3/MarketData/UMDF/Compiler.h
>
24
25
#if defined (_MSC_VER)
26
#define ONIXS_B3_UMDF_MD_API_DECL(typeKind, typeName) \
27
typeKind 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) \
32
typeKind 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
Compiler.h
OnixS
B3
MarketData
UMDF
ABI.h
Technical Support:
support@onixs.biz
Copyright © 2025 OnixS. All Rights Reserved.