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 <utility>
17
21class Token {
22public:
23 // typedef std::pair<long long int, long long int> OID_t;
24 struct OID_t : public std::pair<long long int, long long int> {
25 OID_t() {}
26 OID_t(long long int i1, long long int i2) : std::pair<long long int, long long int> (i1,i2) {}
27 };
28
29private:
31 Token(const Token& copy);
33 Token& operator=(const Token& copy);
34
35public:
37 Token();
39 explicit Token(const Token* source);
41 explicit Token(Token&& source) noexcept;
43 virtual ~Token();
45 bool operator<(const Token& refToken) const { return less(refToken); }
47 bool operator>(const Token& refToken) const {
48 if (less(refToken)) return false;
49 return !equal(refToken);
50 }
51
52 bool operator==(const Token& refToken) const { return equal(refToken); }
54 bool operator!=(const Token& refToken) const { return !equal(refToken); }
56 virtual bool less(const Token& pTok) const;
58 virtual bool equal(const Token& pTok) const;
60 int release();
62 int addRef() { return ++m_refCount; }
64 const Guid& dbID() const { return m_dbID; }
66 Token& setDb(const Guid& db) { m_dbID = db; return *this; }
67 Token& setDb(const std::string& db) { m_dbID.fromString(db); return *this; }
69 const std::string& contID() const { return m_cntID; }
71 Token& setCont(const std::string& cnt) { m_cntID = cnt; return *this; }
73 const Guid& classID() const { return m_classID; }
75 Token& setClassID(const Guid& cl_id) { m_classID = cl_id; return *this; }
77 int technology() const { return m_technology; }
79 Token& setTechnology(int t) { m_technology = t; return *this; }
81 const OID_t& oid() const { return m_oid; }
83 OID_t& oid() { return m_oid; }
85 Token& setOid(const OID_t& oid) { m_oid = oid; return *this; }
87 int type() const { return m_type; }
89 Token& setType(int t) { m_type = t; return *this; }
91 const std::string& auxString() const { return m_auxString; }
93 Token& setAuxString(const std::string& auxString) { m_auxString = auxString; return *this; }
94
96 virtual const std::string toString() const;
98 virtual const std::string key() const;
100 Token& fromString(const std::string_view from);
102 const Token& set(Token* pToken) const;
104 const Token& setData(Token* pToken) const;
105
107 static int numInstances();
108
109private:
113 unsigned int m_technology;
117 std::string m_cntID;
125 std::string m_auxString;
126};
127
128#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:21
const std::string & auxString() const
Access auxiliary string.
Definition Token.h:91
int m_refCount
Reference count.
Definition Token.h:111
Token & setCont(const std::string &cnt)
Set container name.
Definition Token.h:71
const Token & setData(Token *pToken) const
Set all the data part of the token.
Definition Token.cxx:225
Token & setAuxString(const std::string &auxString)
Set auxiliary string.
Definition Token.h:93
Token & setDb(const Guid &db)
Set database name.
Definition Token.h:66
Token & setType(int t)
Set token type.
Definition Token.h:89
bool operator>(const Token &refToken) const
Operator > to allow ordering.
Definition Token.h:47
const std::string & contID() const
Access container identifier.
Definition Token.h:69
virtual ~Token()
Standard destructor: release all allocated resources.
Definition Token.cxx:75
const Guid & classID() const
Access database identifier.
Definition Token.h:73
Guid m_classID
Object global identifier.
Definition Token.h:119
unsigned int m_technology
Technology identifier.
Definition Token.h:113
Token & setClassID(const Guid &cl_id)
Access database identifier.
Definition Token.h:75
Token(const Token &copy)
No copy allowed: put prototype to disable bit-wise copy.
Definition Token.cxx:37
int addRef()
Increase reference count.
Definition Token.h:62
virtual const std::string toString() const
Retrieve the string representation of the token.
Definition Token.cxx:134
int technology() const
Access technology type.
Definition Token.h:77
OID_t m_oid
Persistent object identifier.
Definition Token.h:121
virtual bool less(const Token &pTok) const
Fast token comparison: operator less.
Definition Token.cxx:114
Token & setDb(const std::string &db)
Definition Token.h:67
virtual bool equal(const Token &pTok) const
Fast token comparison: operator equals.
Definition Token.cxx:97
int type() const
Access token type.
Definition Token.h:87
bool operator==(const Token &refToken) const
Equality operator.
Definition Token.h:52
Token()
Standard Constructor.
Definition Token.cxx:27
int release()
Release token: Decrease reference count and eventually delete.
Definition Token.cxx:80
Token & operator=(const Token &copy)
No assignment allowed: put prototype to disable bit-wise assignment.
Definition Token.cxx:89
static int numInstances()
expose Token instance counter for debugging
Definition Token.cxx:24
Token & setOid(const OID_t &oid)
Set object identifier.
Definition Token.h:85
OID_t & oid()
Access object identifier.
Definition Token.h:83
std::string m_auxString
Auxiliary string.
Definition Token.h:125
std::string m_cntID
Container identifier.
Definition Token.h:117
Token & setTechnology(int t)
Set technology type.
Definition Token.h:79
bool operator!=(const Token &refToken) const
Equality operator.
Definition Token.h:54
bool operator<(const Token &refToken) const
Operator < to allow ordering.
Definition Token.h:45
const OID_t & oid() const
Access object identifier.
Definition Token.h:81
virtual const std::string key() const
Retrieve token key.
Definition Token.cxx:206
Token & fromString(const std::string_view from)
Build from the string representation of a token.
Definition Token.cxx:147
int m_type
Token type.
Definition Token.h:123
const Token & set(Token *pToken) const
Set token information.
Definition Token.cxx:216
const Guid & dbID() const
Access database identifier.
Definition Token.h:64
Guid m_dbID
Database identifier.
Definition Token.h:115
STL class.
STL namespace.
OID_t(long long int i1, long long int i2)
Definition Token.h:26