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/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_)
 
#define FWCORE_CONCATENATE(a, b)   FWCORE_CONCATENATE_HIDDEN(a, b)
 
#define FWCORE_CONCATENATE_HIDDEN(a, b)   a##b
 

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 124 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 127 of file PluginFactory.h.

◆ EDM_PLUGIN_SYM

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

Definition at line 121 of file PluginFactory.h.

◆ EDM_PLUGIN_SYM2

#define EDM_PLUGIN_SYM2 (   x,
 
)    x##y

Definition at line 122 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 { FWCORE_CONCATENATE(dummy_edm_register_pluginfactory_, __LINE__) }

Definition at line 89 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 { FWCORE_CONCATENATE(dummy_edm_register_pluginfactory_2_, __LINE__) }

Definition at line 104 of file PluginFactory.h.

◆ FWCORE_CONCATENATE

#define FWCORE_CONCATENATE (   a,
  b 
)    FWCORE_CONCATENATE_HIDDEN(a, b)

Definition at line 88 of file PluginFactory.h.

◆ FWCORE_CONCATENATE_HIDDEN

#define FWCORE_CONCATENATE_HIDDEN (   a,
  b 
)    a##b

Definition at line 87 of file PluginFactory.h.

edmplugin
Definition: AlignmentAlgorithmPluginFactory.cc:9
taus_updatedMVAIds_cff.category
category
Definition: taus_updatedMVAIds_cff.py:30
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edmplugin::PluginFactory
Definition: PluginFactory.h:34
get
#define get
FWCORE_CONCATENATE
#define FWCORE_CONCATENATE(a, b)
Definition: PluginFactory.h:88