ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
pool::DbToken Class Reference

Db objects: DbToken, DbToken.h, POOLCore/DbToken.h. More...

#include <DbToken.h>

Inheritance diagram for pool::DbToken:
Collaboration diagram for pool::DbToken:

Public Types

enum  { TOKEN_FULL_KEY = 1<<0, TOKEN_CONT_KEY = 1<<1, TOKEN_ITERATOR = 1<<2 }
 Default token key enumeration. More...
 

Public Member Functions

 DbToken ()
 Standard constructor. More...
 
virtual bool equal (const Token &pTok) const
 Fast token comparison: operator equal. More...
 
virtual bool less (const Token &pTok) const
 Fast token comparison: operator less. More...
 
void setKey (int which)
 Produce the keys only on demand. More...
 
void setKeyEx (int which, const Guid &guid)
 Copy the key. More...
 
void setUserKey (int i, const Guid &guid)
 Set a user key. More...
 
void setTypeInfo (const DbTypeInfo *t)
 Update type information. More...
 
const DbTypeInfotypeInfo () const
 Access type information. More...
 
void setLocal (bool val)
 Set local flag. More...
 
bool isLocal () const
 Access local flag. More...
 
void addTypeSetting (int val)
 Add type setting. More...
 
void removeTypeSetting (int val)
 Add type setting. More...
 
const GuidfullKey () const
 Access to user key identifying full token. More...
 
const GuidcontKey () const
 Access to user key #1. More...
 
const Guiduserkey (int i) const
 Access to optional user keys #2. More...
 
bool operator< (const Token &refToken) const
 Operator < to allow ordering. More...
 
bool operator> (const Token &refToken) const
 Operator > to allow ordering. More...
 
bool operator== (const Token &refToken) const
 Equality operator. More...
 
bool operator!= (const Token &refToken) const
 Equality operator. More...
 
int release ()
 Release token: Decrease reference count and eventually delete. More...
 
int addRef ()
 Increase reference count. More...
 
const GuiddbID () const
 Access database identifier. More...
 
TokensetDb (const Guid &db)
 Set database name. More...
 
TokensetDb (const std::string &db)
 
const std::string & contID () const
 Access container identifier. More...
 
TokensetCont (const std::string &cnt)
 Set container name. More...
 
const GuidclassID () const
 Access database identifier. More...
 
TokensetClassID (const Guid &cl_id)
 Access database identifier. More...
 
int technology () const
 Access technology type. More...
 
TokensetTechnology (int t)
 Set technology type. More...
 
const OID_toid () const
 Access object identifier. More...
 
OID_toid ()
 Access object identifier. More...
 
TokensetOid (const OID_t &oid)
 Set object identifier. More...
 
int type () const
 Access token type. More...
 
TokensetType (int t)
 Set token type. More...
 
const std::string & auxString () const
 Access auxiliary string. More...
 
TokensetAuxString (const std::string &auxString)
 Set auxiliary string. More...
 
virtual const std::string toString () const
 Retrieve the string representation of the token. More...
 
virtual const std::string key () const
 Retrieve token key. More...
 
TokenfromString (const std::string &from)
 Build from the string representation of a token. More...
 
const Tokenset (Token *pToken) const
 Set token information. More...
 
const TokensetData (Token *pToken) const
 Set all the data part of the token. More...
 

Static Public Member Functions

static void makeKey (const Token *tok, int which, Guid &guid)
 Produce the token keys only on demand for export. More...
 
static int numInstances ()
 expose Token instance counter for debugging More...
 

Private Attributes

Guid m_keyFull
 Buffer to hold user key identifying full token. More...
 
Guid m_contKey
 Buffer to hold user key #1. More...
 
std::vector< Guidm_ukeys
 Optional other user keys. More...
 
const DbTypeInfom_info
 Database type information cache. More...
 
bool m_local
 Flag to indicate if toekn is local or foreign. More...
 
int m_refCount
 Reference count. More...
 
unsigned int m_technology
 Technology identifier. More...
 
Guid m_dbID
 Database identifier. More...
 
std::string m_cntID
 Container identifier. More...
 
Guid m_classID
 Object global identifier. More...
 
OID_t m_oid
 Persistent object identifier. More...
 
int m_type
 Token type. More...
 
std::string m_auxString
 Auxiliary string. More...
 

