CMS 3D CMS Logo

Classes | Namespaces | Macros
PluginFactory.h File Reference
#include <map>
#include <memory>
#include <vector>
#include "FWCore/PluginManager/interface/PluginFactoryBase.h"
#include "FWCore/PluginManager/interface/PluginManager.h"
#include "FWCore/Utilities/interface/concatenate.h"
#include "FWCore/Utilities/interface/thread_safety_macros.h"

Go to the source code of this file.

Classes

class  edmplugin::PluginFactory< T >
 
class  edmplugin::PluginFactory< R *(Args...)>
 
struct  edmplugin::PluginFactory< R *(Args...)>::PMaker< TPlug >
 
struct  edmplugin::PluginFactory< R *(Args...)>::PMakerBase
 

Namespaces

 edmplugin
 

Macros

#define DEFINE_EDM_PLUGIN(factory, type, name)   static const factory::PMaker<type> EDM_PLUGIN_SYM(s_maker, __LINE__)(name)
 
#define DEFINE_EDM_PLUGIN2(factory, type, name)   static const factory::PMaker<type> EDM_PLUGIN_SYM(s_maker2_, __LINE__)(name)
 
#define EDM_PLUGIN_SYM(x, y)   EDM_PLUGIN_SYM2(x, y)
 
#define EDM_PLUGIN_SYM2(x, y)   x##y
 
#define EDM_REGISTER_PLUGINFACTORY(_factory_, _category_)
 
#define EDM_REGISTER_PLUGINFACTORY2(_factory_, _category_)
 

Macro Definition Documentation

◆ DEFINE_EDM_PLUGIN

#define DEFINE_EDM_PLUGIN (   factory,
  type,
  name 
)    static const factory::PMaker<type> EDM_PLUGIN_SYM(s_maker, __LINE__)(name)

Definition at line 123 of file PluginFactory.h.

◆ DEFINE_EDM_PLUGIN2

#define DEFINE_EDM_PLUGIN2 (   factory,
  type,
  name 
)    static const factory::PMaker<type> EDM_PLUGIN_SYM(s_maker2_, __LINE__)(name)

Definition at line 126 of file PluginFactory.h.

◆ EDM_PLUGIN_SYM

#define EDM_PLUGIN_SYM (   x,
 
)    EDM_PLUGIN_SYM2(x, y)

Definition at line 120 of file PluginFactory.h.

◆ EDM_PLUGIN_SYM2

#define EDM_PLUGIN_SYM2 (   x,
 
)    x##y

Definition at line 121 of file PluginFactory.h.

◆ EDM_REGISTER_PLUGINFACTORY

#define EDM_REGISTER_PLUGINFACTORY (   _factory_,
  _category_ 
)
Value:
namespace edmplugin { \
template <> \
edmplugin::PluginFactory<_factory_::TemplateArgType>* edmplugin::PluginFactory<_factory_::TemplateArgType>::get() { \
CMS_THREAD_SAFE static edmplugin::PluginFactory<_factory_::TemplateArgType> s_instance; \
return &s_instance; \
} \
template <> \
static const std::string s_cat(_category_); \
return s_cat; \
} \
} \
enum { EDM_CONCATENATE(dummy_edm_register_pluginfactory_, __LINE__) }
#define EDM_CONCATENATE(a, b)
Definition: concatenate.h:6
#define get

Definition at line 88 of file PluginFactory.h.

◆ EDM_REGISTER_PLUGINFACTORY2

#define EDM_REGISTER_PLUGINFACTORY2 (   _factory_,
  _category_ 
)
Value:
namespace edmplugin { \
template <> \
edmplugin::PluginFactory<_factory_::TemplateArgType>* edmplugin::PluginFactory<_factory_::TemplateArgType>::get() { \
CMS_THREAD_SAFE static edmplugin::PluginFactory<_factory_::TemplateArgType> s_instance; \
return &s_instance; \
} \
template <> \
static const std::string s_cat(_category_); \
return s_cat; \
} \
} \
enum { EDM_CONCATENATE(dummy_edm_register_pluginfactory_2_, __LINE__) }
#define EDM_CONCATENATE(a, b)
Definition: concatenate.h:6
#define get

Definition at line 103 of file PluginFactory.h.