OnixS C++ CME MDP Streamlined Market Data Handler 1.2.0
API Documentation
Loading...
Searching...
No Matches
Bootstrap.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
24#include <OnixS/CME/Streamlined/Export.h>
25
26// Exporting services.
27
28#if defined (_MSC_VER)
29
30// Qualifiers for public/exported entities.
31
32#define \
33 ONIXS_CMESTREAMLINEDMDH_EXPORTED_DECL(entity, typeName) \
34 entity ONIXS_CMESTREAMLINEDMDH_EXPORTED typeName
35
36#define \
37 ONIXS_CMESTREAMLINEDMDH_INTERNAL_DECL(entity, typeName) \
38 entity ONIXS_CMESTREAMLINEDMDH_INTERNAL typeName
39
40#else
41
42#define \
43 ONIXS_CMESTREAMLINEDMDH_EXPORTED_DECL(entity, typeName) \
44 entity typeName
45
46#define \
47 ONIXS_CMESTREAMLINEDMDH_INTERNAL_DECL(entity, typeName) \
48 entity typeName
49
50#endif // Toolset selector.
51
52// Common part of export-related decorations.
53
54#define \
55 ONIXS_CMESTREAMLINEDMDH_EXPORTED_CLASS_DECL(typeName) \
56 ONIXS_CMESTREAMLINEDMDH_EXPORTED_DECL(class, typeName)
57
58#define \
59 ONIXS_CMESTREAMLINEDMDH_EXPORTED_STRUCT_DECL(typeName) \
60 ONIXS_CMESTREAMLINEDMDH_EXPORTED_DECL(struct, typeName)
61
62#define \
63 ONIXS_CMESTREAMLINEDMDH_EXPORTED_CLASS \
64 class ONIXS_CMESTREAMLINEDMDH_EXPORTED
65
66#define \
67 ONIXS_CMESTREAMLINEDMDH_EXPORTED_STRUCT \
68 struct ONIXS_CMESTREAMLINEDMDH_EXPORTED
69
70#define \
71 ONIXS_CMESTREAMLINEDMDH_INTERNAL_CLASS_DECL(typeName) \
72 ONIXS_CMESTREAMLINEDMDH_INTERNAL_DECL(class, typeName)
73
74#define \
75 ONIXS_CMESTREAMLINEDMDH_INTERNAL_STRUCT_DECL(typeName) \
76 ONIXS_CMESTREAMLINEDMDH_INTERNAL_DECL(struct, typeName)
77
78#define \
79 ONIXS_CMESTREAMLINEDMDH_INTERNAL_CLASS \
80 class ONIXS_CMESTREAMLINEDMDH_INTERNAL
81
82#define \
83 ONIXS_CMESTREAMLINEDMDH_INTERNAL_STRUCT \
84 struct ONIXS_CMESTREAMLINEDMDH_INTERNAL
85
86#if defined (ONIXS_CMESTREAMLINEDMDH_LTWT_AS_EXPORTED)
87
88#define \
89 ONIXS_CMESTREAMLINEDMDH_LTWT_CLASS \
90 ONIXS_CMESTREAMLINEDMDH_EXPORTED_CLASS
91
92#define \
93 ONIXS_CMESTREAMLINEDMDH_LTWT_STRUCT \
94 ONIXS_CMESTREAMLINEDMDH_EXPORTED_STRUCT
95
96#define \
97 ONIXS_CMESTREAMLINEDMDH_LTWT_EXPORTED \
98 /* Nothing */
99
100#define \
101 ONIXS_CMESTREAMLINEDMDH_LTWT_CLASS_DECL(name) \
102 ONIXS_CMESTREAMLINEDMDH_EXPORTED_CLASS_DECL(name)
103
104#define \
105 ONIXS_CMESTREAMLINEDMDH_LTWT_STRUCT_DECL(name) \
106 ONIXS_CMESTREAMLINEDMDH_EXPORTED_STRUCT_DECL(name)
107
108#else
109
110#define \
111 ONIXS_CMESTREAMLINEDMDH_LTWT_CLASS \
112 class
113
114#define \
115 ONIXS_CMESTREAMLINEDMDH_LTWT_STRUCT \
116 struct
117
118#define \
119 ONIXS_CMESTREAMLINEDMDH_LTWT_EXPORTED \
120 ONIXS_CMESTREAMLINEDMDH_EXPORTED
121
122#define \
123 ONIXS_CMESTREAMLINEDMDH_LTWT_CLASS_DECL(name) \
124 class name
125
126#define \
127 ONIXS_CMESTREAMLINEDMDH_LTWT_STRUCT_DECL(name) \
128 struct name
129
130#endif // ONIXS_CMESTREAMLINEDMDH_LTWT_AS_EXPORTED
131
132// Structure packing.
133
134#define \
135 ONIXS_CMESTREAMLINEDMDH_TO_STR(entity) \
136 #entity
137
138#if defined (_MSC_VER)
139
140#define \
141 ONIXS_CMESTREAMLINEDMDH_DATA_PACKING_BEGIN(alignment) \
142 __pragma(pack(push, alignment))
143
144#define \
145 ONIXS_CMESTREAMLINEDMDH_DATA_PACKING_END \
146 __pragma(pack(pop))
147
148#elif defined (__GNUC__) && (__GNUC__ >= 3)
149
150#define \
151 ONIXS_CMESTREAMLINEDMDH_DATA_PACKING_BEGIN(alignment) \
152 _Pragma(ONIXS_CMESTREAMLINEDMDH_TO_STR(pack(push, alignment)))
153
154#define \
155 ONIXS_CMESTREAMLINEDMDH_DATA_PACKING_END \
156 _Pragma("pack(pop)")
157
158#else
159
160#error \
161 Compiler toolset is not (yet) supported. \
162 Please contact support@onixs.biz for further assistance.
163
164#endif
165
166// A few decorations for better source-code crafting.
167
168#define \
169 ONIXS_CMESTREAMLINEDMDH_NAMESPACE_BEGIN \
170 namespace OnixS { namespace CME { namespace Streamlined { namespace MDH {
171
172#define \
173 ONIXS_CMESTREAMLINEDMDH_NAMESPACE_END \
174 }}}}
175
176#define \
177 STD_NAMESPACE_BEGIN \
178 namespace std {
179
180#define \
181 STD_NAMESPACE_END \
182 }