Detailed Description

Db objects: DbToken, DbToken.h, POOLCore/DbToken.h.

Description:

Definition of an optimized token used internally in the Database. This token implementation generates an MD5 checksum over the token information. This should be advantageous for long tokens compared to the horrible full lookup of the string exceeding typically 300 chars.

Author
M.Frank
Version
1.0

Definition at line 42 of file DbToken.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Default token key enumeration.

Enumerator
TOKEN_FULL_KEY 
TOKEN_CONT_KEY 
TOKEN_ITERATOR 

Definition at line 45 of file DbToken.h.

45  {TOKEN_FULL_KEY = 1<<0,
46  TOKEN_CONT_KEY = 1<<1,
47  TOKEN_ITERATOR = 1<<2
48  };

Constructor & Destructor Documentation

◆ DbToken()

pool::DbToken::DbToken ( )
inline

Standard constructor.

Definition at line 64 of file DbToken.h.

64 : m_info(0), m_local(false) {}

Member Function Documentation

◆ addRef()

int Token::addRef ( )
inlineinherited

Increase reference count.

Definition at line 60 of file Token.h.

60 { return ++m_refCount; }

◆ addTypeSetting()

void pool::DbToken::addTypeSetting ( int  val)
inline

Add type setting.

Definition at line 84 of file DbToken.h.

84 { setType(type() | val); }

◆ auxString()

const std::string& Token::auxString ( ) const
inlineinherited

Access auxiliary string.

Definition at line 89 of file Token.h.

89 { return m_auxString; }

◆ classID()

const Guid& Token::classID ( ) const
inlineinherited

Access database identifier.

Definition at line 71 of file Token.h.

71 { return m_classID; }

◆ contID()

const std::string& Token::contID ( ) const
inlineinherited

Access container identifier.

Definition at line 67 of file Token.h.

67 { return m_cntID; }

◆ contKey()

const Guid& pool::DbToken::contKey ( ) const
inline

Access to user key #1.

Definition at line 90 of file DbToken.h.

90 { return m_contKey; }

◆ dbID()

const Guid& Token::dbID ( ) const
inlineinherited

Access database identifier.

Definition at line 62 of file Token.h.

62 { return m_dbID; }

◆ equal()

virtual bool pool::DbToken::equal ( const Token pTok) const
virtual

Fast token comparison: operator equal.

Reimplemented from Token.

◆ fromString()

Token & Token::fromString ( const std::string &  from)
inherited

Build from the string representation of a token.

Definition at line 133 of file Token.cxx.

133  {
134  m_auxString.clear();
135  for (const char* p1 = source.c_str(); p1; p1 = ::strchr(++p1,'[')) {
136  const char* p2 = ::strchr(p1, '=');
137  const char* p3 = ::strchr(p1, ']');
138  if (p2 != 0 && p3 != 0) {
139  if (::strncmp("[DB=", p1, 4) == 0) {
140  m_dbID.fromString(p1 + 4);
141  } else if (::strncmp("[CNT=", p1, 5) == 0) {
142  m_cntID.assign (p2+1, p3-p2-1);
143  } else if (::strncmp(fmt_oid, p1, 5) == 0) {
144  long long unsigned int first, second;
145  if (::strncmp("]", p1 + 22, 1) == 0) { // 5 + 8(int) + 1(minus) + 8(int) = 22
146  ::sscanf(p1, fmt_oid_old, &first, &second);
147  if (int(first) == ~0x0) first = ~0x0LL;
148  if (int(second) == ~0x0) second = ~0x0LL;
149  } else {
150  ::sscanf(p1, fmt_oid, &first, &second);
151  }
152  m_oid.first = first;
153  m_oid.second = second;
154  } else if (::strncmp(fmt_clid, p1, 6) == 0) {
155  m_classID.fromString(p1 + 6);
156  } else if (::strncmp(fmt_tech, p1, 6) == 0) {
157  ::sscanf(p1, fmt_tech, &m_technology);
158  } else {
159  while (*(p2 + 1) == '[' && p3 && *(++p3) != 0 && *p3 != ']') {
160  p3 = ::strchr(p3, ']');
161  }
162  if (!p3) p3 = source.c_str() + source.size();
163  m_auxString.append (p1, p3-p1);
164  m_auxString += ']';
165  }
166  }
167  }
168  return *this;
169 }

