ATLAS Offline Software
Loading...
Searching...
No Matches
DataHeader_p5.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7#include "CxxUtils/MD5.h"
8
9#include <uuid/uuid.h>
10#include<type_traits>
11#include <sstream>
12
13
14static_assert(std::is_nothrow_move_constructible<DataHeaderElement_p5>::value);
15static_assert(std::is_nothrow_move_constructible<DataHeaderForm_p5>::value);
16static_assert(std::is_nothrow_move_constructible<DataHeader_p5>::value);
17
19
20const std::string& DataHeaderElement_p5::token() const {
21 return(m_token);
22}
23
24long long int DataHeaderElement_p5::oid2() const {
25 return(m_oid2);
26}
27
28
30
31const std::vector<std::string>& DataHeaderForm_p5::map() const {
32 return(m_map);
33}
34
35void DataHeaderForm_p5::insertMap(const std::string& element) {
36 m_map.push_back(element);
37}
38
39const std::vector<unsigned int>& DataHeaderForm_p5::params(unsigned int entry) const {
40 return(m_uints[entry - 1]);
41}
42
43void DataHeaderForm_p5::insertParam(unsigned int param, unsigned int entry) {
44 m_uints[entry - 1].push_back(param);
45}
46
47unsigned int DataHeaderForm_p5::size() const {
48 return(m_uints.size());
49}
50
51void DataHeaderForm_p5::resize(unsigned int size) {
52 m_uints.resize(size);
53}
54
55
57
58const std::vector<DataHeaderElement_p5>& DataHeader_p5::elements() const {
59 return(m_dataHeader);
60}
61
62const std::string& DataHeader_p5::dhFormToken() const {
63 return(m_dhFormToken);
64}
65
66void DataHeader_p5::setDhFormToken(const std::string& formToken,
67 const DataHeaderForm_p5& dhForm)
68{
69 m_dhFormToken = formToken;
70 std::ostringstream stream;
71 for (const std::string& s : dhForm.map()) {
72 stream << s << "\n";
73 }
74 for (unsigned int entry = 1; entry <= dhForm.size(); ++entry) {
75 for (unsigned int x : dhForm.params(entry)) {
76 stream << x << ",";
77 }
78 stream << "\n";
79 }
80 MD5 checkSum((unsigned char*)stream.str().c_str(), stream.str().size());
81 uuid_t checkSumUuid;
82 checkSum.raw_digest((unsigned char*)(&checkSumUuid));
83 char text[37];
84 uuid_unparse_upper(checkSumUuid, text);
85 m_dhFormMdx = text;
86}
87const std::string& DataHeader_p5::dhFormMdx() const {
88 return(m_dhFormMdx);
89}
This file contains the class definition for the DataHeader_p5, DataHeaderForm_p5 and DataHeaderElemen...
solar's public-domain MD5, wrapped for C++.
#define x
long long int m_oid2
const std::string & token() const
long long int oid2() const
This class provides storage for the constant fields of the persistent DataHeader class.
void insertParam(unsigned int param, unsigned int entry)
const std::vector< std::string > & map() const
void insertMap(const std::string &element)
const std::vector< unsigned int > & params(unsigned int entry) const
unsigned int size() const
std::vector< std::vector< unsigned int > > m_uints
std::vector< std::string > m_map
void resize(unsigned int size)
const std::vector< DataHeaderElement_p5 > & elements() const
const std::string & dhFormMdx() const
std::vector< DataHeaderElement_p5 > m_dataHeader
std::string m_dhFormToken
std::string m_dhFormMdx
void setDhFormToken(const std::string &formToken, const DataHeaderForm_p5 &dhForm)
const std::string & dhFormToken() const
Definition MD5.h:20
void raw_digest(unsigned char *s) const
Definition MD5.cxx:82