The Gaudi Framework  master (82fdf313)
Loading...
Searching...
No Matches
capi_pluginservice.h File Reference
#include <stdint.h>
Include dependency graph for capi_pluginservice.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cgaudi_pluginsvc_t
 
struct  cgaudi_factory_t
 
struct  cgaudi_property_t
 

Macros

#define CGAUDI_HASCLASSVISIBILITY
 
#define CGAUDI_IMPORT   __attribute__( ( visibility( "default" ) ) )
 
#define CGAUDI_EXPORT   __attribute__( ( visibility( "default" ) ) )
 
#define CGAUDI_LOCAL   __attribute__( ( visibility( "hidden" ) ) )
 
#define CGAUDI_API   CGAUDI_EXPORT
 

Functions

CGAUDI_API cgaudi_pluginsvc_t cgaudi_pluginsvc_instance (void)
 
CGAUDI_API int cgaudi_pluginsvc_get_factory_size (cgaudi_pluginsvc_t self)
 
CGAUDI_API cgaudi_factory_t cgaudi_pluginsvc_get_factory_at (cgaudi_pluginsvc_t self, int n)
 
CGAUDI_API const char * cgaudi_factory_get_library (cgaudi_factory_t self)
 
CGAUDI_API const char * cgaudi_factory_get_type (cgaudi_factory_t self)
 
CGAUDI_API const char * cgaudi_factory_get_classname (cgaudi_factory_t self)
 
CGAUDI_API int cgaudi_factory_get_property_size (cgaudi_factory_t self)
 
CGAUDI_API cgaudi_property_t cgaudi_factory_get_property_at (cgaudi_factory_t self, int n)
 
CGAUDI_API const char * cgaudi_property_get_key (cgaudi_property_t self)
 
CGAUDI_API const char * cgaudi_property_get_value (cgaudi_property_t self)
 

Macro Definition Documentation

◆ CGAUDI_API

#define CGAUDI_API   CGAUDI_EXPORT

Definition at line 33 of file capi_pluginservice.h.

◆ CGAUDI_EXPORT

#define CGAUDI_EXPORT   __attribute__( ( visibility( "default" ) ) )

Definition at line 25 of file capi_pluginservice.h.

◆ CGAUDI_HASCLASSVISIBILITY

#define CGAUDI_HASCLASSVISIBILITY

Definition at line 21 of file capi_pluginservice.h.

◆ CGAUDI_IMPORT

#define CGAUDI_IMPORT   __attribute__( ( visibility( "default" ) ) )

Definition at line 24 of file capi_pluginservice.h.

◆ CGAUDI_LOCAL

#define CGAUDI_LOCAL   __attribute__( ( visibility( "hidden" ) ) )

Definition at line 26 of file capi_pluginservice.h.

Function Documentation

◆ cgaudi_factory_get_classname()

CGAUDI_API const char * cgaudi_factory_get_classname ( cgaudi_factory_t self)

Definition at line 52 of file capi_pluginservice.cpp.

52 {
53 Registry& reg = Registry::instance();
54 static std::string cache;
55 cache = reg.getInfo( self.id ).getprop( "ClassName" );
56 return cache.c_str();
57}

◆ cgaudi_factory_get_library()

CGAUDI_API const char * cgaudi_factory_get_library ( cgaudi_factory_t self)

Definition at line 40 of file capi_pluginservice.cpp.

40 {
41 Registry& reg = Registry::instance();
42 return reg.getInfo( self.id ).library.c_str();
43}

◆ cgaudi_factory_get_property_at()

CGAUDI_API cgaudi_property_t cgaudi_factory_get_property_at ( cgaudi_factory_t self,
int n )

Definition at line 65 of file capi_pluginservice.cpp.

65 {
66 cgaudi_property_t cprop{ self.registry, self.id, nullptr };
67 Registry& reg = Registry::instance();
68 const Registry::FactoryInfo& fi = reg.getInfo( cprop.id );
69 if ( n < static_cast<int>( fi.properties.size() ) ) cprop.key = next( begin( fi.properties ), n )->first.c_str();
70 return cprop;
71}
AttribStringParser::Iterator begin(const AttribStringParser &parser)

◆ cgaudi_factory_get_property_size()

CGAUDI_API int cgaudi_factory_get_property_size ( cgaudi_factory_t self)

Definition at line 59 of file capi_pluginservice.cpp.

59 {
60 Registry& reg = Registry::instance();
61 const Registry::FactoryInfo& fi = reg.getInfo( self.id );
62 return int( fi.properties.size() );
63}

◆ cgaudi_factory_get_type()

CGAUDI_API const char * cgaudi_factory_get_type ( cgaudi_factory_t self)

Definition at line 45 of file capi_pluginservice.cpp.

45 {
46 Registry& reg = Registry::instance();
47 static std::string cache;
48 cache = demangle( reg.getInfo( self.id ).factory.type() );
49 return cache.c_str();
50}
std::string demangle(const std::string &id)

◆ cgaudi_pluginsvc_get_factory_at()

CGAUDI_API cgaudi_factory_t cgaudi_pluginsvc_get_factory_at ( cgaudi_pluginsvc_t self,
int n )

Definition at line 33 of file capi_pluginservice.cpp.

33 {
34 const Registry* reg = static_cast<const Registry*>( self.registry );
35 const auto& factories = reg->factories();
36 if ( n >= static_cast<int>( factories.size() ) ) return { self, nullptr };
37 return { self, next( begin( factories ), n )->first.c_str() };
38}

◆ cgaudi_pluginsvc_get_factory_size()

CGAUDI_API int cgaudi_pluginsvc_get_factory_size ( cgaudi_pluginsvc_t self)

Definition at line 28 of file capi_pluginservice.cpp.

28 {
29 const Registry::FactoryMap& fmap = static_cast<const Registry*>( self.registry )->factories();
30 return int( fmap.size() );
31}

◆ cgaudi_pluginsvc_instance()

CGAUDI_API cgaudi_pluginsvc_t cgaudi_pluginsvc_instance ( void )

Definition at line 23 of file capi_pluginservice.cpp.

23 {
24 static Registry& cxxreg = Registry::instance();
25 return { &cxxreg };
26}

◆ cgaudi_property_get_key()

CGAUDI_API const char * cgaudi_property_get_key ( cgaudi_property_t self)

Definition at line 73 of file capi_pluginservice.cpp.

73{ return self.key; }

◆ cgaudi_property_get_value()

CGAUDI_API const char * cgaudi_property_get_value ( cgaudi_property_t self)

Definition at line 75 of file capi_pluginservice.cpp.

75 {
76 Registry& reg = Registry::instance();
77 const Registry::FactoryInfo& fi = reg.getInfo( self.id );
78 auto prop = fi.properties.find( self.key );
79 return prop != fi.properties.end() ? prop->second.c_str() : nullptr;
80}