◆ fullKey()

const Guid& pool::DbToken::fullKey ( ) const
inline

Access to user key identifying full token.

Definition at line 88 of file DbToken.h.

88 { return m_keyFull; }

◆ isLocal()

bool pool::DbToken::isLocal ( ) const
inline

Access local flag.

Definition at line 82 of file DbToken.h.

82 { return m_local; }

◆ key()

const std::string Token::key ( ) const
virtualinherited

Retrieve token key.

Retrieve the string representation of the token.

Definition at line 172 of file Token.cxx.

172  {
173  char text[1024];
174  int s = ::sprintf(text, "][TECH=%08X]", m_technology & KEY_MASK);
175  std::string k = "[DB=";
176  k += m_dbID.toString();
177  k += "][CNT=";
178  k += m_cntID;
179  k += "][CLID=";
180  k += m_classID.toString();
181  k.append(text, s);
182  return k;
183 }

◆ less()

virtual bool pool::DbToken::less ( const Token pTok) const
virtual

Fast token comparison: operator less.

Reimplemented from Token.

◆ makeKey()

static void pool::DbToken::makeKey ( const Token tok,
int  which,
Guid guid 
)
static

Produce the token keys only on demand for export.

◆ numInstances()

int Token::numInstances ( )
staticinherited

expose Token instance counter for debugging

Definition at line 19 of file Token.cxx.

19 { return s_numCount; }

◆ oid() [1/2]

OID_t& Token::oid ( )
inlineinherited

Access object identifier.

Definition at line 81 of file Token.h.

81 { return m_oid; }

◆ oid() [2/2]

const OID_t& Token::oid ( ) const
inlineinherited

Access object identifier.

Definition at line 79 of file Token.h.

79 { return m_oid; }

◆ operator!=()

bool Token::operator!= ( const Token refToken) const
inlineinherited

Equality operator.

Definition at line 52 of file Token.h.

52 { return !equal(refToken); }

◆ operator<()

bool Token::operator< ( const Token refToken) const
inlineinherited

Operator < to allow ordering.

Definition at line 43 of file Token.h.

43 { return less(refToken); }

◆ operator==()

bool Token::operator== ( const Token refToken) const
inlineinherited

Equality operator.

Definition at line 50 of file Token.h.

50 { return equal(refToken); }

◆ operator>()

bool Token::operator> ( const Token refToken) const
inlineinherited

Operator > to allow ordering.

Definition at line 45 of file Token.h.

45  {
46  if (less(refToken)) return false;
47  return !equal(refToken);
48  }

◆ release()

int Token::release ( )
inherited

Release token: Decrease reference count and eventually delete.

Definition at line 60 of file Token.cxx.

60  {
61  int cnt = --m_refCount;
62  if (0 >= cnt) {
63  delete this;
64  }
65  return cnt;
66 }

◆ removeTypeSetting()

void pool::DbToken::removeTypeSetting ( int  val)
inline

Add type setting.

Definition at line 86 of file DbToken.h.

86 { setType(type() & ~val); }

◆ set()

const Token & Token::set ( Token pToken) const
inherited

Set token information.

Definition at line 185 of file Token.cxx.

185  {
186  pToken->m_technology = m_technology;
187  pToken->m_dbID = m_dbID;
188  pToken->m_cntID = m_cntID;
189  pToken->m_classID = m_classID;
190  pToken->m_oid.first = m_oid.first;
191  return *this;
192 }

◆ setAuxString()

Token& Token::setAuxString ( const std::string &  auxString)
inlineinherited

Set auxiliary string.

Definition at line 91 of file Token.h.

91 { m_auxString = auxString; return *this; }

◆ setClassID()

Token& Token::setClassID ( const Guid cl_id)
inlineinherited

Access database identifier.

Definition at line 73 of file Token.h.

73 { m_classID = cl_id; return *this; }

◆ setCont()

Token& Token::setCont ( const std::string &  cnt)
inlineinherited

Set container name.

Definition at line 69 of file Token.h.

69 { m_cntID = cnt; return *this; }

◆ setData()

const Token & Token::setData ( Token pToken) const
inherited

Set all the data part of the token.

Definition at line 194 of file Token.cxx.

