ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Friends | List of all members
DataHeaderElementCnv_p4 Class Reference

This class provides the converter to customize the saving of DataHeaderElement_p4. More...

#include <DataHeaderCnv_p4.h>

Collaboration diagram for DataHeaderElementCnv_p4:

Public Member Functions

 DataHeaderElementCnv_p4 ()
 
virtual ~DataHeaderElementCnv_p4 ()
 
void persToTrans (const DataHeaderElement_p4 *pers, DataHeaderElement *trans, const std::vector< std::string > &map)
 
void transToPers (const DataHeaderElement *trans, DataHeaderElement_p4 *pers, std::vector< std::string > &map)
 

Friends

class DataHeaderCnv_p4
 

Detailed Description

This class provides the converter to customize the saving of DataHeaderElement_p4.

Definition at line 21 of file DataHeaderCnv_p4.h.

Constructor & Destructor Documentation

◆ DataHeaderElementCnv_p4()

DataHeaderElementCnv_p4::DataHeaderElementCnv_p4 ( )

Definition at line 17 of file DataHeaderCnv_p4.cxx.

17 {}

◆ ~DataHeaderElementCnv_p4()

DataHeaderElementCnv_p4::~DataHeaderElementCnv_p4 ( )
virtual

Definition at line 18 of file DataHeaderCnv_p4.cxx.

18 {}

Member Function Documentation

◆ persToTrans()

void DataHeaderElementCnv_p4::persToTrans ( const DataHeaderElement_p4 pers,
DataHeaderElement trans,
const std::vector< std::string > &  map 
)

Definition at line 21 of file DataHeaderCnv_p4.cxx.

23  {
24  std::vector<unsigned int>::const_iterator intIter = pers->m_clids.begin();
25  const std::vector<unsigned int>::const_iterator intLast = pers->m_clids.end();
26  trans->m_pClid = *intIter; ++intIter;
27  trans->m_clids.assign (intIter, intLast);
28  std::vector<std::string>::const_iterator strIter = pers->m_alias.begin();
29  const std::vector<std::string>::const_iterator strLast = pers->m_alias.end();
30  trans->m_key = *strIter; ++strIter;
31  trans->m_alias.clear();
32  for (std::set<std::string>::const_iterator lastAlias = trans->m_alias.begin();
33  strIter != strLast; ++strIter) {
34  lastAlias = trans->m_alias.insert(lastAlias, *strIter);
35  }
36  trans->m_hashes.clear();
37  trans->m_hashes.reserve(pers->m_hashes.size());
38  for (std::vector<uint64_t>::const_iterator iter = pers->m_hashes.begin(),
39  last = pers->m_hashes.end(); iter != last; ++iter) {
40  trans->m_hashes.push_back((unsigned int)(*iter));
41  }
42 // Translate PoolToken
43  std::string tokenStr;
44  if (map.empty()) {
45  tokenStr = pers->m_token;
46  } else {
47  unsigned int tokenSize = 129 + pers->m_token.size();
48  if (pers->m_prefixIdx > 0) {
49  tokenSize += map[pers->m_prefixIdx].size();
50  }
51  if (pers->m_keyPos > 0) {
52  tokenSize += trans->m_key.size();
53  }
54  tokenStr.reserve(tokenSize);
55 // Append DbGuid
56  tokenStr = "[DB=";
57  tokenStr.append(map[pers->m_dbGuidIdx]);
58 // Still optimize
59  tokenStr.append("][CNT=");
60  std::string cntName;
61  if (pers->m_prefixIdx > 0) {
62  tokenStr.append(map[pers->m_prefixIdx]);
63  }
64 // insert key
65  if (pers->m_keyPos > 0) {
66  tokenStr.append(pers->m_token.substr(0, pers->m_keyPos - 1));
67  tokenStr.append(trans->m_key);
68  tokenStr.append(pers->m_token.substr(pers->m_keyPos - 1));
69  } else {
70  tokenStr.append(pers->m_token);
71  }
72 // Append ClassId
73  tokenStr.append("][CLID=");
74  tokenStr.append(map[pers->m_classIdIdx]);
75 // Add Technology and Offsets
76  const unsigned int length = 40;
77  char text[length];
78  snprintf(text, length, "][TECH=%08X][OID=%08X-%08X]", pers->m_technology, pers->m_oid1, pers->m_oid2);
79  tokenStr.append(text);
80  }
81  trans->m_token.fromString(tokenStr);
82 }

◆ transToPers()

void DataHeaderElementCnv_p4::transToPers ( const DataHeaderElement trans,
DataHeaderElement_p4 pers,
std::vector< std::string > &  map 
)

Definition at line 84 of file DataHeaderCnv_p4.cxx.

86  {
87 // Moved to next _p version
88 }

Friends And Related Function Documentation

◆ DataHeaderCnv_p4

friend class DataHeaderCnv_p4
friend

Definition at line 29 of file DataHeaderCnv_p4.h.


The documentation for this class was generated from the following files:
DataHeaderElement_p4::m_classIdIdx
unsigned short m_classIdIdx
Definition: DataHeader_p4.h:45
DataHeaderElement::m_key
std::string m_key
string with StoreGate key.
Definition: DataHeader.h:112
DataHeaderElement_p4::m_token
std::string m_token
Definition: DataHeader_p4.h:42
DataHeaderElement::m_token
Token m_token
Transient address token.
Definition: DataHeader.h:116
DataHeaderElement_p4::m_prefixIdx
unsigned short m_prefixIdx
Definition: DataHeader_p4.h:45
DataHeaderElement::m_pClid
CLID m_pClid
primary ClassID.
Definition: DataHeader.h:108
Token::fromString
Token & fromString(const std::string &from)
Build from the string representation of a token.
Definition: Token.cxx:148
DataHeaderElement::m_alias
std::set< std::string > m_alias
set of StoreGate alias string.
Definition: DataHeader.h:114
DataHeaderElement_p4::m_technology
unsigned int m_technology
Definition: DataHeader_p4.h:44
DataHeaderElement_p4::m_keyPos
unsigned short m_keyPos
Definition: DataHeader_p4.h:46
DataHeaderElement::m_hashes
std::vector< sgkey_t > m_hashes
hash table for ElementLink host container keys.
Definition: DataHeader.h:118
DataHeaderElement_p4::m_hashes
std::vector< uint64_t > m_hashes
Definition: DataHeader_p4.h:47
DataHeaderElement::m_clids
std::vector< CLID > m_clids
vector of unsigned long to store ClassID's for symlinked container.
Definition: DataHeader.h:110
DataHeaderElement_p4::m_alias
std::vector< std::string > m_alias
Definition: DataHeader_p4.h:43
DataHeaderElement_p4::m_dbGuidIdx
unsigned short m_dbGuidIdx
Definition: DataHeader_p4.h:45
DataHeaderElement_p4::m_clids
std::vector< unsigned int > m_clids
Definition: DataHeader_p4.h:41
makeTransCanvas.text
text
Definition: makeTransCanvas.py:11
DataHeaderElement_p4::m_oid1
unsigned int m_oid1
Definition: DataHeader_p4.h:44
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
DataHeaderElement_p4::m_oid2
unsigned int m_oid2
Definition: DataHeader_p4.h:44