1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#ifndef FWCore_ParameterSet_ParameterSetDescriptionFillerPluginFactory_h
#define FWCore_ParameterSet_ParameterSetDescriptionFillerPluginFactory_h
// -*- C++ -*-
//
// Package: ParameterSet
// Class : ParameterSetDescriptionFillerPluginFactory
//
/**\class ParameterSetDescriptionFillerPluginFactory ParameterSetDescriptionFillerPluginFactory.h FWCore/ParameterSet/interface/ParameterSetDescriptionFillerPluginFactory.h
Description: Provides access to the ParameterSetDescription object of a plugin
Usage:
The Factory allows loading of plugins and querying them for their ParameterSetDescription.
*/
//
// Original Author: Chris Jones
// Created: Wed Aug 1 16:47:01 EDT 2007
//
// system include files
// user include files
#include "FWCore/PluginManager/interface/PluginFactory.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescriptionFiller.h"
// forward declarations
namespace edm {
typedef edmplugin::PluginFactory<ParameterSetDescriptionFillerBase*(void)> ParameterSetDescriptionFillerPluginFactory;
}
#define DEFINE_FWK_PSET_DESC_FILLER_IMPL(type, name, postfix) \
static const edm::ParameterSetDescriptionFillerPluginFactory::PMaker<edm::ParameterSetDescriptionFiller<type> > \
EDM_PLUGIN_SYM(s_filler##postfix, __LINE__)(name)
//NOTE: Can't do the below since this appears on the same line as another factory and w'ed have two variables with the same name
//DEFINE_EDM_PLUGIN (edm::ParameterSetDescriptionFillerPluginFactory,type,#type)
#define DEFINE_FWK_PSET_DESC_FILLER(type) DEFINE_FWK_PSET_DESC_FILLER_IMPL(type, #type, _0)
// Define another analogous macro to handle the special case of services.
#define DEFINE_DESC_FILLER_FOR_SERVICES(pluginName, serviceType) \
static const edm::ParameterSetDescriptionFillerPluginFactory::PMaker<edm::DescriptionFillerForServices<serviceType> > \
EDM_PLUGIN_SYM(s_filler, __LINE__)(#pluginName)
#define DEFINE_DESC_FILLER_FOR_ESSOURCES_IMPL(type, name) \
static const edm::ParameterSetDescriptionFillerPluginFactory::PMaker<edm::DescriptionFillerForESSources<type> > \
EDM_PLUGIN_SYM(s_filler, __LINE__)(name)
#define DEFINE_DESC_FILLER_FOR_ESSOURCES(type) DEFINE_DESC_FILLER_FOR_ESSOURCES_IMPL(type, #type)
#define DEFINE_DESC_FILLER_FOR_ESPRODUCERS_IMPL(type, name, postfix) \
static const edm::ParameterSetDescriptionFillerPluginFactory::PMaker<edm::DescriptionFillerForESProducers<type> > \
EDM_PLUGIN_SYM(s_filler##postfix, __LINE__)(name)
#define DEFINE_DESC_FILLER_FOR_ESPRODUCERS(type) DEFINE_DESC_FILLER_FOR_ESPRODUCERS_IMPL(type, #type, _0)
#define DEFINE_DESC_FILLER_FOR_EDLOOPERS(type) \
static const edm::ParameterSetDescriptionFillerPluginFactory::PMaker<edm::DescriptionFillerForEDLoopers<type> > \
EDM_PLUGIN_SYM(s_filler, __LINE__)(#type)
#endif
|