DataFormats
Common
src
EDProductGetter.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
//
3
// Package: EDProduct
4
// Class : EDProductGetter
5
//
6
// Implementation:
7
// <Notes on implementation>
8
//
9
// Original Author: Chris Jones
10
// Created: Tue Nov 1 15:06:41 EST 2005
11
//
12
13
// system include files
14
15
// user include files
16
#include "
DataFormats/Common/interface/EDProductGetter.h
"
17
#include "
DataFormats/Provenance/interface/ProductID.h
"
18
#include "
FWCore/Utilities/interface/EDMException.h
"
19
20
namespace
edm
{
21
//
22
// constants, enums and typedefs
23
//
24
25
//
26
// static data member definitions
27
//
28
29
//
30
// constructors and destructor
31
//
32
EDProductGetter::EDProductGetter
() {}
33
34
// EDProductGetter::EDProductGetter(EDProductGetter const& rhs)
35
// {
36
// // do actual copying here;
37
// }
38
39
EDProductGetter::~EDProductGetter
() {}
40
41
//
42
// assignment operators
43
//
44
// EDProductGetter const& EDProductGetter::operator=(EDProductGetter const& rhs)
45
// {
46
// //An exception safe implementation is
47
// EDProductGetter temp(rhs);
48
// swap(rhs);
49
//
50
// return *this;
51
// }
52
53
//
54
// member functions
55
//
56
57
//
58
// const member functions
59
//
60
61
//
62
// static member functions
63
//
64
65
EDProductGetter
const
*
mustBeNonZero
(
EDProductGetter
const
* prodGetter,
66
std::string
refType,
67
ProductID
const
& productID) {
68
if
(prodGetter !=
nullptr
)
69
return
prodGetter;
70
throw
Exception
(
errors::InvalidReference
, refType)
71
<<
"Attempt to construct a "
<< refType <<
" with ProductID "
<< productID <<
"\n"
72
<<
"but with a null pointer to a product getter.\n"
73
<<
"The product getter pointer passed to the constructor must refer\n"
74
<<
"to a real getter, such as an EventPrincipal.\n"
;
75
}
76
77
thread_local
EDProductGetter
const
*
s_productGetter
=
nullptr
;
78
EDProductGetter
const
*
EDProductGetter::switchProductGetter
(
EDProductGetter
const
* iNew) {
79
//std::cout <<"switch from "<<s_productGetter<<" to "<<iNew<<std::endl;
80
EDProductGetter
const
* old =
s_productGetter
;
81
s_productGetter
= iNew;
82
return
old;
83
}
84
void
EDProductGetter::assignEDProductGetter
(
EDProductGetter
const
*& iGetter) {
85
//std::cout <<"assign "<<s_productGetter<<std::endl;
86
87
iGetter =
s_productGetter
;
88
}
89
90
}
// namespace edm
Exception
Definition:
hltDiff.cc:245
edm::EDProductGetter
Definition:
EDProductGetter.h:41
edm::s_productGetter
thread_local EDProductGetter const * s_productGetter
Definition:
EDProductGetter.cc:77
edm::mustBeNonZero
EDProductGetter const * mustBeNonZero(EDProductGetter const *prodGetter, std::string refType, ProductID const &productID)
Definition:
EDProductGetter.cc:65
ProductID.h
edm::EDProductGetter::~EDProductGetter
virtual ~EDProductGetter()
Definition:
EDProductGetter.cc:39
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
edm::EDProductGetter::EDProductGetter
EDProductGetter()
Definition:
EDProductGetter.cc:32
edm::EDProductGetter::switchProductGetter
static EDProductGetter const * switchProductGetter(EDProductGetter const *)
These can only be used internally by the framework.
Definition:
EDProductGetter.cc:78
EDMException.h
edm::ProductID
Definition:
ProductID.h:27
edm::errors::InvalidReference
Definition:
EDMException.h:39
edm::EDProductGetter::assignEDProductGetter
static void assignEDProductGetter(EDProductGetter const *&)
Definition:
EDProductGetter.cc:84
edm
HLT enums.
Definition:
AlignableModifier.h:19
EDProductGetter.h
Generated for CMSSW Reference Manual by
1.8.14