The Gaudi Framework  master (82fdf313)
Loading...
Searching...
No Matches
PluginServiceDetailsV1.h File Reference
#include <Gaudi/Details/PluginServiceCommon.h>
#include <map>
#include <set>
#include <sstream>
#include <string>
#include <typeinfo>
#include <utility>
#include <mutex>
Include dependency graph for PluginServiceDetailsV1.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Gaudi::PluginService::v1::Details::Factory< T >
 Class providing default factory functions. More...
 
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

namespace  Gaudi
 This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from python with a format liks : ( nbins, min, max, title ) where title can be ommited.
 
namespace  Gaudi::PluginService
 
namespace  Gaudi::PluginService::v1
 
namespace  Gaudi::PluginService::v1::Details
 

Macros

#define _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME(name, 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)
 Function used to load a specific factory function.
 
template<typename F>
Gaudi::PluginService::v1::Details::getCreator (const std::string &id)
 Convoluted implementation of getCreator with an embedded reinterpret_cast, used to avoid the warning.
 
GAUDIPS_API std::string Gaudi::PluginService::v1::Details::demangle (const std::type_info &id)
 Return a canonical name for type_info object (implementation borrowed from GaudiKernel/System).
 
template<typename T>
std::string Gaudi::PluginService::v1::Details::demangle ()
 Return a canonical name for the template argument.
 
GAUDIPS_API LoggerGaudi::PluginService::v1::Details::logger ()
 Return the current logger instance.
 
GAUDIPS_API void Gaudi::PluginService::v1::Details::setLogger (Logger *logger)
 Set the logger instance to use.
 
GAUDIPS_API void Gaudi::PluginService::v1::SetDebug (int debugLevel)
 Backward compatibility with Reflex.
 
GAUDIPS_API int Gaudi::PluginService::v1::Debug ()
 Backward compatibility with Reflex.
 

Macro Definition Documentation

◆ _PS_V1_INTERNAL_DECLARE_FACTORY

#define _PS_V1_INTERNAL_DECLARE_FACTORY ( type,
id,
factory,
serial )
Value:
serial )
#define _PS_V1_INTERNAL_DECLARE_FACTORY_WITH_CREATOR(type, typecreator, id, factory, serial)
Class providing default factory functions.

Definition at line 234 of file PluginServiceDetailsV1.h.

234#define _PS_V1_INTERNAL_DECLARE_FACTORY( type, id, factory, serial ) \
235 _PS_V1_INTERNAL_DECLARE_FACTORY_WITH_CREATOR( type, ::Gaudi::PluginService::v1::Details::Factory<type>, id, factory, \
236 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 )() { \
Registry::instance().add<s_t, type>( id, creator() ); \
} \
} _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME( s_##type, serial ); \
}
#define _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME(name, serial)
In-memory database of the loaded factories.
FactoryInfo & add(const I &id, typename F::FuncType ptr)
Add a factory to the database.

Definition at line 220 of file PluginServiceDetailsV1.h.

220#define _PS_V1_INTERNAL_DECLARE_FACTORY_WITH_CREATOR( type, typecreator, id, factory, serial ) \
221 namespace { \
222 class _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME( type, serial ) { \
223 public: \
224 typedef factory s_t; \
225 typedef typecreator f_t; \
226 static s_t::FuncType creator() { return &f_t::create<s_t>; } \
227 _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME( type, serial )() { \
228 using ::Gaudi::PluginService::v1::Details::Registry; \
229 Registry::instance().add<s_t, type>( id, creator() ); \
230 } \
231 } _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME( s_##type, serial ); \
232 }

◆ _PS_V1_INTERNAL_FACTORY_REGISTER_CNAME

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

Definition at line 218 of file PluginServiceDetailsV1.h.