| The Gaudi Framework v28r2p1 (f1a77ff4)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

capi_pluginservice.h
Go to the documentation of this file.
1 #ifndef _GAUDI_C_PLUGIN_SERVICE_H_
2 #define _GAUDI_C_PLUGIN_SERVICE_H_ 1
3 /*****************************************************************************\
4 * (c) Copyright 2013 CERN *
5 * *
6 * This software is distributed under the terms of the GNU General Public *
7 * Licence version 3 (GPL Version 3), copied verbatim in the file "LICENCE". *
8 * *
9 * In applying this licence, CERN does not waive the privileges and immunities *
10 * granted to it by virtue of its status as an Intergovernmental Organization *
11 * or submit itself to any jurisdiction. *
12 \*****************************************************************************/
13
14 /* @author Sebastien Binet <binet@cern.ch> */
15
16 #include <stdint.h>
17
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21
22 #if __GNUC__ >= 4
23 # define CGAUDI_HASCLASSVISIBILITY
24 #endif
25
26 #if defined(CGAUDI_HASCLASSVISIBILITY)
27 # define CGAUDI_IMPORT __attribute__((visibility("default")))
28 # define CGAUDI_EXPORT __attribute__((visibility("default")))
29 # define CGAUDI_LOCAL __attribute__((visibility("hidden")))
30 #else
31 # define CGAUDI_IMPORT
32 # define CGAUDI_EXPORT
33 # define CGAUDI_LOCAL
34 #endif
35
36 #define CGAUDI_API CGAUDI_EXPORT
37
38 typedef struct {
39 void *registry;
40 } cgaudi_pluginsvc_t;
41
42 typedef struct {
43 cgaudi_pluginsvc_t registry;
44 const char *id;
45 } cgaudi_factory_t;
46
47 typedef struct {
48 cgaudi_pluginsvc_t registry;
49 const char *id;
50 const char *key;
51 } cgaudi_property_t;
52
53 CGAUDI_API
54 cgaudi_pluginsvc_t
55 cgaudi_pluginsvc_instance(void);
56
57 CGAUDI_API
58 int
59 cgaudi_pluginsvc_get_factory_size(cgaudi_pluginsvc_t self);
60
61 CGAUDI_API
62 cgaudi_factory_t
63 cgaudi_pluginsvc_get_factory_at(cgaudi_pluginsvc_t self, int n);
64
65 CGAUDI_API
66 const char*
67 cgaudi_factory_get_library(cgaudi_factory_t self);
68
69 CGAUDI_API
70 const char*
71 cgaudi_factory_get_type(cgaudi_factory_t self);
72
73 CGAUDI_API
74 const char*
75 cgaudi_factory_get_rtype(cgaudi_factory_t self);
76
77 CGAUDI_API
78 const char*
79 cgaudi_factory_get_classname(cgaudi_factory_t self);
80
81 CGAUDI_API
82 int
83 cgaudi_factory_get_property_size(cgaudi_factory_t self);
84
85 CGAUDI_API
86 cgaudi_property_t
87 cgaudi_factory_get_property_at(cgaudi_factory_t self, int n);
88
89 CGAUDI_API
90 const char*
91 cgaudi_property_get_key(cgaudi_property_t self);
92
93 CGAUDI_API
94 const char*
95 cgaudi_property_get_value(cgaudi_property_t self);
96
97
98 #ifdef __cplusplus
99 } /* extern "C" */
100 #endif
101
102 #endif /* !_GAUDI_C_PLUGIN_SERVICE_H_ */
103
cgaudi_factory_t::registry
cgaudi_pluginsvc_t registry
Definition: capi_pluginservice.h:43
cgaudi_property_get_key
CGAUDI_API const char * cgaudi_property_get_key(cgaudi_property_t self)
Definition: capi_pluginservice.cpp:82
cgaudi_pluginsvc_t
Definition: capi_pluginservice.h:38
cgaudi_factory_get_property_size
CGAUDI_API int cgaudi_factory_get_property_size(cgaudi_factory_t self)
Definition: capi_pluginservice.cpp:62
cgaudi_property_t::id
const char * id
Definition: capi_pluginservice.h:49
cgaudi_factory_get_classname
CGAUDI_API const char * cgaudi_factory_get_classname(cgaudi_factory_t self)
Definition: capi_pluginservice.cpp:55
CGAUDI_API
#define CGAUDI_API
Definition: capi_pluginservice.h:36
cgaudi_factory_get_rtype
CGAUDI_API const char * cgaudi_factory_get_rtype(cgaudi_factory_t self)
Definition: capi_pluginservice.cpp:48
cgaudi_pluginsvc_get_factory_at
CGAUDI_API cgaudi_factory_t cgaudi_pluginsvc_get_factory_at(cgaudi_pluginsvc_t self, int n)
Definition: capi_pluginservice.cpp:24
GaudiPluginService.cpluginsvc.n
n
Definition: cpluginsvc.py:217
cgaudi_pluginsvc_t::registry
void * registry
Definition: capi_pluginservice.h:39
cgaudi_factory_t
Definition: capi_pluginservice.h:42
cgaudi_property_t::registry
cgaudi_pluginsvc_t registry
Definition: capi_pluginservice.h:48
cgaudi_pluginsvc_instance
CGAUDI_API cgaudi_pluginsvc_t cgaudi_pluginsvc_instance(void)
Definition: capi_pluginservice.cpp:10
cgaudi_property_t
Definition: capi_pluginservice.h:47
cgaudi_factory_get_property_at
CGAUDI_API cgaudi_property_t cgaudi_factory_get_property_at(cgaudi_factory_t self, int n)
Definition: capi_pluginservice.cpp:71
cgaudi_property_t::key
const char * key
Definition: capi_pluginservice.h:50
cgaudi_factory_t::id
const char * id
Definition: capi_pluginservice.h:44
cgaudi_pluginsvc_get_factory_size
CGAUDI_API int cgaudi_pluginsvc_get_factory_size(cgaudi_pluginsvc_t self)
Definition: capi_pluginservice.cpp:17
cgaudi_factory_get_type
CGAUDI_API const char * cgaudi_factory_get_type(cgaudi_factory_t self)
Definition: capi_pluginservice.cpp:41
cgaudi_factory_get_library
CGAUDI_API const char * cgaudi_factory_get_library(cgaudi_factory_t self)
Definition: capi_pluginservice.cpp:34
cgaudi_property_get_value
CGAUDI_API const char * cgaudi_property_get_value(cgaudi_property_t self)
Definition: capi_pluginservice.cpp:88