DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
Classes | Namespaces | Macros | Functions
PluginServiceDetailsV1.h File Reference
#include "Gaudi/Details/PluginServiceCommon.h"
#include <map>
#include <set>
#include <sstream>
#include <string>
#include <typeinfo>
#include <utility>
#include <mutex>

Go to the source code of this file.

Classes

class  Gaudi::PluginService::v1::Details::Factory< T >
 
class  Gaudi::PluginService::v1::Details::Registry
 In-memory database of the loaded factories. More...
 
struct  Gaudi::PluginService::v1::Details::Registry::FactoryInfo
 
class  Gaudi::PluginService::v1::Details::Logger
 Simple logging class, just to provide a default implementation. More...
 

Namespaces

 Gaudi
 
 Gaudi::PluginService
 See GaudiPluginService-readme.
 
 Gaudi::PluginService::v1
 
 Gaudi::PluginService::v1::Details
 

Macros

#define _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME(name, serial)   _register_##_##serial
 
#define _PS_V1_INTERNAL_DECLARE_FACTORY_WITH_CREATOR(type, typecreator, id, factory, serial)
 
#define _PS_V1_INTERNAL_DECLARE_FACTORY(type, id, factory, serial)
 

Functions

GAUDIPS_API void * Gaudi::PluginService::v1::Details::getCreator (const std::string &id, const std::string &type)
 
template<typename F >
Gaudi::PluginService::v1::Details::getCreator (const std::string &id)
 
GAUDIPS_API std::string Gaudi::PluginService::v1::Details::demangle (const std::type_info &id)
 
template<typename T >
std::string Gaudi::PluginService::v1::Details::demangle ()
 Return a canonical name for the template argument. More...
 
GAUDIPS_API Logger & Gaudi::PluginService::v1::Details::logger ()
 Return the current logger instance. More...
 
GAUDIPS_API void Gaudi::PluginService::v1::Details::setLogger (Logger *logger)
 
GAUDIPS_API void Gaudi::PluginService::v1::SetDebug (int debugLevel)
 Backward compatibility with Reflex. More...
 
GAUDIPS_API int Gaudi::PluginService::v1::Debug ()
 Backward compatibility with Reflex. More...
 

Macro Definition Documentation

◆ _PS_V1_INTERNAL_DECLARE_FACTORY

#define _PS_V1_INTERNAL_DECLARE_FACTORY (   type,
  id,
  factory,
  serial 
)

◆ _PS_V1_INTERNAL_DECLARE_FACTORY_WITH_CREATOR

#define _PS_V1_INTERNAL_DECLARE_FACTORY_WITH_CREATOR (   type,
  typecreator,
  id,
  factory,
  serial 
)
Value:
namespace { \
class _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME( type, serial ) { \
public: \
typedef factory s_t; \
typedef typecreator f_t; \
static s_t::FuncType creator() { return &f_t::create<s_t>; } \
_PS_V1_INTERNAL_FACTORY_REGISTER_CNAME( type, serial )() { \
using ::Gaudi::PluginService::v1::Details::Registry; \
Registry::instance().add<s_t, type>( id, creator() ); \
} \
} _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME( s_##type, serial ); \
}

Definition at line 221 of file PluginServiceDetailsV1.h.

◆ _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME

#define _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME (   name,
  serial 
)    _register_##_##serial

Definition at line 219 of file PluginServiceDetailsV1.h.

_PS_V1_INTERNAL_DECLARE_FACTORY_WITH_CREATOR
#define _PS_V1_INTERNAL_DECLARE_FACTORY_WITH_CREATOR(type, typecreator, id, factory, serial)
Definition: PluginServiceDetailsV1.h:220
Gaudi::PluginService::v1::Details::Factory
Definition: PluginServiceDetailsV1.h:36
_PS_V1_INTERNAL_FACTORY_REGISTER_CNAME
#define _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME(name, serial)
Definition: PluginServiceDetailsV1.h:218