OnixS C++ CME MDP Premium Market Data Handler
5.8.9
API Documentation
Home
Contents
Namespaces
Classes
Files
File List
File Members
OnixS
CME
MDH
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
23
#include <cstddef>
24
#include <cassert>
25
26
#include <
OnixS/CME/MDH/Export.h
>
27
#include <
OnixS/CME/MDH/Compiler.h
>
28
29
#if defined(_MSC_VER)
30
# define ONIXS_CMEMDH_EXPORTED_DECL(entity, typeName) entity ONIXS_CMEMDH_EXPORTED typeName
31
#else
32
# define ONIXS_CMEMDH_EXPORTED_DECL(entity, typeName) entity typeName
33
#endif
34
35
#define ONIXS_CMEMDH_EXPORTED_CLASS_DECL(typeName) ONIXS_CMEMDH_EXPORTED_DECL(class, typeName)
36
#define ONIXS_CMEMDH_EXPORTED_STRUCT_DECL(typeName) ONIXS_CMEMDH_EXPORTED_DECL(struct, typeName)
37
#define ONIXS_CMEMDH_INTERNAL_CLASS_DECL(typeName) class typeName
38
#define ONIXS_CMEMDH_INTERNAL_STRUCT_DECL(typeName) struct typeName
39
40
#if defined(ONIXS_CMEMDH_LTWT_AS_EXPORTED)
41
# define ONIXS_CMEMDH_LTWT ONIXS_CMEMDH_EXPORTED
42
# define ONIXS_CMEMDH_LTWT_EXPORTED
/* Nothing */
43
# define ONIXS_CMEMDH_LTWT_CLASS_DECL(name) ONIXS_CMEMDH_EXPORTED_CLASS_DECL(name)
44
# define ONIXS_CMEMDH_LTWT_STRUCT_DECL(name) ONIXS_CMEMDH_EXPORTED_STRUCT_DECL(name)
45
#else
46
# define ONIXS_CMEMDH_LTWT
/* Nothing */
47
# define ONIXS_CMEMDH_LTWT_EXPORTED ONIXS_CMEMDH_EXPORTED
48
# define ONIXS_CMEMDH_LTWT_CLASS_DECL(name) class name
49
# define ONIXS_CMEMDH_LTWT_STRUCT_DECL(name) struct name
50
#endif // ONIXS_CMEMDH_LTWT_AS_EXPORTED
51
52
// Structure packing.
53
#define ONIXS_CMEMDH_TO_STR(entity) #entity
54
55
#if defined(_MSC_VER)
56
# define ONIXS_CMEMDH_DATA_PACKING_BEGIN(alignment) __pragma(pack(push, alignment))
57
# define ONIXS_CMEMDH_DATA_PACKING_END __pragma(pack(pop))
58
#elif defined(__GNUC__) && (__GNUC__ >= 3)
59
# define ONIXS_CMEMDH_DATA_PACKING_BEGIN(alignment) _Pragma(ONIXS_CMEMDH_TO_STR(pack(push, alignment)))
60
# define ONIXS_CMEMDH_DATA_PACKING_END _Pragma("pack(pop)")
61
#else
62
# error Compiler toolset is not (yet) supported. Please contact support@onixs.biz for further assistance.
63
#endif
64
65
// A few decorations for better source-code crafting.
66
// clang-format off
67
#define ONIXS_CMEMDH_NAMESPACE_BEGIN namespace OnixS { namespace CME { namespace MDH {
68
#define ONIXS_CMEMDH_NAMESPACE_END }}}
69
70
#define ONIXS_CMEMDHFIX_NAMESPACE_BEGIN namespace OnixS { namespace CME { namespace MDH { namespace FIX {
71
#define ONIXS_CMEMDHFIX_NAMESPACE_END }}}}
72
// clang-format on
Export.h
Compiler.h