-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathSubTimeFrameFile.cxx
More file actions
60 lines (45 loc) · 2.51 KB
/
SubTimeFrameFile.cxx
File metadata and controls
60 lines (45 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Copyright 2019-2022 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
/// \author Gvozden Nešković, Frankfurt Institute for Advanced Studies and Goethe University Frankfurt
#include "SubTimeFrameFile.h"
namespace o2::DataDistribution
{
using namespace o2::header;
////////////////////////////////////////////////////////////////////////////////
/// SubTimeFrameFileMeta
////////////////////////////////////////////////////////////////////////////////
const o2::header::DataDescription SubTimeFrameFileMeta::sDataDescFileSubTimeFrame{ "FILE_STF_META" };
std::ostream& operator<<(std::ostream& pStream, const SubTimeFrameFileMeta& pMeta)
{
static_assert(std::is_standard_layout<SubTimeFrameFileMeta>::value,
"SubTimeFrameFileMeta must be a std layout type.");
// write DataHeader
const o2::header::DataHeader lDataHeader = SubTimeFrameFileMeta::getDataHeader();
pStream.write(reinterpret_cast<const char*>(&lDataHeader), sizeof(o2::header::DataHeader));
// write the meta
return pStream.write(reinterpret_cast<const char*>(&pMeta), sizeof(SubTimeFrameFileMeta));
}
////////////////////////////////////////////////////////////////////////////////
/// SubTimeFrameFileDataIndex
////////////////////////////////////////////////////////////////////////////////
const o2::header::DataDescription SubTimeFrameFileDataIndex::sDataDescFileStfDataIndex{ "FILE_STF_INDEX" };
std::ostream& operator<<(std::ostream& pStream, const SubTimeFrameFileDataIndex& pIndex)
{
static_assert(std::is_standard_layout<SubTimeFrameFileDataIndex::DataIndexElem>::value,
"SubTimeFrameFileDataIndex::DataIndexElem must be a std layout type.");
// write DataHeader
const o2::header::DataHeader lDataHeader = pIndex.getDataHeader();
pStream.write(reinterpret_cast<const char*>(&lDataHeader), sizeof(o2::header::DataHeader));
// write the index
return pStream.write(reinterpret_cast<const char*>(pIndex.mDataIndex.data()),
pIndex.mDataIndex.size() * sizeof(SubTimeFrameFileDataIndex::DataIndexElem));
}
} /* o2::DataDistribution */