Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
src
CommonTools
Utils
src
findDataMember.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
//
3
// Package: Utilities
4
// Class : findDataMember
5
//
6
// Implementation:
7
// <Notes on implementation>
8
//
9
// Original Author: Chris Jones
10
// Created: Wed Aug 13 10:07:46 EDT 2008
11
// $Id: findDataMember.cc,v 1.3 2012/08/03 18:08:11 wmtan Exp $
12
//
13
14
// system include files
15
#include "TInterpreter.h"
16
#include "TVirtualMutex.h"
17
18
#include "
FWCore/Utilities/interface/BaseWithDict.h
"
19
20
// user include files
21
#include "
CommonTools/Utils/src/findDataMember.h
"
22
#include "
CommonTools/Utils/src/ErrorCodes.h
"
23
24
//
25
// constants, enums and typedefs
26
//
27
28
namespace
reco
{
29
edm::MemberWithDict
findDataMember
(
const
edm::TypeWithDict
& iType,
const
std::string
& iName,
int
& oError) {
30
edm::MemberWithDict
returnValue;
31
oError =
parser::kNameDoesNotExist
;
32
edm::TypeWithDict
type
= iType;
33
if
(type) {
34
if
(type.
isPointer
()) {
35
type = type.
toType
();
// for Pointers, I get the real type this way
36
}
37
returnValue = type.
dataMemberByName
(iName);
38
if
(!returnValue) {
39
//check inheriting classes
40
R__LOCKGUARD(gCINTMutex);
41
edm::TypeBases
bases(type);
42
for
(
auto
const
&
base
: bases) {
43
returnValue =
findDataMember
(
edm::BaseWithDict
(
base
).typeOf(), iName, oError);
44
//only stop if we found it or some other error happened
45
if
(returnValue ||
parser::kNameDoesNotExist
!= oError) {
46
break
;
47
}
48
}
49
}
50
if
(returnValue && !returnValue.
isPublic
()) {
51
returnValue =
edm::MemberWithDict
();
52
oError =
parser::kIsNotPublic
;
53
}
54
}
55
if
(returnValue) {
56
oError =
parser::kNoError
;
57
}
58
return
returnValue;
59
}
60
}
newFWLiteAna.base
tuple base
Main Program
Definition:
newFWLiteAna.py:92
type
type
Definition:
HCALResponse.h:21
reco::findDataMember
edm::MemberWithDict findDataMember(const edm::TypeWithDict &iType, const std::string &iName, int &oError)
Definition:
findDataMember.cc:29
edm::BaseWithDict
Definition:
BaseWithDict.h:18
dt_dqm_sourceclient_common_cff.reco
tuple reco
Definition:
dt_dqm_sourceclient_common_cff.py:107
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:255
edm::TypeWithDict::toType
TypeWithDict toType() const
Definition:
TypeWithDict.cc:392
edm::MemberWithDict::isPublic
bool isPublic() const
Definition:
MemberWithDict.cc:47
reco::parser::kNoError
Definition:
ErrorCodes.h:31
reco::parser::kNameDoesNotExist
Definition:
ErrorCodes.h:32
ErrorCodes.h
reco::parser::kIsNotPublic
Definition:
ErrorCodes.h:33
edm::TypeBases
Definition:
TypeWithDict.h:189
edm::MemberWithDict
Definition:
MemberWithDict.h:19
edm::TypeWithDict::dataMemberByName
MemberWithDict dataMemberByName(std::string const &member) const
Definition:
TypeWithDict.cc:300
edm::TypeWithDict
Definition:
TypeWithDict.h:45
BaseWithDict.h
edm::TypeWithDict::isPointer
bool isPointer() const
Definition:
TypeWithDict.cc:367
findDataMember.h
Generated for CMSSW Reference Manual by
1.8.5