194  {
195  this->set(pToken);
196  pToken->m_oid.second = m_oid.second;
197  return *this;
198 }

◆ setDb() [1/2]

Token& Token::setDb ( const Guid db)
inlineinherited

Set database name.

Definition at line 64 of file Token.h.

64 { m_dbID = db; return *this; }

◆ setDb() [2/2]

Token& Token::setDb ( const std::string &  db)
inlineinherited

Definition at line 65 of file Token.h.

65 { m_dbID.fromString(db); return *this; }

◆ setKey()

void pool::DbToken::setKey ( int  which)

Produce the keys only on demand.

◆ setKeyEx()

void pool::DbToken::setKeyEx ( int  which,
const Guid guid 
)

Copy the key.

◆ setLocal()

void pool::DbToken::setLocal ( bool  val)
inline

Set local flag.

Definition at line 80 of file DbToken.h.

80 { m_local = val; }

◆ setOid()

Token& Token::setOid ( const OID_t oid)
inlineinherited

Set object identifier.

Definition at line 83 of file Token.h.

83 { m_oid = oid; return *this; }

◆ setTechnology()

Token& Token::setTechnology ( int  t)
inlineinherited

Set technology type.

Definition at line 77 of file Token.h.

77 { m_technology = t; return *this; }

◆ setType()

Token& Token::setType ( int  t)
inlineinherited

Set token type.

Definition at line 87 of file Token.h.

87 { m_type = t; return *this; }

◆ setTypeInfo()

void pool::DbToken::setTypeInfo ( const DbTypeInfo t)
inline

Update type information.

Definition at line 76 of file DbToken.h.

76 { m_info = t; }

◆ setUserKey()

void pool::DbToken::setUserKey ( int  i,
const Guid guid 
)

Set a user key.

◆ technology()

int Token::technology ( ) const
inlineinherited

Access technology type.

Definition at line 75 of file Token.h.

75 { return m_technology; }

◆ toString()

const std::string Token::toString ( ) const
virtualinherited

Retrieve the string representation of the token.

Definition at line 114 of file Token.cxx.

114  {
115  char text1[128];
116  int s1 = sprintf(text1, fmt_tech, m_technology);
117  char text2[128];
118  int s2 = sprintf(text2, fmt_oid, m_oid.first, m_oid.second);
119  std::string str = "[DB=";
120  str.reserve(32);
121  str += m_dbID.toString();
122  str += "][CNT=";
123  str += m_cntID;
124  str += "][CLID=";
125  str += m_classID.toString();
126  str += ']';
127  str.append(text1, s1);
128  str.append(text2, s2);
129  str += m_auxString;
130  return str;
131 }

◆ type()

int Token::type ( ) const
inlineinherited

Access token type.

Definition at line 85 of file Token.h.

85 { return m_type; }

◆ typeInfo()

const DbTypeInfo* pool::DbToken::typeInfo ( ) const
inline

Access type information.

Definition at line 78 of file DbToken.h.

78 { return m_info; }

◆ userkey()

const Guid& pool::DbToken::userkey ( int  i) const
inline

Access to optional user keys #2.

Definition at line 92 of file DbToken.h.

92 { return m_ukeys[i]; }

Member Data Documentation

◆ m_auxString

std::string Token::m_auxString
privateinherited

Auxiliary string.

Definition at line 123 of file Token.h.

◆ m_classID

Guid Token::m_classID
privateinherited

Object global identifier.

Definition at line 117 of file Token.h.

◆ m_cntID

std::string Token::m_cntID
privateinherited

Container identifier.

Definition at line 115 of file Token.h.

◆ m_contKey

Guid pool::DbToken::m_contKey
private

Buffer to hold user key #1.

Definition at line 53 of file DbToken.h.

◆ m_dbID

Guid Token::m_dbID
privateinherited

Database identifier.

Definition at line 113 of file Token.h.

◆ m_info

const DbTypeInfo* pool::DbToken::m_info
private

Database type information cache.

Definition at line 57 of file DbToken.h.

◆ m_keyFull

Guid pool::DbToken::m_keyFull
private

Buffer to hold user key identifying full token.

Definition at line 51 of file DbToken.h.

◆ m_local

bool pool::DbToken::m_local
private

Flag to indicate if toekn is local or foreign.

Definition at line 59 of file DbToken.h.

