Project
Loading...
Searching...
No Matches
UserLogicElinkEncoderMerger.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef O2_MCH_RAW_ENCODER_USER_LOGIC_ENCODER_MERGER_H
13#define O2_MCH_RAW_ENCODER_USER_LOGIC_ENCODER_MERGER_H
14
17#include <fmt/format.h>
18
19namespace o2::mch::raw
20{
21
22template <typename CHARGESUM, int VERSION>
23struct ElinkEncoderMerger<UserLogicFormat, CHARGESUM, VERSION> {
24
25 void operator()(uint16_t gbtId,
27 std::vector<uint64_t>& b64)
28 {
29 for (auto& elink : elinks) {
30 elink.moveToBuffer(b64, gbtId);
31 }
32 while ((b64.size() * 8) % 16) {
33 b64.emplace_back(0xFEEDDEEDFEEDDEED);
34 }
35 }
36};
37} // namespace o2::mch::raw
38#endif
void operator()(uint16_t gbtId, gsl::span< ElinkEncoder< UserLogicFormat, CHARGESUM, VERSION > > elinks, std::vector< uint64_t > &b64)