Qpid Proton C API 0.39.0
 
Loading...
Searching...
No Matches
import_export.h
1#ifndef PROTON_IMPORT_EXPORT_H
2#define PROTON_IMPORT_EXPORT_H 1
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
35#if defined(PROTON_DECLARE_STATIC)
36/* Static library - no imports/exports */
37# define PN_EXPORT
38# define PN_IMPORT
39#elif defined(_WIN32)
40/* Import and Export definitions for Windows */
41# define PN_EXPORT __declspec(dllexport)
42# define PN_IMPORT __declspec(dllimport)
43#else
44/* Non-Windows (Linux, etc.) definitions */
45# define PN_EXPORT __attribute ((visibility ("default")))
46# define PN_IMPORT
47#endif
48
49/* For core proton library symbols */
50#if defined(qpid_proton_core_EXPORTS) || defined(qpid_proton_EXPORTS)
51# define PN_EXTERN PN_EXPORT
52#else
53# define PN_EXTERN PN_IMPORT
54#endif
55
56/* For proactor proton symbols */
57#if defined(qpid_proton_proactor_EXPORTS) || defined(qpid_proton_EXPORTS)
58# define PNP_EXTERN PN_EXPORT
59#else
60# define PNP_EXTERN PN_IMPORT
61#endif
62
63/* For proactor proton symbols */
64#if defined(qpid_proton_tls_EXPORTS)
65# define PN_TLS_EXTERN PN_EXPORT
66#else
67# define PN_TLS_EXTERN PN_IMPORT
68#endif
69
70/* For extra proton symbols */
71#if defined(qpid_proton_EXPORTS)
72# define PNX_EXTERN PN_EXPORT
73#else
74# define PNX_EXTERN PN_IMPORT
75#endif
76
77#if ! defined(PN_USE_DEPRECATED_API)
78# if defined(_WIN32)
79# define PN_DEPRECATED(message) __declspec(deprecated(message))
80# elif defined __GNUC__
81# if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40500
82# define PN_DEPRECATED(message) __attribute__((deprecated))
83# else
84# define PN_DEPRECATED(message) __attribute__((deprecated(message)))
85# endif
86# endif
87#endif
88#ifndef PN_DEPRECATED
89# define PN_DEPRECATED(message)
90#endif
91
96#endif /* import_export.h */