Fireworks
Core
src
FWItemRandomAccessor.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
//
3
// Package: Core
4
// Class : FWItemRandomAccessor
5
//
6
// Implementation:
7
// A generic helper class which can be used to create
8
// a specialized FWItemAccessorBase plugin for
9
// all the classes that expose a std::vector like interface.
10
//
11
// Original Author: Giulio Eulisse
12
// Created: Thu Feb 18 15:19:44 EDT 2008
13
//
14
15
// system include files
16
#include <cassert>
17
#include "TClass.h"
18
19
// user include files
20
#include "
Fireworks/Core/interface/FWItemRandomAccessor.h
"
21
22
// forward declarations
23
24
FWItemRandomAccessorBase::FWItemRandomAccessorBase
(
const
TClass*
type
,
const
std::type_info& modelTypeName)
25
: m_type(
type
), m_modelType(TClass::GetClass(modelTypeName)), m_data(nullptr) {}
26
27
// FWItemRandomAccessor::FWItemRandomAccessor(const FWItemRandomAccessor& rhs)
28
// {
29
// // do actual copying here;
30
// }
31
32
FWItemRandomAccessorBase::~FWItemRandomAccessorBase
() {}
33
34
//
35
// assignment operators
36
//
37
// const FWItemRandomAccessor& FWItemRandomAccessor::operator=(const FWItemRandomAccessor& rhs)
38
// {
39
// //An exception safe implementation is
40
// FWItemRandomAccessor temp(rhs);
41
// swap(rhs);
42
//
43
// return *this;
44
// }
45
46
//
47
// member functions
48
//
49
void
FWItemRandomAccessorBase::setData
(
const
edm::ObjectWithDict
& product) {
50
if
(product.
address
() ==
nullptr
) {
51
reset
();
52
return
;
53
}
54
55
m_data
= product.
address
();
56
assert
(
nullptr
!=
m_data
);
57
}
58
59
void
FWItemRandomAccessorBase::reset
() {
m_data
=
nullptr
; }
60
61
//
62
// const member functions
63
//
64
const
void
*
FWItemRandomAccessorBase::data
()
const
{
return
m_data
; }
65
66
void
*
FWItemRandomAccessorBase::getDataPtr
()
const
{
return
m_data
; }
67
68
const
TClass*
FWItemRandomAccessorBase::type
()
const
{
return
m_type
; }
69
70
const
TClass*
FWItemRandomAccessorBase::modelType
()
const
{
71
assert
(
m_modelType
);
72
return
m_modelType
;
73
}
74
75
bool
FWItemRandomAccessorBase::isCollection
()
const
{
return
true
; }
76
//
77
// static member functions
78
//
FWItemRandomAccessorBase::~FWItemRandomAccessorBase
~FWItemRandomAccessorBase() override
Definition:
FWItemRandomAccessor.cc:32
FWItemRandomAccessorBase::m_data
void * m_data
Definition:
FWItemRandomAccessor.h:46
edm::ObjectWithDict::address
void * address() const
Definition:
ObjectWithDict.cc:27
edm::ObjectWithDict
Definition:
ObjectWithDict.h:17
FWItemRandomAccessorBase::isCollection
bool isCollection() const override
Definition:
FWItemRandomAccessor.cc:75
cms::cuda::assert
assert(be >=bs)
FWItemRandomAccessorBase::data
const void * data() const override
Definition:
FWItemRandomAccessor.cc:64
FWItemRandomAccessorBase::getDataPtr
void * getDataPtr() const
Definition:
FWItemRandomAccessor.cc:66
FWItemRandomAccessorBase::modelType
const TClass * modelType() const override
Definition:
FWItemRandomAccessor.cc:70
FWItemRandomAccessor.h
FWItemRandomAccessorBase::type
const TClass * type() const override
Definition:
FWItemRandomAccessor.cc:68
FWItemRandomAccessorBase::reset
void reset() override
Definition:
FWItemRandomAccessor.cc:59
FWItemRandomAccessorBase::FWItemRandomAccessorBase
FWItemRandomAccessorBase(const TClass *type, const std::type_info &modelTypeName)
Definition:
FWItemRandomAccessor.cc:24
FWItemRandomAccessorBase::m_type
const TClass * m_type
Definition:
FWItemRandomAccessor.h:44
type
type
Definition:
HCALResponse.h:21
FWItemRandomAccessorBase::setData
void setData(const edm::ObjectWithDict &) override
override if id of an object should be different than the index
Definition:
FWItemRandomAccessor.cc:49
FWItemRandomAccessorBase::m_modelType
const TClass * m_modelType
Definition:
FWItemRandomAccessor.h:45
Generated for CMSSW Reference Manual by
1.8.16