Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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/Reflection/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
30
edm::MemberWithDict
findDataMember
(
const
edm::TypeWithDict
& iType,
const
std::string
& iName,
int
& oError) {
31
edm::MemberWithDict
ret
;
32
oError =
parser::kNameDoesNotExist
;
33
edm::TypeWithDict
type
= iType;
34
if
(!
bool
(type)) {
35
return
ret
;
36
}
37
if
(type.
isPointer
()) {
38
type = type.
toType
();
39
}
40
ret = type.
dataMemberByName
(iName);
41
if
(!
bool
(ret)) {
42
// check base classes
43
edm::TypeBases
bases(type);
44
for
(
auto
const
&
B
: bases) {
45
ret =
findDataMember
(
edm::BaseWithDict
(
B
).typeOf(), iName, oError);
46
//only stop if we found it or some other error happened
47
if
(
bool
(ret) || (oError !=
parser::kNameDoesNotExist
)) {
48
break
;
49
}
50
}
51
}
52
if
(
bool
(ret) && !ret.
isPublic
()) {
53
ret =
edm::MemberWithDict
();
54
oError =
parser::kIsNotPublic
;
55
}
else
if
(
bool
(ret)) {
56
oError =
parser::kNoError
;
57
}
58
return
ret
;
59
}
60
61
}
// namespace reco
runTheMatrix.ret
tuple ret
prodAgent to be discontinued
Definition:
runTheMatrix.py:603
B
Definition:
APVGainStruct.h:7
reco::findDataMember
edm::MemberWithDict findDataMember(const edm::TypeWithDict &iType, const std::string &iName, int &oError)
Definition:
findDataMember.cc:30
edm::BaseWithDict
Definition:
BaseWithDict.h:18
dt_dqm_sourceclient_common_cff.reco
tuple reco
Definition:
dt_dqm_sourceclient_common_cff.py:111
type
type
Definition:
SiPixelVCal_PayloadInspector.cc:39
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
edm::TypeWithDict::toType
TypeWithDict toType() const
Definition:
TypeWithDict.cc:633
edm::TypeWithDict::dataMemberByName
MemberWithDict dataMemberByName(std::string const &) const
Definition:
TypeWithDict.cc:572
edm::MemberWithDict::isPublic
bool isPublic() const
Definition:
MemberWithDict.cc:38
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:153
edm::MemberWithDict
Definition:
MemberWithDict.h:19
edm::TypeWithDict
Definition:
TypeWithDict.h:38
BaseWithDict.h
edm::TypeWithDict::isPointer
bool isPointer() const
Definition:
TypeWithDict.cc:416
findDataMember.h
Generated for CMSSW Reference Manual by
1.8.5