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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
#ifndef FWCore_ParameterSet_ParameterSetDescriptionFillerBase_h
#define FWCore_ParameterSet_ParameterSetDescriptionFillerBase_h
// -*- C++ -*-
//
// Package: ParameterSet
// Class : ParameterSetDescriptionFillerBase
//
/**\class ParameterSetDescriptionFillerBase ParameterSetDescriptionFillerBase.h FWCore/ParameterSet/interface/ParameterSetDescriptionFillerBase.h
Description: Base class for a component which can fill a ParameterSetDescription object
Usage:
This base class provides an abstract interface for filling a ParameterSetDescription object. This allows one to used by the
ParameterSetDescriptionFillerPluginFactory to load a component of any type (e.g. cmsRun Source, cmsRun EDProducer or even a tracking plugin)
and query the component for its allowed ParameterSetDescription.
*/
//
// Original Author: Chris Jones
// Created: Wed Aug 1 16:46:53 EDT 2007
//
// system include files
// user include files
// forward declarations
#include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
#include <string>
namespace edm {
namespace one {
class EDProducerBase;
class EDFilterBase;
class EDAnalyzerBase;
class OutputModuleBase;
} // namespace one
namespace stream {
class EDProducerBase;
class EDFilterBase;
class EDAnalyzerBase;
} // namespace stream
namespace global {
class EDProducerBase;
class EDFilterBase;
class EDAnalyzerBase;
class OutputModuleBase;
} // namespace global
namespace limited {
class EDProducerBase;
class EDFilterBase;
class EDAnalyzerBase;
class OutputModuleBase;
} // namespace limited
class ParameterSetDescriptionFillerBase {
public:
ParameterSetDescriptionFillerBase() {}
ParameterSetDescriptionFillerBase(const ParameterSetDescriptionFillerBase&) = delete; // stop default
const ParameterSetDescriptionFillerBase& operator=(const ParameterSetDescriptionFillerBase&) =
delete; // stop default
virtual ~ParameterSetDescriptionFillerBase();
// ---------- const member functions ---------------------
virtual void fill(ConfigurationDescriptions& descriptions) const = 0;
virtual const std::string& baseType() const = 0;
virtual const std::string& extendedBaseType() const = 0;
// ---------- static member functions --------------------
// ---------- member functions ---------------------------
static const std::string kBaseForESSource;
static const std::string kBaseForESProducer;
static const std::string kBaseForEDLooper;
protected:
static const std::string kEmpty;
static const std::string kBaseForService;
static const std::string kExtendedBaseForEDAnalyzer;
static const std::string kExtendedBaseForEDProducer;
static const std::string kExtendedBaseForEDFilter;
static const std::string kExtendedBaseForOneEDAnalyzer;
static const std::string kExtendedBaseForOneEDProducer;
static const std::string kExtendedBaseForOneEDFilter;
static const std::string kExtendedBaseForOneOutputModule;
static const std::string kExtendedBaseForStreamEDAnalyzer;
static const std::string kExtendedBaseForStreamEDProducer;
static const std::string kExtendedBaseForStreamEDFilter;
static const std::string kExtendedBaseForGlobalEDAnalyzer;
static const std::string kExtendedBaseForGlobalEDProducer;
static const std::string kExtendedBaseForGlobalEDFilter;
static const std::string kExtendedBaseForGlobalOutputModule;
static const std::string kExtendedBaseForLimitedEDAnalyzer;
static const std::string kExtendedBaseForLimitedEDProducer;
static const std::string kExtendedBaseForLimitedEDFilter;
static const std::string kExtendedBaseForLimitedOutputModule;
static const std::string& extendedBaseType(one::EDAnalyzerBase const*) { return kExtendedBaseForOneEDAnalyzer; }
static const std::string& extendedBaseType(one::EDProducerBase const*) { return kExtendedBaseForOneEDProducer; }
static const std::string& extendedBaseType(one::EDFilterBase const*) { return kExtendedBaseForOneEDFilter; }
static const std::string& extendedBaseType(one::OutputModuleBase const*) { return kExtendedBaseForOneOutputModule; }
static const std::string& extendedBaseType(stream::EDAnalyzerBase const*) {
return kExtendedBaseForStreamEDAnalyzer;
}
static const std::string& extendedBaseType(stream::EDProducerBase const*) {
return kExtendedBaseForStreamEDProducer;
}
static const std::string& extendedBaseType(stream::EDFilterBase const*) { return kExtendedBaseForStreamEDFilter; }
static const std::string& extendedBaseType(global::EDAnalyzerBase const*) {
return kExtendedBaseForGlobalEDAnalyzer;
}
static const std::string& extendedBaseType(global::EDProducerBase const*) {
return kExtendedBaseForGlobalEDProducer;
}
static const std::string& extendedBaseType(global::EDFilterBase const*) { return kExtendedBaseForGlobalEDFilter; }
static const std::string& extendedBaseType(global::OutputModuleBase const*) {
return kExtendedBaseForGlobalOutputModule;
}
static const std::string& extendedBaseType(limited::EDAnalyzerBase const*) {
return kExtendedBaseForLimitedEDAnalyzer;
}
static const std::string& extendedBaseType(limited::EDProducerBase const*) {
return kExtendedBaseForLimitedEDProducer;
}
static const std::string& extendedBaseType(limited::EDFilterBase const*) { return kExtendedBaseForLimitedEDFilter; }
static const std::string& extendedBaseType(limited::OutputModuleBase const*) {
return kExtendedBaseForLimitedOutputModule;
}
static const std::string& extendedBaseType(void const*) { return kEmpty; }
private:
// ---------- member data --------------------------------
};
} // namespace edm
#endif
|