ATLAS Offline Software
Loading...
Searching...
No Matches
DataHeaderCnv_p5 Class Reference

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

#include <DataHeaderCnv_p5.h>

Collaboration diagram for DataHeaderCnv_p5:

Public Member Functions

 DataHeaderCnv_p5 ()
std::unique_ptr< DataHeadercreateTransient (const DataHeader_p5 &persObj, const DataHeaderForm_p5 &dhForm) const
void persToTrans (const DataHeader_p5 &pers, DataHeader &trans, const DataHeaderForm_p5 &dhForm) const
std::unique_ptr< DataHeader_p5createPersistent (const DataHeader &transObj, DataHeaderForm_p5 &dhForm) const
void transToPers (const DataHeader &trans, DataHeader_p5 &pers, DataHeaderForm_p5 &dhForm) const
void insertDHRef (DataHeader_p5 &pers, DataHeaderForm_p5 &dhForm, const std::string &key, const std::string &strToken) const

Private Attributes

DataHeaderElementCnv_p5 m_elemCnv

Detailed Description

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

Definition at line 41 of file DataHeaderCnv_p5.h.

Constructor & Destructor Documentation

◆ DataHeaderCnv_p5()

DataHeaderCnv_p5::DataHeaderCnv_p5 ( )

Definition at line 215 of file DataHeaderCnv_p5.cxx.

215{}

Member Function Documentation

◆ createPersistent()

std::unique_ptr< DataHeader_p5 > DataHeaderCnv_p5::createPersistent ( const DataHeader & transObj,
DataHeaderForm_p5 & dhForm ) const
inline

Definition at line 77 of file DataHeaderCnv_p5.h.

79{
80 auto pers = std::make_unique<DataHeader_p5>();
81 transToPers(transObj, *pers, dhForm);
82 return(pers);
83}
void transToPers(const DataHeader &trans, DataHeader_p5 &pers, DataHeaderForm_p5 &dhForm) const

◆ createTransient()

std::unique_ptr< DataHeader > DataHeaderCnv_p5::createTransient ( const DataHeader_p5 & persObj,
const DataHeaderForm_p5 & dhForm ) const
inline

Definition at line 68 of file DataHeaderCnv_p5.h.

70{
71 auto trans = std::make_unique<DataHeader>();
72 persToTrans(persObj, *trans, dhForm);
73 return(trans);
74}
void persToTrans(const DataHeader_p5 &pers, DataHeader &trans, const DataHeaderForm_p5 &dhForm) const

◆ insertDHRef()

void DataHeaderCnv_p5::insertDHRef ( DataHeader_p5 & pers,
DataHeaderForm_p5 & dhForm,
const std::string & key,
const std::string & strToken ) const

Definition at line 264 of file DataHeaderCnv_p5.cxx.

268{
269 Token token;
270 token.fromString(strToken);
271 DataHeaderElement tEle(ClassID_traits<DataHeader>::ID(), key, std::move(token));
272 DataHeaderElement_p5 pEle;
273 unsigned int entry = dhForm.size() + 1;
274 m_elemCnv.transToPers(tEle, pEle, dhForm, entry);
275 pers.m_dataHeader.push_back(std::move(pEle));
276}
DataHeaderElementCnv_p5 m_elemCnv
unsigned int size() const
std::vector< DataHeaderElement_p5 > m_dataHeader
Token & fromString(const std::string_view from)
Build from the string representation of a token.
Definition Token.cxx:147

◆ persToTrans()

void DataHeaderCnv_p5::persToTrans ( const DataHeader_p5 & pers,
DataHeader & trans,
const DataHeaderForm_p5 & dhForm ) const

Definition at line 218 of file DataHeaderCnv_p5.cxx.

221{
222 unsigned int entry = 1;
223 const unsigned int provSize = dhForm.params(entry)[0];
224 trans.setDhFormToken (pers.dhFormToken());
225 trans.m_inputDataHeader.resize(provSize);
226 std::vector<DataHeaderElement>::iterator it = trans.m_inputDataHeader.begin();
227 std::vector<DataHeaderElement_p5>::const_iterator pit = pers.m_dataHeader.begin();
228 for (unsigned int i = 0U; i < provSize; ++i, ++it, ++pit) {
229 ++entry;
230 m_elemCnv.persToTrans(*pit, *it, dhForm, entry);
231 }
232 trans.m_dataHeader.resize(pers.m_dataHeader.size() - provSize);
233 it = trans.m_dataHeader.begin();
234 for (std::vector<DataHeaderElement_p5>::const_iterator last = pers.m_dataHeader.end();
235 pit != last; ++it, ++pit) {
236 ++entry;
237 m_elemCnv.persToTrans(*pit, *it, dhForm, entry);
238 }
240}
const std::vector< unsigned int > & params(unsigned int entry) const
const std::string & dhFormToken() const
void setDhFormToken(const std::string &formToken)
void setStatus(statusFlag status)
Set StatusFlag enum for DataHeader.
std::vector< DataHeaderElement > m_inputDataHeader
vector with DataHeaderElement to upstream DataHeader ("Provenance").
Definition DataHeader.h:211
std::vector< DataHeaderElement > m_dataHeader
vector with DataHeaderElement to "DataObject".
Definition DataHeader.h:209

◆ transToPers()

void DataHeaderCnv_p5::transToPers ( const DataHeader & trans,
DataHeader_p5 & pers,
DataHeaderForm_p5 & dhForm ) const

Definition at line 242 of file DataHeaderCnv_p5.cxx.

245{
246 const unsigned int provSize = trans.m_inputDataHeader.size();
247 pers.m_dataHeader.resize(provSize + trans.m_dataHeader.size());
248 dhForm.resize(provSize + trans.m_dataHeader.size() + 2);
249 unsigned int entry = 1;
250 dhForm.insertParam(provSize, entry);
251 std::vector<DataHeaderElement_p5>::iterator pit = pers.m_dataHeader.begin();
252 for (std::vector<DataHeaderElement>::const_iterator it = trans.m_inputDataHeader.begin(),
253 last = trans.m_inputDataHeader.end(); it != last; ++it, ++pit) {
254 ++entry;
255 m_elemCnv.transToPers(*it, *pit, dhForm, entry);
256 }
257 for (std::vector<DataHeaderElement>::const_iterator it = trans.m_dataHeader.begin(),
258 last = trans.m_dataHeader.end(); it != last; ++it, ++pit) {
259 ++entry;
260 m_elemCnv.transToPers(*it, *pit, dhForm, entry);
261 }
262}
void insertParam(unsigned int param, unsigned int entry)
void resize(unsigned int size)

Member Data Documentation

◆ m_elemCnv

DataHeaderElementCnv_p5 DataHeaderCnv_p5::m_elemCnv
private

Definition at line 63 of file DataHeaderCnv_p5.h.


The documentation for this class was generated from the following files: