ATLAS Offline Software
Loading...
Searching...
No Matches
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
18#include <memory>
19
23class TokenAddress : public GenericAddress {
24
25public:
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)),
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
67private:
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
Cached value with atomic update.
uint32_t CLID
The Class ID type.
This file contains the class definition for the Token class (migrated from POOL).
Cached value with atomic update.
Definition CachedValue.h:55
const Token * m_token
TokenAddress(long svc, const CLID &clid, const std::string &p1="", const std::string &p2="", unsigned long ip=0, const Token *pt=0)
Standard Constructor.
TokenAddress(const TokenAddress &rhs)=delete
No copy/assignment allowed.
Token * getToken()
TokenAddress()=default
Dummy constructor.
void setToken(std::unique_ptr< Token > token)
const Token * getToken() const
std::unique_ptr< Token > m_ownedToken
TokenAddress & operator=(const TokenAddress &rhs)=delete
CxxUtils::CachedValue< Pars > m_par
The parameter array. We create it lazily in par().
TokenAddress(const GenericAddress &genAddr, std::unique_ptr< Token > pt)
virtual ~TokenAddress()=default
TokenAddress(const GenericAddress &genAddr, const Token *pt=0)
virtual const std::string * par() const override
TokenAddress(long svc, const CLID &clid, const std::string &p1, const std::string &p2, unsigned long ip, std::unique_ptr< Token > pt)
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition Token.h:21
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition hcg.cxx:130
STL namespace.
std::string par[3]