12#ifndef O2_MCH_RAW_PAYLOAD_ENCODER_H
13#define O2_MCH_RAW_PAYLOAD_ENCODER_H
49 const std::vector<SampaCluster>&
data) = 0;
A PayloadEncoder builds MCH raw data (payload part only)
virtual void startHeartbeatFrame(uint32_t orbit, uint16_t bunchCrossing)=0
virtual ~PayloadEncoder()=default
virtual void addHeartbeatHeaders(const std::set< DsElecId > &dsids)=0
virtual void addChannelData(DsElecId dsId, DualSampaChannelId chId, const std::vector< SampaCluster > &data)=0
virtual size_t moveToBuffer(std::vector< std::byte > &buffer)=0
uint6_t DualSampaChannelId
std::function< std::optional< FeeLinkId >(uint16_t solarId)> Solar2FeeLinkMapper
From solarId to (feeId,linkId)
std::unique_ptr< PayloadEncoder > createPayloadEncoder(Solar2FeeLinkMapper solar2feelink, bool userLogic, int version, bool chargeSumMode)