OnixS C++ Euronext Optiq MDG Handler 1.3.3
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/Euronext/MarketData/OptiqMdg/Export.h>
24
25#if defined (_MSC_VER)
26#define ONIXS_EURONEXT_OPTIQMDG_API_DECL(typeKind, typeName) \
27typeKind ONIXS_EURONEXT_OPTIQMDG_API typeName
28
29#define ONIXS_EURONEXT_OPTIQMDG_THROWABLE
30#else
31#define ONIXS_EURONEXT_OPTIQMDG_API_DECL(typeKind, typeName) \
32typeKind typeName
33
34#define ONIXS_EURONEXT_OPTIQMDG_THROWABLE ONIXS_EURONEXT_OPTIQMDG_API
35#endif
36
37#define ONIXS_EURONEXT_OPTIQMDG_EXPORTED ONIXS_EURONEXT_OPTIQMDG_API
38
39// Common part of export-related decorations.
40
41#define \
42 ONIXS_EURONEXT_OPTIQMDG_EXPORTED_CLASS_DECL(typeName) \
43 ONIXS_EURONEXT_OPTIQMDG_EXPORTED_DECL(class, typeName)
44
45#define \
46 ONIXS_EURONEXT_OPTIQMDG_EXPORTED_STRUCT_DECL(typeName) \
47 ONIXS_EURONEXT_OPTIQMDG_EXPORTED_DECL(struct, typeName)
48
49#define \
50 ONIXS_EURONEXT_OPTIQMDG_EXPORTED_CLASS \
51 class ONIXS_EURONEXT_OPTIQMDG_EXPORTED
52
53#define \
54 ONIXS_EURONEXT_OPTIQMDG_EXPORTED_STRUCT \
55 struct ONIXS_EURONEXT_OPTIQMDG_EXPORTED
56
57#define \
58 ONIXS_EURONEXT_OPTIQMDG_INTERNAL_CLASS_DECL(typeName) \
59 class typeName
60
61#define \
62 ONIXS_EURONEXT_OPTIQMDG_INTERNAL_STRUCT_DECL(typeName) \
63 struct typeName
64
65#if defined (ONIXS_EURONEXT_OPTIQMDG_LTWT_AS_EXPORTED)
66
67#define \
68 ONIXS_EURONEXT_OPTIQMDG_LTWT_CLASS \
69 ONIXS_EURONEXT_OPTIQMDG_EXPORTED_CLASS
70
71#define \
72 ONIXS_EURONEXT_OPTIQMDG_LTWT_STRUCT \
73 ONIXS_EURONEXT_OPTIQMDG_EXPORTED_STRUCT
74
75#define \
76 ONIXS_EURONEXT_OPTIQMDG_LTWT_EXPORTED \
77 /* Nothing */
78
79#define \
80 ONIXS_EURONEXT_OPTIQMDG_LTWT_CLASS_DECL(name) \
81 ONIXS_EURONEXT_OPTIQMDG_EXPORTED_CLASS_DECL(name)
82
83#define \
84 ONIXS_EURONEXT_OPTIQMDG_LTWT_STRUCT_DECL(name) \
85 ONIXS_EURONEXT_OPTIQMDG_EXPORTED_STRUCT_DECL(name)
86
87#else
88
89#define \
90 ONIXS_EURONEXT_OPTIQMDG_LTWT_CLASS \
91 class ONIXS_EURONEXT_OPTIQMDG_GCC44_SPURIOUS_WARNING_TURNAROUND
92
93#define \
94 ONIXS_EURONEXT_OPTIQMDG_LTWT_STRUCT \
95 struct ONIXS_EURONEXT_OPTIQMDG_GCC44_SPURIOUS_WARNING_TURNAROUND
96
97#define \
98 ONIXS_EURONEXT_OPTIQMDG_LTWT_EXPORTED \
99 ONIXS_EURONEXT_OPTIQMDG_EXPORTED
100
101#define \
102 ONIXS_EURONEXT_OPTIQMDG_LTWT_CLASS_DECL(name) \
103 class ONIXS_EURONEXT_OPTIQMDG_GCC44_SPURIOUS_WARNING_TURNAROUND name
104
105#define \
106 ONIXS_EURONEXT_OPTIQMDG_LTWT_STRUCT_DECL(name) \
107 struct ONIXS_EURONEXT_OPTIQMDG_GCC44_SPURIOUS_WARNING_TURNAROUND name
108
109#endif // ONIXS_EURONEXT_OPTIQMDG_LTWT_AS_EXPORTED
110
111// Structure packing.
112
113#define \
114 ONIXS_EURONEXT_OPTIQMDG_TO_STR(entity) \
115 #entity
116
117#if defined (_MSC_VER)
118
119#define \
120 ONIXS_EURONEXT_OPTIQMDG_DATA_PACKING_BEGIN(alignment) \
121 __pragma(pack(push, alignment))
122
123#define \
124 ONIXS_EURONEXT_OPTIQMDG_DATA_PACKING_END \
125 __pragma(pack(pop))
126
127#elif defined (__GNUC__) && (__GNUC__ >= 3)
128
129#define \
130 ONIXS_EURONEXT_OPTIQMDG_DATA_PACKING_BEGIN(alignment) \
131 _Pragma(ONIXS_EURONEXT_OPTIQMDG_TO_STR(pack(push, alignment)))
132
133#define \
134 ONIXS_EURONEXT_OPTIQMDG_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_EURONEXT_OPTIQMDG_MESSAGING_NAMESPACE_BEGIN \
147 namespace OnixS { namespace Euronext { namespace MarketData { namespace OptiqMdg { namespace Messaging {
148
149
150#define \
151 ONIXS_EURONEXT_OPTIQMDG_MESSAGING_NAMESPACE_END \
152 }}}}}
153
154
155#define \
156 ONIXS_EURONEXT_OPTIQMDG_NAMESPACE_BEGIN \
157 namespace OnixS { namespace Euronext { namespace MarketData { namespace OptiqMdg {
158
159
160#define \
161 ONIXS_EURONEXT_OPTIQMDG_NAMESPACE_END \
162 }}}}
163
164#define ONIXS_EURONEXT_OPTIQMDG_MESSAGING OnixS::Euronext::MarketData::OptiqMdg::Messaging