ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
PersistentDataModel
PersistentDataModel
TokenAddress.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef PERSISTENTDATAMODEL_TOKENADDRESS_H
6
#define PERSISTENTDATAMODEL_TOKENADDRESS_H
7
12
13
// Framework include files
14
#include "GaudiKernel/GenericAddress.h"
15
16
#include "
PersistentDataModel/Token.h
"
17
#include "
CxxUtils/CachedValue.h
"
18
#include <memory>
19
23
class
TokenAddress
:
public
GenericAddress {
24
25
public
:
27
TokenAddress
(
const
TokenAddress
& rhs) =
delete
;
28
TokenAddress
&
operator=
(
const
TokenAddress
& rhs) =
delete
;
29
31
TokenAddress
() =
default
;
32
34
TokenAddress
(
long
svc,
35
const
CLID
& clid,
36
const
std::string& p1 =
""
,
37
const
std::string& p2 =
""
,
38
unsigned
long
ip = 0,
39
const
Token
* pt = 0) : GenericAddress(svc, clid, p1, p2, ip),
m_token
(pt) {
40
}
41
TokenAddress
(
long
svc,
42
const
CLID
& clid,
43
const
std::string& p1,
44
const
std::string& p2,
45
unsigned
long
ip,
46
std::unique_ptr<Token> pt) :
47
GenericAddress(svc, clid, p1, p2, ip),
48
m_ownedToken
(
std
::move (pt)),
49
m_token
(
m_ownedToken
.
get
()) {
50
}
51
TokenAddress
(
const
GenericAddress& genAddr,
const
Token
* pt = 0) : GenericAddress(genAddr),
m_token
(pt) {
52
}
53
TokenAddress
(
const
GenericAddress& genAddr,
54
std::unique_ptr<Token> pt) :
55
GenericAddress(genAddr),
56
m_ownedToken
(
std
::move(pt)),
57
m_token
(
m_ownedToken
.
get
()) {
58
}
59
60
virtual
~TokenAddress
() =
default
;
61
62
Token
*
getToken
();
63
const
Token
*
getToken
()
const
{
return
m_token
; }
64
void
setToken
(std::unique_ptr<Token> token);
65
virtual
const
std::string*
par
()
const override
;
66
67
private
:
68
struct
Pars
{
69
std::string
par
[3];
70
};
71
std::unique_ptr<Token>
m_ownedToken
;
72
const
Token
*
m_token
=
nullptr
;
74
CxxUtils::CachedValue<Pars>
m_par
;
75
};
76
77
#endif
CachedValue.h
Cached value with atomic update.
CLID
uint32_t CLID
The Class ID type.
Definition
Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
Token.h
This file contains the class definition for the Token class (migrated from POOL).
CxxUtils::CachedValue
Cached value with atomic update.
Definition
CachedValue.h:55
TokenAddress::m_token
const Token * m_token
Definition
TokenAddress.h:72
TokenAddress::TokenAddress
TokenAddress(long svc, const CLID &clid, const std::string &p1="", const std::string &p2="", unsigned long ip=0, const Token *pt=0)
Standard Constructor.
Definition
TokenAddress.h:34
TokenAddress::TokenAddress
TokenAddress(const TokenAddress &rhs)=delete
No copy/assignment allowed.
TokenAddress::getToken
Token * getToken()
Definition
TokenAddress.cxx:15
TokenAddress::TokenAddress
TokenAddress()=default
Dummy constructor.
TokenAddress::setToken
void setToken(std::unique_ptr< Token > token)
Definition
TokenAddress.cxx:9
TokenAddress::getToken
const Token * getToken() const
Definition
TokenAddress.h:63
TokenAddress::m_ownedToken
std::unique_ptr< Token > m_ownedToken
Definition
TokenAddress.h:71
TokenAddress::operator=
TokenAddress & operator=(const TokenAddress &rhs)=delete
TokenAddress::m_par
CxxUtils::CachedValue< Pars > m_par
The parameter array. We create it lazily in par().
Definition
TokenAddress.h:74
TokenAddress::TokenAddress
TokenAddress(const GenericAddress &genAddr, std::unique_ptr< Token > pt)
Definition
TokenAddress.h:53
TokenAddress::~TokenAddress
virtual ~TokenAddress()=default
TokenAddress::TokenAddress
TokenAddress(const GenericAddress &genAddr, const Token *pt=0)
Definition
TokenAddress.h:51
TokenAddress::par
virtual const std::string * par() const override
Definition
TokenAddress.cxx:24
TokenAddress::TokenAddress
TokenAddress(long svc, const CLID &clid, const std::string &p1, const std::string &p2, unsigned long ip, std::unique_ptr< Token > pt)
Definition
TokenAddress.h:41
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition
Token.h:22
get
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition
hcg.cxx:132
std
STL namespace.
TokenAddress::Pars
Definition
TokenAddress.h:68
TokenAddress::Pars::par
std::string par[3]
Definition
TokenAddress.h:69
Generated on
for ATLAS Offline Software by
1.17.0