ATLAS Offline Software
Loading...
Searching...
No Matches
DetCondCFloatCnv_p1.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
7
8void DetCondCFloatCnv_p1::transToPers(const DetCondCFloat* trans, DetCondCFloat_p1* pers, MsgStream &/*log*/) {
9
10 pers->m_size = trans->size();
11 pers->m_tag = trans->tag();
12
13 DetCondCFloat::BufferMap::const_iterator it = trans->m_bufmap.begin();
14 DetCondCFloat::BufferMap::const_iterator last = trans->m_bufmap.end();
15 pers->m_bufKeyValue.reserve(2*trans->m_bufmap.size());
16 for (; it != last; ++it) {
17 unsigned int key = it->first.get_identifier32().get_compact();
18 pers->m_bufKeyValue.push_back(key);
19 pers->m_bufKeyValue.push_back(it->second);
20 }
21 pers->m_buf = trans->m_buf;
22
23}
24
25void DetCondCFloatCnv_p1::persToTrans(const DetCondCFloat_p1* pers, DetCondCFloat* trans, MsgStream &/*log*/) {
26
27 trans->m_size = pers->m_size;
28 trans->m_tag = pers->m_tag;
29
30 // Copy stored vec into map
31 typedef DetCondCFloat::BufferMap::value_type value_type;
32 DetCondCFloat::BufferMap::iterator it = trans->m_bufmap.begin();
33 for (unsigned int i = 0; i < pers->m_bufKeyValue.size(); i += 2) {
34 it = trans->m_bufmap.insert(it, value_type(Identifier(pers->m_bufKeyValue[i]), pers->m_bufKeyValue[i + 1]));
35 }
36 trans->m_buf = pers->m_buf;
37
38}
39
virtual void transToPers(const DetCondCFloat *transObj, DetCondCFloat_p1 *persObj, MsgStream &log)
virtual void persToTrans(const DetCondCFloat_p1 *persObj, DetCondCFloat *transObj, MsgStream &log)
std::vector< float > m_buf
std::vector< unsigned int > m_bufKeyValue
DetCondCFloat is a class to hold sets of Identifiers and arrays of floats for detector element specif...
const std::string & tag() const
std::vector< float > m_buf
std::string m_tag
BufferMap m_bufmap
int size() const