OnixS C++ CME iLink 3 Binary Order Entry Handler 1.18.9
API Documentation
Loading...
Searching...
No Matches
ABI.h
Go to the documentation of this file.
1#pragma once
2/*
3* Copyright Onix Solutions Limited [OnixS]. All rights reserved.
4*
5* This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
6* and international copyright treaties.
7*
8* Access to and use of the software is governed by the terms of the applicable OnixS Software
9* Services Agreement (the Agreement) and Customer end user license agreements granting
10* a non-assignable, non-transferable and non-exclusive license to use the software
11* for it's own data processing purposes under the terms defined in the Agreement.
12*
13* Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
14* of this source code or associated reference material to any other location for further reproduction
15* or redistribution, and any amendments to this copyright notice, are expressly prohibited.
16*
17* Any reproduction or redistribution for sale or hiring of the Software not in accordance with
18* the terms of the Agreement is a violation of copyright law.
19*/
20
23
24#if defined (_MSC_VER)
25
26#define ONIXS_ILINK3_API_DECL(typeKind, typeName) \
27 typeKind ONIXS_ILINK3_EXPORTED typeName
28#else
29#define ONIXS_ILINK3_API_DECL(typeKind, typeName) \
30 typeKind typeName
31#endif
32
33// Common part of export-related decorations.
34
35#define \
36 ONIXS_ILINK3_EXPORTED_CLASS_DECL(typeName) \
37 ONIXS_ILINK3_EXPORTED_DECL(class, typeName)
38
39#define \
40 ONIXS_ILINK3_EXPORTED_STRUCT_DECL(typeName) \
41 ONIXS_ILINK3_EXPORTED_DECL(struct, typeName)
42
43#define \
44 ONIXS_ILINK3_EXPORTED_CLASS \
45 class ONIXS_ILINK3_EXPORTED
46
47#define \
48 ONIXS_ILINK3_EXPORTED_STRUCT \
49 struct ONIXS_ILINK3_EXPORTED
50
51#define \
52 ONIXS_ILINK3_INTERNAL_CLASS_DECL(typeName) \
53 class typeName
54
55#define \
56 ONIXS_ILINK3_INTERNAL_STRUCT_DECL(typeName) \
57 struct typeName
58
59#if defined (ONIXS_ILINK3_LTWT_AS_EXPORTED)
60
61#define \
62 ONIXS_ILINK3_LTWT_CLASS \
63 ONIXS_ILINK3_EXPORTED_CLASS
64
65#define \
66 ONIXS_ILINK3_LTWT_STRUCT \
67 ONIXS_ILINK3_EXPORTED_STRUCT
68
69#define \
70 ONIXS_ILINK3_LTWT_EXPORTED \
71 /* Nothing */
72
73#define \
74 ONIXS_ILINK3_LTWT_CLASS_DECL(name) \
75 ONIXS_ILINK3_EXPORTED_CLASS_DECL(name)
76
77#define \
78 ONIXS_ILINK3_LTWT_STRUCT_DECL(name) \
79 ONIXS_ILINK3_EXPORTED_STRUCT_DECL(name)
80
81#else
82
83#define \
84 ONIXS_ILINK3_LTWT_CLASS \
85 class ONIXS_ILINK3_GCC44_SPURIOUS_WARNING_TURNAROUND
86
87#define \
88 ONIXS_ILINK3_LTWT_STRUCT \
89 struct ONIXS_ILINK3_GCC44_SPURIOUS_WARNING_TURNAROUND
90
91#define \
92 ONIXS_ILINK3_LTWT_EXPORTED \
93 ONIXS_ILINK3_EXPORTED
94
95#define \
96 ONIXS_ILINK3_LTWT_CLASS_DECL(name) \
97 class name
98
99#define \
100 ONIXS_ILINK3_LTWT_STRUCT_DECL(name) \
101 struct name
102
103#endif // ONIXS_ILINK3_LTWT_AS_EXPORTED
104
105// Structure packing.
106
107#define \
108 ONIXS_ILINK3_TO_STR(entity) \
109 #entity
110
111#if defined (_MSC_VER)
112
113#define \
114 ONIXS_ILINK3_DATA_PACKING_BEGIN(alignment) \
115 __pragma(pack(push, alignment))
116
117#define \
118 ONIXS_ILINK3_DATA_PACKING_END \
119 __pragma(pack(pop))
120
121#elif defined (__GNUC__) && (__GNUC__ >= 3)
122
123#define \
124 ONIXS_ILINK3_DATA_PACKING_BEGIN(alignment) \
125 _Pragma(ONIXS_ILINK3_TO_STR(pack(push, alignment)))
126
127#define \
128 ONIXS_ILINK3_DATA_PACKING_END \
129 _Pragma("pack(pop)")
130
131#else
132
133#error \
134 Compiler toolset is not (yet) supported. \
135 Please contact support@onixs.biz for further assistance.
136
137#endif
138
139#define \
140 ONIXS_ILINK3_MESSAGING_NAMESPACE_BEGIN \
141 namespace OnixS { namespace CME { namespace iLink3 { namespace Messaging {
142
143#define \
144 ONIXS_ILINK3_MESSAGING_NAMESPACE_END \
145 }}}}
146
147
148#define \
149 ONIXS_ILINK3_MESSAGING_TAGBASED_NAMESPACE_BEGIN \
150 namespace OnixS { namespace CME { namespace iLink3 { namespace Messaging { namespace TagBased {
151
152#define \
153 ONIXS_ILINK3_MESSAGING_TAGBASED_NAMESPACE_END \
154 }}}}}