13#define GAUDI_PLUGIN_SERVICE_V2
22 static Registry& cxxreg = Registry::instance();
27 const Registry::FactoryMap& fmap =
static_cast<const Registry*
>( self.registry )->factories();
28 return int( fmap.size() );
32 const Registry* reg =
static_cast<const Registry*
>( self.registry );
33 const auto& factories = reg->factories();
34 if ( n >=
static_cast<int>( factories.size() ) )
return { self,
nullptr };
35 return { self, next( begin( factories ), n )->first.c_str() };
39 Registry& reg = Registry::instance();
40 return reg.getInfo( self.id ).library.c_str();
44 Registry& reg = Registry::instance();
45 static std::string cache;
46 cache =
demangle( reg.getInfo( self.id ).factory.type() );
51 Registry& reg = Registry::instance();
52 static std::string cache;
53 cache = reg.getInfo( self.id ).getprop(
"ClassName" );
58 Registry& reg = Registry::instance();
59 const Registry::FactoryInfo& fi = reg.getInfo( self.id );
60 return int( fi.properties.size() );
65 Registry& reg = Registry::instance();
66 const Registry::FactoryInfo& fi = reg.getInfo( cprop.
id );
67 if ( n <
static_cast<int>( fi.properties.size() ) ) cprop.
key = next( begin( fi.properties ), n )->first.c_str();
74 Registry& reg = Registry::instance();
75 const Registry::FactoryInfo& fi = reg.getInfo( self.id );
76 auto prop = fi.properties.find( self.key );
77 return prop != fi.properties.end() ? prop->second.c_str() :
nullptr;
81 static std::string cache = [] {
82 std::ostringstream oss;
83 const auto& paths = Gaudi::PluginService::Details::getPluginSearchPath();
84 for (
auto it = paths.begin(); it != paths.end(); ++it ) {
85 if ( it != paths.begin() ) {
const char * cgaudi_factory_get_library(cgaudi_factory_t self)
cgaudi_pluginsvc_t cgaudi_pluginsvc_instance()
const char * cgaudi_factory_get_classname(cgaudi_factory_t self)
const char * cgaudi_factory_get_type(cgaudi_factory_t self)
int cgaudi_pluginsvc_get_factory_size(cgaudi_pluginsvc_t self)
const char * cgaudi_property_get_key(cgaudi_property_t self)
const char * cgaudi_pluginsvc_plugin_search_path()
cgaudi_factory_t cgaudi_pluginsvc_get_factory_at(cgaudi_pluginsvc_t self, int n)
const char * cgaudi_property_get_value(cgaudi_property_t self)
int cgaudi_factory_get_property_size(cgaudi_factory_t self)
cgaudi_property_t cgaudi_factory_get_property_at(cgaudi_factory_t self, int n)
std::string demangle(const std::string &id)