OnixS C++ ICE Binary Order Entry Handler
1.0.0
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
#pragma once
20
21
#include <cstdint>
22
#include <
OnixS/ICE/BOE/Compiler.h
>
23
24
#if defined (ONIXS_ICEBOE_COMPILER_IS_MSVC)
25
#define ONIXS_ICEBOE_API_DECL(typeKind, typeName) typeKind ONIXS_ICEBOE_EXPORTED typeName
26
#else
27
#define ONIXS_ICEBOE_API_DECL(typeKind, typeName) typeKind typeName
28
#endif
29
30
// Common part of export-related decorations.
31
32
#define \
33
ONIXS_ICEBOE_EXPORTED_CLASS_DECL(typeName) \
34
ONIXS_ICEBOE_EXPORTED_DECL(class, typeName)
35
36
#define \
37
ONIXS_ICEBOE_EXPORTED_STRUCT_DECL(typeName) \
38
ONIXS_ICEBOE_EXPORTED_DECL(struct, typeName)
39
40
#define \
41
ONIXS_ICEBOE_EXPORTED_CLASS \
42
class ONIXS_ICEBOE_EXPORTED
43
44
#define \
45
ONIXS_ICEBOE_EXPORTED_STRUCT \
46
struct ONIXS_ICEBOE_EXPORTED
47
48
#define \
49
ONIXS_ICEBOE_INTERNAL_CLASS_DECL(typeName) \
50
class typeName
51
52
#define \
53
ONIXS_ICEBOE_INTERNAL_STRUCT_DECL(typeName) \
54
struct typeName
55
56
#if defined(ONIXS_ICEBOE_COMPILER_IS_GNU)
57
# define ONIXS_ICEBOE_DIAG_PUSH ONIXS_ICEBOE_PRAGMA(GCC diagnostic push)
58
# define ONIXS_ICEBOE_DIAG_POP ONIXS_ICEBOE_PRAGMA(GCC diagnostic pop)
59
#elif defined(ONIXS_ICEBOE_COMPILER_IS_MSVC)
60
# define ONIXS_ICEBOE_DIAG_PUSH ONIXS_ICEBOE_PRAGMA(warning(push))
61
# define ONIXS_ICEBOE_DIAG_POP ONIXS_ICEBOE_PRAGMA(warning(pop))
62
#else
63
# define ONIXS_ICEBOE_DIAG_PUSH
64
# define ONIXS_ICEBOE_DIAG_POP
65
#endif
66
67
#if defined(ONIXS_ICEBOE_COMPILER_IS_GNU) && (ONIXS_CURRENT_CXX_STD < 201402L) && defined(__INCLUDE_LEVEL__) && (__INCLUDE_LEVEL__ > 0)
68
# define ONIXS_ICEBOE_SILENCE_PUBLIC_HEADER ONIXS_ICEBOE_PRAGMA(GCC system_header)
69
#else
70
# define ONIXS_ICEBOE_SILENCE_PUBLIC_HEADER
71
#endif
72
73
#if defined(ONIXS_ICEBOE_COMPILER_IS_GNU) && (__GNUC__ == 8) && !defined(NDEBUG)
74
# define ONIXS_ICEBOE_SILENCE_TYPE_LIMITS ONIXS_ICEBOE_PRAGMA(GCC diagnostic ignored "-Wtype-limits")
75
#else
76
# define ONIXS_ICEBOE_SILENCE_TYPE_LIMITS
77
#endif
78
79
#if defined(ONIXS_ICEBOE_COMPILER_IS_MSVC)
80
# define ONIXS_ICEBOE_SILENCE_DLLEXPORT ONIXS_ICEBOE_PRAGMA(warning(disable : 4275 4251))
81
#else
82
# define ONIXS_ICEBOE_SILENCE_DLLEXPORT
83
#endif
84
85
#define ONIXS_ICEBOE_SILENCE_BEGIN \
86
ONIXS_ICEBOE_SILENCE_PUBLIC_HEADER \
87
ONIXS_ICEBOE_DIAG_PUSH \
88
ONIXS_ICEBOE_SILENCE_TYPE_LIMITS \
89
ONIXS_ICEBOE_SILENCE_DLLEXPORT
90
91
#define ONIXS_ICEBOE_SILENCE_END \
92
ONIXS_ICEBOE_DIAG_POP
93
94
#define ONIXS_ICEBOE_NAMESPACE_BEGIN \
95
ONIXS_ICEBOE_SILENCE_BEGIN \
96
namespace OnixS { namespace ICE { namespace BOE {
97
98
#define ONIXS_ICEBOE_NAMESPACE_END \
99
ONIXS_ICEBOE_SILENCE_END \
100
}}}
101
102
#define ONIXS_ICEBOE_MESSAGING_NAMESPACE_BEGIN \
103
ONIXS_ICEBOE_NAMESPACE_BEGIN \
104
namespace Messaging {
105
106
#define ONIXS_ICEBOE_MESSAGING_NAMESPACE_END \
107
ONIXS_ICEBOE_NAMESPACE_END \
108
}
109
110
#define ONIXS_ICEBOE_MESSAGING_TAGBASED_NAMESPACE_BEGIN ONIXS_ICEBOE_MESSAGING_NAMESPACE_BEGIN namespace TagBased {
111
#define ONIXS_ICEBOE_MESSAGING_TAGBASED_NAMESPACE_END ONIXS_ICEBOE_MESSAGING_NAMESPACE_END }
112
113
#define ONIXS_ICEBOE_NAMESPACE OnixS::ICE::BOE
114
#define ONIXS_ICEBOE_MESSAGING_NAMESPACE ONIXS_ICEBOE_NAMESPACE::Messaging
Compiler.h
OnixS
ICE
BOE
ABI.h
Technical Support:
support@onixs.biz
Copyright © 2025 OnixS. All Rights Reserved.