ATLAS Offline Software
Loading...
Searching...
No Matches
Token.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef PERSISTENTDATAMODEL_TOKEN_H
6#define PERSISTENTDATAMODEL_TOKEN_H
7
12
14
15#include <string>
16#include <string_view>
17#include <utility>
18
22class Token {
23public:
24 // typedef std::pair<long long int, long long int> OID_t;
25 struct OID_t : public std::pair<long long int, long long int> {
26 OID_t() {}
27 OID_t(long long int i1, long long int i2) : std::pair<long long int, long long int> (i1,i2) {}
28 };
29
30private:
32 Token(const Token& copy);
34 Token& operator=(const Token& copy);
35
36public:
38 Token();
40 explicit Token(const Token* source);
42 explicit Token(Token&& source) noexcept;
44 virtual ~Token();
46 bool operator<(const Token& refToken) const { return less(refToken); }
48 bool operator>(const Token& refToken) const {
49 if (less(refToken)) return false;
50 return !equal(refToken);
51 }
52
53 bool operator==(const Token& refToken) const { return equal(refToken); }
55 bool operator!=(const Token& refToken) const { return !equal(refToken); }
57 virtual bool less(const Token& pTok) const;
59 virtual bool equal(const Token& pTok) const;
61 int release();
63 int addRef() { return ++m_refCount; }
65 const Guid& dbID() const { return m_dbID; }
67 Token& setDb(const Guid& db) { m_dbID = db; return *this; }
68 Token& setDb(const std::string& db) { m_dbID.fromString(db); return *this; }
70 const std::string& contID() const { return m_cntID; }
72 Token& setCont(const std::string& cnt) { m_cntID = cnt; return *this; }
74 const Guid& classID() const { return m_classID; }
76 Token& setClassID(const Guid& cl_id) { m_classID = cl_id; return *this; }
78 int technology() const { return m_technology; }
80 Token& setTechnology(int t) { m_technology = t; return *this; }
82 const OID_t& oid() const { return m_oid; }
84 OID_t& oid() { return m_oid; }
86 Token& setOid(const OID_t& oid) { m_oid = oid; return *this; }
88 int type() const { return m_type; }
90 Token& setType(int t) { m_type = t; return *this; }
92 const std::string& auxString() const { return m_auxString; }
94 Token& setAuxString(std::string&& auxString) { m_auxString = std::move(auxString); return *this; }
95 void setAuxString(std::string_view auxString) { m_auxString = auxString; }
96
98 virtual const std::string toString() const;
100 virtual const std::string key() const;
102 Token& fromString(const std::string_view from);
104 const Token& set(Token* pToken) const;
106 const Token& setData(Token* pToken) const;
107
109 static int numInstances();
110
111private:
115 unsigned int m_technology;
119 std::string m_cntID;
127 std::string m_auxString;
128};
129
130#endif
This file contains the class definition for the Guid class (migrated from POOL).
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition Guid.h:25
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition Token.h:22
const std::string & auxString() const
Access auxiliary string.
Definition Token.h:92
int m_refCount
Reference count.
Definition Token.h:113
Token & setCont(const std::string &cnt)
Set container name.
Definition Token.h:72
const Token & setData(Token *pToken) const
Set all the data part of the token.
Definition Token.cxx:265
Token & setDb(const Guid &db)
Set database name.
Definition Token.h:67
Token & setType(int t)
Set token type.
Definition Token.h:90
bool operator>(const Token &refToken) const
Operator > to allow ordering.
Definition Token.h:48
const std::string & contID() const
Access container identifier.
Definition Token.h:70
virtual ~Token()
Standard destructor: release all allocated resources.
Definition Token.cxx:76
const Guid & classID() const
Access database identifier.
Definition Token.h:74
Guid m_classID
Object global identifier.
Definition Token.h:121
unsigned int m_technology
Technology identifier.
Definition Token.h:115
Token & setClassID(const Guid &cl_id)
Access database identifier.
Definition Token.h:76
void setAuxString(std::string_view auxString)
Definition Token.h:95
Token(const Token &copy)
No copy allowed: put prototype to disable bit-wise copy.
Definition Token.cxx:38
int addRef()
Increase reference count.
Definition Token.h:63
virtual const std::string toString() const
Retrieve the string representation of the token.
Definition Token.cxx:135
int technology() const
Access technology type.
Definition Token.h:78
OID_t m_oid
Persistent object identifier.
Definition Token.h:123
virtual bool less(const Token &pTok) const
Fast token comparison: operator less.
Definition Token.cxx:115
Token & setDb(const std::string &db)
Definition Token.h:68
virtual bool equal(const Token &pTok) const
Fast token comparison: operator equals.
Definition Token.cxx:98
int type() const
Access token type.
Definition Token.h:88
bool operator==(const Token &refToken) const
Equality operator.
Definition Token.h:53
Token()
Standard Constructor.
Definition Token.cxx:28
int release()
Release token: Decrease reference count and eventually delete.
Definition Token.cxx:81
Token & operator=(const Token &copy)
No assignment allowed: put prototype to disable bit-wise assignment.
Definition Token.cxx:90
static int numInstances()
expose Token instance counter for debugging
Definition Token.cxx:25
Token & setOid(const OID_t &oid)
Set object identifier.
Definition Token.h:86
OID_t & oid()
Access object identifier.
Definition Token.h:84
std::string m_auxString
Auxiliary string.
Definition Token.h:127
std::string m_cntID
Container identifier.
Definition Token.h:119
Token & setTechnology(int t)
Set technology type.
Definition Token.h:80
bool operator!=(const Token &refToken) const
Equality operator.
Definition Token.h:55
bool operator<(const Token &refToken) const
Operator < to allow ordering.
Definition Token.h:46
const OID_t & oid() const
Access object identifier.
Definition Token.h:82
virtual const std::string key() const
Retrieve token key.
Definition Token.cxx:228
Token & fromString(const std::string_view from)
Build from the string representation of a token.
Definition Token.cxx:169
int m_type
Token type.
Definition Token.h:125
const Token & set(Token *pToken) const
Set token information.
Definition Token.cxx:256
const Guid & dbID() const
Access database identifier.
Definition Token.h:65
Guid m_dbID
Database identifier.
Definition Token.h:117
Token & setAuxString(std::string &&auxString)
Set auxiliary string.
Definition Token.h:94
STL class.
STL namespace.
OID_t(long long int i1, long long int i2)
Definition Token.h:27