OnixS C++ B3 Binary UMDF Market Data Handler
1.4.2
API documentation
Home
Contents
Namespaces
Classes
Files
File List
File Members
OnixS
B3
MarketData
UMDF
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 \
91
class ONIXS_B3_UMDF_MD_GCC44_SPURIOUS_WARNING_TURNAROUND
92
93
#define \
94
ONIXS_B3_UMDF_MD_LTWT_STRUCT \
95
struct ONIXS_B3_UMDF_MD_GCC44_SPURIOUS_WARNING_TURNAROUND
96
97
#define \
98
ONIXS_B3_UMDF_MD_LTWT_EXPORTED \
99
ONIXS_B3_UMDF_MD_EXPORTED
100
101
#define \
102
ONIXS_B3_UMDF_MD_LTWT_CLASS_DECL(name) \
103
class ONIXS_B3_UMDF_MD_GCC44_SPURIOUS_WARNING_TURNAROUND name
104
105
#define \
106
ONIXS_B3_UMDF_MD_LTWT_STRUCT_DECL(name) \
107
struct ONIXS_B3_UMDF_MD_GCC44_SPURIOUS_WARNING_TURNAROUND name
108
109
#endif // ONIXS_B3_UMDF_MD_LTWT_AS_EXPORTED
110
111
// Structure packing.
112
113
#define \
114
ONIXS_B3_UMDF_MD_TO_STR(entity) \
115
#entity
116
117
#if defined (_MSC_VER)
118
119
#define \
120
ONIXS_B3_UMDF_MD_DATA_PACKING_BEGIN(alignment) \
121
__pragma(pack(push, alignment))
122
123
#define \
124
ONIXS_B3_UMDF_MD_DATA_PACKING_END \
125
__pragma(pack(pop))
126
127
#elif defined (__GNUC__) && (__GNUC__ >= 3)
128
129
#define \
130
ONIXS_B3_UMDF_MD_DATA_PACKING_BEGIN(alignment) \
131
_Pragma(ONIXS_B3_UMDF_MD_TO_STR(pack(push, alignment)))
132
133
#define \
134
ONIXS_B3_UMDF_MD_DATA_PACKING_END \
135
_Pragma("pack(pop)")
136
137
#else
138
139
#error \
140
Compiler toolset is not (yet) supported. \
141
Please contact support@onixs.biz for further assistance.
142
143
#endif
144
145
#define \
146
ONIXS_B3_UMDF_MD_MESSAGING_NAMESPACE_BEGIN \
147
namespace OnixS { namespace B3 { namespace MarketData { namespace UMDF { namespace Messaging {
148
149
150
#define \
151
ONIXS_B3_UMDF_MD_MESSAGING_NAMESPACE_END \
152
}}}}}
153
154
155
#define \
156
ONIXS_B3_UMDF_MD_NAMESPACE_BEGIN \
157
namespace OnixS { namespace B3 { namespace MarketData { namespace UMDF {
158
159
160
#define \
161
ONIXS_B3_UMDF_MD_NAMESPACE_END \
162
}}}}
163
164
#define ONIXS_B3_UMDF_MD_MESSAGING OnixS::B3::MarketData::UMDF::Messaging
Compiler.h