Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Classes | Public Member Functions | Private Attributes | List of all members
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. More...
 
TokenAddressoperator= (const TokenAddress &rhs)=delete
 
 TokenAddress ()=default
 Dummy constructor. More...
 
 TokenAddress (long svc, const CLID &clid, const std::string &p1="", const std::string &p2="", unsigned long ip=0, const Token *pt=0)
 Standard Constructor. More...
 
 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(). More...
 

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  }

◆ 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  }

◆ 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 }

◆ 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:
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
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
TRTCalib_cfilter.p2
p2
Definition: TRTCalib_cfilter.py:131
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
TokenAddress::m_par
CxxUtils::CachedValue< Pars > m_par
The parameter array. We create it lazily in par().
Definition: TokenAddress.h:74
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
Token::toString
virtual const std::string toString() const
Retrieve the string representation of the token.
Definition: Token.cxx:129
TokenAddress::m_token
const Token * m_token
Definition: TokenAddress.h:72