HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
H5PLextern.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * Copyright by The HDF Group. *
3  * All rights reserved. *
4  * *
5  * This file is part of HDF5. The full HDF5 copyright notice, including *
6  * terms governing use, modification, and redistribution, is contained in *
7  * the files COPYING and Copyright.html. COPYING can be found at the root *
8  * of the source code distribution tree; Copyright.html can be found at the *
9  * root level of an installed copy of the electronic document set and is *
10  * linked from the top-level documents page. It can also be found at *
11  * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have access *
12  * to either file, you may request a copy from help@hdfgroup.org. *
13  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
14 
15 /*
16  * Programmer: Raymond Lu <songyulu@hdfgroup.org>
17  * 13 February 2013
18  */
19 #ifndef _H5PLextern_H
20 #define _H5PLextern_H
21 
22 /* Include HDF5 header */
23 #include "hdf5.h"
24 
25 /*******************/
26 /* Public Typedefs */
27 /*******************/
28 
29 /* Plugin type */
30 typedef enum H5PL_type_t {
31  H5PL_TYPE_ERROR = -1, /*error */
32  H5PL_TYPE_FILTER = 0, /*filter */
33  H5PL_TYPE_NONE = 1 /*this must be last! */
34 } H5PL_type_t;
35 
36 
37 #ifdef H5_BUILT_AS_DYNAMIC_LIB
38 
39  #if defined (hdf5_EXPORTS)
40  /* hdf5 library imports from plugin */
41  #if defined (_MSC_VER) /* MSVC Compiler Case */
42  #define H5PLUGIN_DLL __declspec(dllimport)
43  #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */
44  #define H5PLUGIN_DLL __attribute__ ((visibility("default")))
45  #endif
46  #else
47  /* plugins always export */
48  #if defined (_MSC_VER) /* MSVC Compiler Case */
49  #define H5PLUGIN_DLL __declspec(dllexport)
50  #elif (__GNUC__ >= 4) /* GCC 4.x has support for visibility options */
51  #define H5PLUGIN_DLL __attribute__ ((visibility("default")))
52  #endif
53  #endif
54 
55 #elif defined(H5_BUILT_AS_STATIC_LIB)
56  #define H5PLUGIN_DLL
57 #else
58 
59  #if defined(H5_HAVE_WIN32_API)
60  #if defined(_HDF5DLL_)
61  #pragma warning(disable: 4273) /* Disable the dll linkage warnings */
62  #define H5PLUGIN_DLL __declspec(dllimport)
63  #elif defined(_HDF5USEDLL_)
64  #define H5PLUGIN_DLL __declspec(dllexport)
65  #endif /* _HDF5DLL_ */
66  #else /*H5_HAVE_WIN32_API*/
67  #define H5PLUGIN_DLL
68  #endif /*H5_HAVE_WIN32_API*/
69 
70 #endif /* H5_BUILT_AS_xxx_LIB */
71 
72 #ifdef __cplusplus
73 extern "C" {
74 #endif
75 
77 H5PLUGIN_DLL const void *H5PLget_plugin_info(void);
78 
79 #ifdef __cplusplus
80 }
81 #endif
82 
83 #endif /* _H5PLextern_H */
84 
H5PLUGIN_DLL H5PL_type_t H5PLget_plugin_type(void)
#define H5PLUGIN_DLL
Definition: H5PLextern.h:67
H5PL_type_t
Definition: H5PLextern.h:30
H5PLUGIN_DLL const void * H5PLget_plugin_info(void)