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_IMPORT
 
#define CGAUDI_EXPORT
 
#define CGAUDI_LOCAL
 
#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_rtype (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

#define CGAUDI_API   CGAUDI_EXPORT

Definition at line 36 of file capi_pluginservice.h.

#define CGAUDI_EXPORT

Definition at line 32 of file capi_pluginservice.h.

#define CGAUDI_IMPORT

Definition at line 31 of file capi_pluginservice.h.

#define CGAUDI_LOCAL

Definition at line 33 of file capi_pluginservice.h.

Function Documentation

CGAUDI_API const char* cgaudi_factory_get_classname ( cgaudi_factory_t  self)

Definition at line 65 of file capi_pluginservice.cpp.

66 {
67  Registry &reg = Registry::instance();
68  return reg.getInfo(self.id).className.c_str();
69 }
const FactoryInfo & getInfo(const std::string &id) const
Retrieve the FactoryInfo object for an id.
T c_str(T...args)
In-memory database of the loaded factories.
CGAUDI_API const char* cgaudi_factory_get_library ( cgaudi_factory_t  self)

Definition at line 44 of file capi_pluginservice.cpp.

45 {
46  Registry &reg = Registry::instance();
47  return reg.getInfo(self.id).library.c_str();
48 }
const FactoryInfo & getInfo(const std::string &id) const
Retrieve the FactoryInfo object for an id.
T c_str(T...args)
In-memory database of the loaded factories.
CGAUDI_API cgaudi_property_t cgaudi_factory_get_property_at ( cgaudi_factory_t  self,
int  n 
)

Definition at line 81 of file capi_pluginservice.cpp.

82 {
83  cgaudi_property_t cprop{ self.registry, self.id, nullptr };
84  Registry &reg = Registry::instance();
85  const Registry::FactoryInfo& fi = reg.getInfo(cprop.id);
86  if (n<(long)fi.properties.size()) {
87  auto itr = std::next(fi.properties.cbegin(),n);
88  cprop.key = itr->first.c_str();
89  }
90  return cprop;
91 }
const FactoryInfo & getInfo(const std::string &id) const
Retrieve the FactoryInfo object for an id.
T next(T...args)
cgaudi_pluginsvc_t registry
T size(T...args)
T cbegin(T...args)
In-memory database of the loaded factories.
CGAUDI_API int cgaudi_factory_get_property_size ( cgaudi_factory_t  self)

Definition at line 72 of file capi_pluginservice.cpp.

73 {
74  Registry &reg = Registry::instance();
75  const Registry::FactoryInfo& fi = reg.getInfo(self.id);
76  return int(fi.properties.size());
77 }
const FactoryInfo & getInfo(const std::string &id) const
Retrieve the FactoryInfo object for an id.
T size(T...args)
In-memory database of the loaded factories.
CGAUDI_API const char* cgaudi_factory_get_rtype ( cgaudi_factory_t  self)

Definition at line 58 of file capi_pluginservice.cpp.

59 {
60  Registry &reg = Registry::instance();
61  return reg.getInfo(self.id).rtype.c_str();
62 }
const FactoryInfo & getInfo(const std::string &id) const
Retrieve the FactoryInfo object for an id.
T c_str(T...args)
In-memory database of the loaded factories.
CGAUDI_API const char* cgaudi_factory_get_type ( cgaudi_factory_t  self)

Definition at line 51 of file capi_pluginservice.cpp.

52 {
53  Registry &reg = Registry::instance();
54  return reg.getInfo(self.id).type.c_str();
55 }
const FactoryInfo & getInfo(const std::string &id) const
Retrieve the FactoryInfo object for an id.
T c_str(T...args)
In-memory database of the loaded factories.
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.

34 {
35  const Registry *reg = ((const Registry*)self.registry);
37  keys.reserve(reg->factories().size());
38  std::transform(reg->factories().begin(),reg->factories().end(),
40  return { self, keys[n].c_str() };
41 }
constexpr struct select1st_t select1st
T end(T...args)
const FactoryMap & factories() const
Return the known factories (loading the list if not yet done).
T size(T...args)
STL class.
T begin(T...args)
T back_inserter(T...args)
In-memory database of the loaded factories.
T transform(T...args)
T reserve(T...args)
CGAUDI_API int cgaudi_pluginsvc_get_factory_size ( cgaudi_pluginsvc_t  self)

Definition at line 17 of file capi_pluginservice.cpp.

18 {
19  const Registry::FactoryMap &fmap = ((const Registry*)self.registry)->factories();
20  return int(fmap.size());
21 }
T size(T...args)
In-memory database of the loaded factories.
CGAUDI_API cgaudi_pluginsvc_t cgaudi_pluginsvc_instance ( void  )

Definition at line 10 of file capi_pluginservice.cpp.

11 {
12  static Registry& cxxreg = Registry::instance();
13  return { (void*)(&cxxreg) };
14 }
In-memory database of the loaded factories.
CGAUDI_API const char* cgaudi_property_get_key ( cgaudi_property_t  self)

Definition at line 94 of file capi_pluginservice.cpp.

95 {
96  return self.key;
97 }
CGAUDI_API const char* cgaudi_property_get_value ( cgaudi_property_t  self)

Definition at line 100 of file capi_pluginservice.cpp.

101 {
102  Registry &reg = Registry::instance();
103  const Registry::FactoryInfo& fi = reg.getInfo(self.id);
104  auto prop = fi.properties.find(self.key);
105  return prop != fi.properties.end() ? prop->second.c_str() : nullptr;
106 }
const FactoryInfo & getInfo(const std::string &id) const
Retrieve the FactoryInfo object for an id.
T end(T...args)
T find(T...args)
T c_str(T...args)
In-memory database of the loaded factories.