ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigSteer
TrigOutputHandling
src
BareDataBucket.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef TrigOutputHandling_BareDataBucket_h
5
#define TrigOutputHandling_BareDataBucket_h
6
#include "
AthenaKernel/DataBucketBase.h
"
7
#include "
DataModelRoot/RootType.h
"
8
13
14
class
BareDataBucket
:
public
DataBucketBase
{
15
public
:
16
BareDataBucket
() =
delete
;
17
18
BareDataBucket
(
void
* data,
CLID
clid,
RootType
type
)
19
:
m_data
(data),
m_clid
(clid),
m_type
(
std
::move(
type
) ){}
20
21
virtual
~BareDataBucket
()
override
{
22
if
(
m_data
!=
nullptr
)
23
m_type
.Destruct(
m_data
);
24
}
25
26
BareDataBucket
(
const
BareDataBucket
&) =
delete
;
27
BareDataBucket
(
BareDataBucket
&&) =
delete
;
28
BareDataBucket
&
operator=
(
const
BareDataBucket
&) =
delete
;
29
BareDataBucket
&
operator=
(
BareDataBucket
&&) =
delete
;
30
31
// DataObject overrides
32
virtual
const
CLID
&
clID
()
const override
{
33
return
m_clid
;
34
}
35
36
// DataBucketBase overrides
37
38
virtual
void
*
object
()
override
{
39
return
m_data
;
40
}
41
42
virtual
const
std::type_info&
tinfo
()
const override
{
43
return
m_type
.TypeInfo();
44
};
45
46
using
DataBucketBase::cast
;
47
virtual
void
*
cast
(
CLID
clid,
48
SG::IRegisterTransient
*
/*irt*/
,
49
bool
isConst =
true
)
override
{
50
return
(
m_clid
== clid and isConst ) ?
m_data
:
nullptr
;
51
}
52
53
virtual
void
*
cast
(
const
std::type_info&
tinfo
,
54
SG::IRegisterTransient
*
/*irt*/
,
55
bool
isConst =
true
)
override
{
56
return
(
tinfo
==
m_type
.TypeInfo() and isConst ) ?
m_data
:
nullptr
;
57
}
58
59
virtual
void
relinquish
()
override
{
60
m_data
=
nullptr
;
61
};
62
63
virtual
void
lock
()
override
{
/*not lockable I think */
};
64
65
private
:
66
void
*
m_data
=
nullptr
;
67
CLID
m_clid
= 0;
68
RootType
m_type
;
69
};
70
71
#endif
DataBucketBase.h
CLID
uint32_t CLID
The Class ID type.
Definition
Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
RootType.h
RootType
TTypeAdapter RootType
Definition
RootType.h:211
BareDataBucket::cast
virtual void * cast(const std::type_info &tinfo, SG::IRegisterTransient *, bool isConst=true) override
Return the contents of the DataBucket, converted to type given by std::type_info.
Definition
BareDataBucket.h:53
BareDataBucket::lock
virtual void lock() override
If the held object derives from ILockable, call lock() on it.
Definition
BareDataBucket.h:63
BareDataBucket::BareDataBucket
BareDataBucket(void *data, CLID clid, RootType type)
Definition
BareDataBucket.h:18
BareDataBucket::BareDataBucket
BareDataBucket()=delete
BareDataBucket::BareDataBucket
BareDataBucket(BareDataBucket &&)=delete
BareDataBucket::operator=
BareDataBucket & operator=(const BareDataBucket &)=delete
BareDataBucket::BareDataBucket
BareDataBucket(const BareDataBucket &)=delete
BareDataBucket::m_data
void * m_data
Definition
BareDataBucket.h:66
BareDataBucket::relinquish
virtual void relinquish() override
Give up ownership of the DataBucket contents.
Definition
BareDataBucket.h:59
BareDataBucket::clID
virtual const CLID & clID() const override
Definition
BareDataBucket.h:32
BareDataBucket::cast
virtual void * cast(CLID clid, SG::IRegisterTransient *, bool isConst=true) override
Return the contents of the DataBucket, converted to type given by clid.
Definition
BareDataBucket.h:47
BareDataBucket::m_clid
CLID m_clid
Definition
BareDataBucket.h:67
BareDataBucket::tinfo
virtual const std::type_info & tinfo() const override
Return the type_info for the stored object.
Definition
BareDataBucket.h:42
BareDataBucket::~BareDataBucket
virtual ~BareDataBucket() override
Definition
BareDataBucket.h:21
BareDataBucket::object
virtual void * object() override
Definition
BareDataBucket.h:38
BareDataBucket::operator=
BareDataBucket & operator=(BareDataBucket &&)=delete
BareDataBucket::m_type
RootType m_type
Definition
BareDataBucket.h:68
DataBucketBase::DataBucketBase
DataBucketBase()
Definition
DataBucketBase.h:28
DataBucketBase::cast
T * cast(SG::IRegisterTransient *irt=0, bool isConst=true)
Return the contents of the DataBucket, converted to type T.
SG::IRegisterTransient
Interface for registering a transient object in t2p map.
Definition
IRegisterTransient.h:28
std
STL namespace.
type
Generated on
for ATLAS Offline Software by
1.17.0