ATLAS Offline Software
Loading...
Searching...
No Matches
TokenAddress Class Reference

This class provides a Generic Transient Address for POOL tokens. More...

#include <TokenAddress.h>

Inheritance diagram for TokenAddress:
Collaboration diagram for TokenAddress:

Classes

struct  Pars

Public Member Functions

 TokenAddress (const TokenAddress &rhs)=delete
 No copy/assignment allowed.
TokenAddressoperator= (const TokenAddress &rhs)=delete
 TokenAddress ()=default
 Dummy constructor.
 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 (long svc, const CLID &clid, const std::string &p1, const std::string &p2, unsigned long ip, std::unique_ptr< Token > pt)
 TokenAddress (const GenericAddress &genAddr, const Token *pt=0)
 TokenAddress (const GenericAddress &genAddr, std::unique_ptr< Token > pt)
virtual ~TokenAddress ()=default
TokengetToken ()
const TokengetToken () const
void setToken (std::unique_ptr< Token > token)
virtual const std::string * par () const override

Private Attributes

std::unique_ptr< Tokenm_ownedToken
const Tokenm_token = nullptr
CxxUtils::CachedValue< Parsm_par
 The parameter array. We create it lazily in par().

Detailed Description

This class provides a Generic Transient Address for POOL tokens.

Definition at line 23 of file TokenAddress.h.

Constructor & Destructor Documentation

◆ TokenAddress() [1/6]

TokenAddress::TokenAddress ( const TokenAddress & rhs)
delete

No copy/assignment allowed.

◆ TokenAddress() [2/6]

TokenAddress::TokenAddress ( )
default

Dummy constructor.

◆ TokenAddress() [3/6]

TokenAddress::TokenAddress ( long svc,
const CLID & clid,
const std::string & p1 = "",
const std::string & p2 = "",
unsigned long ip = 0,
const Token * pt = 0 )
inline

Standard Constructor.

Definition at line 34 of file TokenAddress.h.

39 : GenericAddress(svc, clid, p1, p2, ip), m_token(pt) {
40 }
const Token * m_token

◆ TokenAddress() [4/6]

TokenAddress::TokenAddress ( long svc,
const CLID & clid,
const std::string & p1,
const std::string & p2,
unsigned long ip,
std::unique_ptr< Token > pt )
inline

Definition at line 41 of file TokenAddress.h.

46 :
47 GenericAddress(svc, clid, p1, p2, ip),
48 m_ownedToken (std::move (pt)),
49 m_token(m_ownedToken.get()) {
50 }
std::unique_ptr< Token > m_ownedToken

◆ TokenAddress() [5/6]

TokenAddress::TokenAddress ( const GenericAddress & genAddr,
const Token * pt = 0 )
inline

Definition at line 51 of file TokenAddress.h.

51 : GenericAddress(genAddr), m_token(pt) {
52 }

◆ TokenAddress() [6/6]

TokenAddress::TokenAddress ( const GenericAddress & genAddr,
std::unique_ptr< Token > pt )
inline

Definition at line 53 of file TokenAddress.h.

54 :
55 GenericAddress(genAddr),
56 m_ownedToken (std::move(pt)),
57 m_token(m_ownedToken.get()) {
58 }

◆ ~TokenAddress()

virtual TokenAddress::~TokenAddress ( )
virtualdefault

Member Function Documentation

◆ getToken() [1/2]

Token * TokenAddress::getToken ( )

Definition at line 15 of file TokenAddress.cxx.

16{
17 if (!m_ownedToken && m_token) {
18 m_ownedToken = std::make_unique<Token> (m_token);
19 m_token = m_ownedToken.get();
20 }
21 return m_ownedToken.get();
22}

◆ getToken() [2/2]

const Token * TokenAddress::getToken ( ) const
inline

Definition at line 63 of file TokenAddress.h.

63{ return m_token; }

◆ operator=()

TokenAddress & TokenAddress::operator= ( const TokenAddress & rhs)
delete

◆ par()

const std::string * TokenAddress::par ( ) const
overridevirtual

Definition at line 24 of file TokenAddress.cxx.

25{
26 if (!m_par.isValid()) {
27 // We haven't created the parameter array yet.
28 // Do it now.
29 Pars pars;
30 pars.par[0] = this->GenericAddress::par()[0];
31 pars.par[1] = this->GenericAddress::par()[1];
32 pars.par[2] = this->GenericAddress::par()[2];
33 if (pars.par[0].empty() && m_token) {
34 pars.par[0] = m_token->toString();
35 }
36 m_par.set (std::move (pars));
37 }
38 return m_par.ptr()->par;
39}
CxxUtils::CachedValue< Pars > m_par
The parameter array. We create it lazily in par().

◆ setToken()

void TokenAddress::setToken ( std::unique_ptr< Token > token)

Definition at line 9 of file TokenAddress.cxx.

9 {
10 m_ownedToken = std::move (token);
11 m_token = m_ownedToken.get();
12 m_par.reset();
13}

Member Data Documentation

◆ m_ownedToken

std::unique_ptr<Token> TokenAddress::m_ownedToken
private

Definition at line 71 of file TokenAddress.h.

◆ m_par

CxxUtils::CachedValue<Pars> TokenAddress::m_par
private

The parameter array. We create it lazily in par().

Definition at line 74 of file TokenAddress.h.

◆ m_token

const Token* TokenAddress::m_token = nullptr
private

Definition at line 72 of file TokenAddress.h.


The documentation for this class was generated from the following files: