Qpid Proton C++ API 0.40.0
 
Loading...
Searching...
No Matches
export.hpp
1#ifndef PROTON_INTERNAL_EXPORT_HPP
2#define PROTON_INTERNAL_EXPORT_HPP
3
4/*
5 *
6 * Licensed to the Apache Software Foundation (ASF) under one
7 * or more contributor license agreements. See the NOTICE file
8 * distributed with this work for additional information
9 * regarding copyright ownership. The ASF licenses this file
10 * to you under the Apache License, Version 2.0 (the
11 * "License"); you may not use this file except in compliance
12 * with the License. You may obtain a copy of the License at
13 *
14 * http://www.apache.org/licenses/LICENSE-2.0
15 *
16 * Unless required by applicable law or agreed to in writing,
17 * software distributed under the License is distributed on an
18 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19 * KIND, either express or implied. See the License for the
20 * specific language governing permissions and limitations
21 * under the License.
22 *
23 */
24
26
28#if defined(_WIN32) && !defined(PN_CPP_DECLARE_STATIC)
29 //
30 // Import and Export definitions for Windows:
31 //
32# define PN_CPP_EXPORT __declspec(dllexport)
33# define PN_CPP_IMPORT __declspec(dllimport)
34# define PN_CPP_CLASS_EXPORT
35# define PN_CPP_CLASS_IMPORT
36#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
37# define PN_CPP_EXPORT __global
38# define PN_CPP_IMPORT
39# define PN_CPP_CLASS_EXPORT __global
40# define PN_CPP_CLASS_IMPORT
41#else
42 //
43 // Non-Windows (Linux, etc.) definitions:
44 //
45# define PN_CPP_EXPORT __attribute__((visibility("default")))
46# define PN_CPP_IMPORT
47# define PN_CPP_CLASS_EXPORT __attribute__((visibility("default")))
48# define PN_CPP_CLASS_IMPORT
49#endif
50
51// For qpid-proton-cpp library symbols
52#ifdef qpid_proton_cpp_EXPORTS
53# define PN_CPP_EXTERN PN_CPP_EXPORT
54# define PN_CPP_CLASS_EXTERN PN_CPP_CLASS_EXPORT
55#else
56# define PN_CPP_EXTERN PN_CPP_IMPORT
57# define PN_CPP_CLASS_EXTERN PN_CPP_CLASS_IMPORT
58#endif
59
60#if defined(PN_CPP_USE_DEPRECATED_API)
61# define PN_CPP_DEPRECATED(message)
62#else
63# if defined(PN_COMPILER_CXX_ATTRIBUTE_DEPRECATED) && PN_COMPILER_CXX_ATTRIBUTE_DEPRECATED
64# define PN_CPP_DEPRECATED(message) [[deprecated(message)]]
65# elif defined(_WIN32)
66# define PN_CPP_DEPRECATED(message) __declspec(deprecated(message))
67# elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40500
68# define PN_CPP_DEPRECATED(message) __attribute__((deprecated))
69# else
70# define PN_CPP_DEPRECATED(message) __attribute__((deprecated(message)))
71# endif
72#endif
73
75
76#endif // PROTON_INTERNAL_EXPORT_HPP