@@ -204,7 +204,7 @@ DataRelayer::RelayChoice
204204 DataRelayer::relay (void const * rawHeader,
205205 std::unique_ptr<FairMQMessage>* messages,
206206 size_t nMessages,
207- bool createPairs )
207+ size_t nPayloads )
208208{
209209 std::scoped_lock<LockableBase (std::recursive_mutex)> lock (mMutex );
210210 DataProcessingHeader const * dph = o2::header::get<DataProcessingHeader*>(rawHeader);
@@ -280,7 +280,7 @@ DataRelayer::RelayChoice
280280 auto saveInSlot = [&cachedStateMetrics = mCachedStateMetrics ,
281281 &messages,
282282 &nMessages,
283- &createPairs ,
283+ &nPayloads ,
284284 &cache,
285285 &numInputTypes,
286286 &metrics](TimesliceId timeslice, int input, TimesliceSlot slot) {
@@ -289,13 +289,11 @@ DataRelayer::RelayChoice
289289 cachedStateMetrics[cacheIdx] = CacheEntryStatus::PENDING ;
290290 // TODO: make sure that multiple parts can only be added within the same call of
291291 // DataRelayer::relay
292- // depending on message model, add pairs or sequences with variable number of payloads
293- if (createPairs) {
294- for (size_t pi = 0 ; pi < nMessages / 2 ; ++pi) {
295- target.add ([&messages, &pi](size_t i) -> FairMQMessagePtr& {return messages[pi * 2 + i];}, 2 );
296- }
297- } else {
298- target.add ([&messages](size_t i) -> FairMQMessagePtr& {return messages[i];}, nMessages);
292+ assert (nPayloads > 0 );
293+ for (size_t mi = 0 ; mi < nMessages; ++mi) {
294+ assert (mi + nPayloads < nMessages);
295+ target.add ([&messages, &mi](size_t i) -> FairMQMessagePtr& {return messages[mi + i];}, nPayloads + 1 );
296+ mi += nPayloads;
299297 }
300298 };
301299
@@ -516,8 +514,6 @@ void DataRelayer::getReadyToProcess(std::vector<DataRelayer::RecordAction>& comp
516514 return DataRef{};
517515 };
518516 auto nPartsGetter = [&partial](size_t idx) {
519- // with PartRef holding potentially multiple payload messages,
520- // one would need to accumulate the result, think about caching
521517 return partial[idx].size ();
522518 };
523519 InputSpan span{getter, nPartsGetter, static_cast <size_t >(partial.size ())};
0 commit comments