Main Page
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
o
p
q
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
_
a
d
e
f
l
m
o
p
s
t
u
v
Related Functions
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Package Documentation
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
FWCore
TestProcessor
src
EventSetupTestHelper.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
//
3
// Package: FWCore/TestProcessor
4
// Class : EventSetupTestHelper
5
//
6
// Implementation:
7
// [Notes on implementation]
8
//
9
// Original Author: root
10
// Created: Tue, 08 May 2018 18:33:15 GMT
11
//
12
13
// system include files
14
15
// user include files
16
#include "
FWCore/TestProcessor/interface/EventSetupTestHelper.h
"
17
#include "
FWCore/Framework/interface/DataProxy.h
"
18
19
namespace
edm
{
20
namespace
test
{
21
22
EventSetupTestHelper::EventSetupTestHelper
(std::vector<ESProduceEntry> iProxies) : proxies_{
std::move
(iProxies)} {
23
//Deal with duplicates
24
std::set<eventsetup::EventSetupRecordKey> records;
25
for
(
auto
const
&
p
: proxies_) {
26
records.insert(
p
.recordKey_);
27
}
28
for
(
auto
const
&
k
: records) {
29
usingRecordWithKey(
k
);
30
findingRecordWithKey(
k
);
31
}
32
}
33
34
void
EventSetupTestHelper::setIntervalFor
(
const
eventsetup::EventSetupRecordKey
&,
35
const
IOVSyncValue
& iSync,
36
ValidityInterval
& oIOV) {
37
// Note that we manually invalidate the proxies at the end of every call
38
// to test. And the beginning of the call to test is the only opportunity
39
// to reset this data, so we are not relying on the EventSetup system
40
// to manage invalidating the proxies in EventSetupTestHelper. The only
41
// reasonable thing to do is return an interval for all time so the EventSetup
42
// system does not invalidate these proxies when it shouldn't. There are two
43
// weaknesses to this:
44
//
45
// 1. If for the same record type there are DataProxies both managed
46
// by this class and also others managed by the EventSetup, then
47
// at IOV boundaries for this record this will fail. The EventSetup
48
// will invalidate all the proxies for the record after this class
49
// has set the ones it manages and they will stay invalid when they
50
// are needed.
51
//
52
// 2. TestProcessor does not support the special case where the different
53
// transitions executed in one call to test have different IOVs and different
54
// EventSetup data. That would be a pretty strange case, especially for a test.
55
56
oIOV =
edm::ValidityInterval
(
edm::IOVSyncValue::beginOfTime
(),
edm::IOVSyncValue::endOfTime
());
57
}
58
59
eventsetup::DataProxyProvider::KeyedProxiesVector
EventSetupTestHelper::registerProxies
(
60
const
eventsetup::EventSetupRecordKey
& iRecordKey,
unsigned
int
iovIndex) {
61
KeyedProxiesVector
keyedProxiesVector;
62
for
(
auto
const
&
p
:
proxies_
) {
63
if
(
p
.recordKey_ == iRecordKey) {
64
keyedProxiesVector.emplace_back(
p
.dataKey_,
p
.proxy_);
65
}
66
}
67
return
keyedProxiesVector;
68
}
69
70
std::shared_ptr<eventsetup::DataProxy>
EventSetupTestHelper::getProxy
(
unsigned
int
iIndex) {
71
return
proxies_
[iIndex].proxy_;
72
}
73
74
void
EventSetupTestHelper::resetAllProxies
() {
75
for
(
auto
const
&
p
:
proxies_
) {
76
p
.proxy_->invalidate();
77
}
78
}
79
80
}
// namespace test
81
}
// namespace edm
edm
HLT enums.
Definition:
AlignableModifier.h:19
edm::ValidityInterval
Definition:
ValidityInterval.h:28
edm::test::EventSetupTestHelper::setIntervalFor
void setIntervalFor(const eventsetup::EventSetupRecordKey &, const IOVSyncValue &, ValidityInterval &) final
Definition:
EventSetupTestHelper.cc:34
DataProxy.h
edm::eventsetup::EventSetupRecordKey
Definition:
EventSetupRecordKey.h:30
test
Definition:
SmallWORMDict.h:13
edm::test::EventSetupTestHelper::resetAllProxies
void resetAllProxies()
Definition:
EventSetupTestHelper.cc:74
edm::test::EventSetupTestHelper::EventSetupTestHelper
EventSetupTestHelper(std::vector< ESProduceEntry >)
Definition:
EventSetupTestHelper.cc:22
edm::test::EventSetupTestHelper::proxies_
std::vector< ESProduceEntry > proxies_
Definition:
EventSetupTestHelper.h:51
dqmdumpme.k
k
Definition:
dqmdumpme.py:60
edm::IOVSyncValue
Definition:
IOVSyncValue.h:31
AlCaHLTBitMon_ParallelJobs.p
def p
Definition:
AlCaHLTBitMon_ParallelJobs.py:153
edm::IOVSyncValue::endOfTime
static const IOVSyncValue & endOfTime()
Definition:
IOVSyncValue.cc:82
edm::eventsetup::DataProxyProvider::KeyedProxiesVector
std::vector< std::pair< DataKey, std::shared_ptr< DataProxy > >> KeyedProxiesVector
Definition:
DataProxyProvider.h:196
edm::test::EventSetupTestHelper::registerProxies
KeyedProxiesVector registerProxies(const eventsetup::EventSetupRecordKey &, unsigned int iovIndex) final
Definition:
EventSetupTestHelper.cc:59
cond::ValidityInterval
std::pair< Time_t, Time_t > ValidityInterval
Definition:
Time.h:17
eostools.move
def move(src, dest)
Definition:
eostools.py:511
edm::test::EventSetupTestHelper::getProxy
std::shared_ptr< eventsetup::DataProxy > getProxy(unsigned int index)
Definition:
EventSetupTestHelper.cc:70
edm::IOVSyncValue::beginOfTime
static const IOVSyncValue & beginOfTime()
Definition:
IOVSyncValue.cc:88
EventSetupTestHelper.h
Generated for CMSSW Reference Manual by
1.8.16