Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
13 // Framework include files
14 #include "GaudiKernel/GenericAddress.h"
15 
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 
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  }
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)),
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)),
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;
75 };
76 
77 #endif
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::Pars
Definition: TokenAddress.h:68
TokenAddress::TokenAddress
TokenAddress(const GenericAddress &genAddr, const Token *pt=0)
Definition: TokenAddress.h:51
TokenAddress::Pars::par
std::string par[3]
Definition: TokenAddress.h:69
TRTCalib_cfilter.p1
p1
Definition: TRTCalib_cfilter.py:130
test_pyathena.pt
pt
Definition: test_pyathena.py:11
TokenAddress::m_ownedToken
std::unique_ptr< Token > m_ownedToken
Definition: TokenAddress.h:71
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
TokenAddress::TokenAddress
TokenAddress(const TokenAddress &rhs)=delete
No copy/assignment allowed.
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition: Token.h:21
TokenAddress
This class provides a Generic Transient Address for POOL tokens.
Definition: TokenAddress.h:23
TokenAddress::TokenAddress
TokenAddress(const GenericAddress &genAddr, std::unique_ptr< Token > pt)
Definition: TokenAddress.h:53
TRTCalib_cfilter.p2
p2
Definition: TRTCalib_cfilter.py:131
TokenAddress::TokenAddress
TokenAddress()=default
Dummy constructor.
CxxUtils::CachedValue
Cached value with atomic update.
Definition: CachedValue.h:55
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
TokenAddress::getToken
Token * getToken()
Definition: TokenAddress.cxx:15
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
CLID
uint32_t CLID
The Class ID type.
Definition: Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
TokenAddress::setToken
void setToken(std::unique_ptr< Token > token)
Definition: TokenAddress.cxx:9
CachedValue.h
Cached value with atomic update.
TokenAddress::m_par
CxxUtils::CachedValue< Pars > m_par
The parameter array. We create it lazily in par().
Definition: TokenAddress.h:74
TokenAddress::~TokenAddress
virtual ~TokenAddress()=default
TokenAddress::getToken
const Token * getToken() const
Definition: TokenAddress.h:63
get
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition: hcg.cxx:127
TokenAddress::m_token
const Token * m_token
Definition: TokenAddress.h:72
TokenAddress::operator=
TokenAddress & operator=(const TokenAddress &rhs)=delete
Token.h
This file contains the class definition for the Token class (migrated from POOL).