◆ m_oid

OID_t Token::m_oid
privateinherited

Persistent object identifier.

Definition at line 119 of file Token.h.

◆ m_refCount

int Token::m_refCount
privateinherited

Reference count.

Definition at line 109 of file Token.h.

◆ m_technology

unsigned int Token::m_technology
privateinherited

Technology identifier.

Definition at line 111 of file Token.h.

◆ m_type

int Token::m_type
privateinherited

Token type.

Definition at line 121 of file Token.h.

◆ m_ukeys

std::vector< Guid > pool::DbToken::m_ukeys
private

Optional other user keys.

Definition at line 55 of file DbToken.h.


The documentation for this class was generated from the following file:
Token::m_type
int m_type
Token type.
Definition: Token.h:121
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
ReadCellNoiseFromCoolCompare.s1
s1
Definition: ReadCellNoiseFromCoolCompare.py:378
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
pool::DbToken::m_keyFull
Guid m_keyFull
Buffer to hold user key identifying full token.
Definition: DbToken.h:51
CaloCondBlobAlgs_fillNoiseFromASCII.db
db
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:43
Token::auxString
const std::string & auxString() const
Access auxiliary string.
Definition: Token.h:89
pool::DbToken::m_contKey
Guid m_contKey
Buffer to hold user key #1.
Definition: DbToken.h:53
Token::m_dbID
Guid m_dbID
Database identifier.
Definition: Token.h:113
Guid::toString
const std::string toString() const
Automatic conversion to string representation.
Definition: Guid.cxx:58
Token::m_technology
unsigned int m_technology
Technology identifier.
Definition: Token.h:111
Token::less
virtual bool less(const Token &pTok) const
Fast token comparison: operator less.
Definition: Token.cxx:94
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
pool::DbToken::TOKEN_ITERATOR
@ TOKEN_ITERATOR
Definition: DbToken.h:47
Token::m_classID
Guid m_classID
Object global identifier.
Definition: Token.h:117
ParticleJetTools::p3
Amg::Vector3D p3(const xAOD::TruthVertex *p)
Definition: ParticleJetLabelCommon.cxx:55
Token::m_cntID
std::string m_cntID
Container identifier.
Definition: Token.h:115
Token::setType
Token & setType(int t)
Set token type.
Definition: Token.h:87
Token::equal
virtual bool equal(const Token &pTok) const
Fast token comparison: operator equals.
Definition: Token.cxx:77
lumiFormat.i
int i
Definition: lumiFormat.py:92
pool::DbToken::m_ukeys
std::vector< Guid > m_ukeys
Optional other user keys.
Definition: DbToken.h:55
Token::m_oid
OID_t m_oid
Persistent object identifier.
Definition: Token.h:119
Token::type
int type() const
Access token type.
Definition: Token.h:85
pool::DbToken::TOKEN_CONT_KEY
@ TOKEN_CONT_KEY
Definition: DbToken.h:46
pool::DbToken::m_info
const DbTypeInfo * m_info
Database type information cache.
Definition: DbToken.h:57
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
Token::m_auxString
std::string m_auxString
Auxiliary string.
Definition: Token.h:123
trigbs_pickEvents.cnt
cnt
Definition: trigbs_pickEvents.py:71
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
Token::oid
const OID_t & oid() const
Access object identifier.
Definition: Token.h:79
DeMoScan.first
bool first
Definition: DeMoScan.py:534
ReadCellNoiseFromCoolCompare.s2
s2
Definition: ReadCellNoiseFromCoolCompare.py:379
Guid::fromString
const Guid & fromString(const std::string &s)
Automatic conversion from string representation.
Definition: Guid.cxx:65
makeTransCanvas.text
text
Definition: makeTransCanvas.py:11
str
Definition: BTagTrackIpAccessor.cxx:11
Token::m_refCount
int m_refCount
Reference count.
Definition: Token.h:109
Token::set
const Token & set(Token *pToken) const
Set token information.
Definition: Token.cxx:185
pool::DbToken::m_local
bool m_local
Flag to indicate if toekn is local or foreign.
Definition: DbToken.h:59
fitman.k
k
Definition: fitman.py:528
pool::DbToken::TOKEN_FULL_KEY
@ TOKEN_FULL_KEY
Definition: DbToken.h:45