Project
Loading...
Searching...
No Matches
DataProcessingHelpers.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#ifndef O2_FRAMEWORK_DATAPROCESSINGHELPERS_H_
12#define O2_FRAMEWORK_DATAPROCESSINGHELPERS_H_
13
14#include <cstddef>
17#include <fairmq/FwdDecls.h>
18#include <vector>
19
20namespace o2::framework
21{
22struct ServiceRegistryRef;
23struct ForwardChannelInfo;
24struct ForwardChannelState;
25struct OutputChannelInfo;
26struct OutputChannelSpec;
27struct OutputChannelState;
28struct ProcessingPolicies;
29struct DeviceSpec;
30struct FairMQDeviceProxy;
31struct MessageSet;
32struct ChannelIndex;
33enum struct StreamingState;
34enum struct TransitionHandlingState;
35
42 static void sendEndOfStream(ServiceRegistryRef const& ref, OutputChannelSpec const& channel);
44 static bool sendOldestPossibleTimeframe(ServiceRegistryRef const& ref, ForwardChannelInfo const& info, ForwardChannelState& state, size_t timeslice);
46 static bool sendOldestPossibleTimeframe(ServiceRegistryRef const& ref, OutputChannelInfo const& info, OutputChannelState& state, size_t timeslice);
48 static void broadcastOldestPossibleTimeslice(ServiceRegistryRef const& ref, size_t timeslice);
50 static void switchState(ServiceRegistryRef const& ref, StreamingState newState);
52 static bool hasOnlyGenerated(DeviceSpec const& spec);
56 static std::vector<fair::mq::Parts> routeForwardedMessages(FairMQDeviceProxy& proxy, TimesliceSlot slot, std::vector<MessageSet>& currentSetOfInputs,
57 TimesliceIndex::OldestOutputInfo oldestTimeslice, bool copy, bool consume);
58};
59} // namespace o2::framework
60#endif // O2_FRAMEWORK_DATAPROCESSINGHELPERS_H_
benchmark::State & state
Defining PrimaryVertex explicitly as messageable.
Generic helpers for DataProcessing releated functions.
static bool hasOnlyGenerated(DeviceSpec const &spec)
check if spec is a source devide
static TransitionHandlingState updateStateTransition(ServiceRegistryRef const &ref, ProcessingPolicies const &policies)
starts the EoS timers and returns the new TransitionHandlingState in case as new state is requested
static void switchState(ServiceRegistryRef const &ref, StreamingState newState)
change the device StreamingState to newState
static void sendEndOfStream(ServiceRegistryRef const &ref, OutputChannelSpec const &channel)
static std::vector< fair::mq::Parts > routeForwardedMessages(FairMQDeviceProxy &proxy, TimesliceSlot slot, std::vector< MessageSet > &currentSetOfInputs, TimesliceIndex::OldestOutputInfo oldestTimeslice, bool copy, bool consume)
Helper to route messages for forwarding.
static bool sendOldestPossibleTimeframe(ServiceRegistryRef const &ref, ForwardChannelInfo const &info, ForwardChannelState &state, size_t timeslice)
static void broadcastOldestPossibleTimeslice(ServiceRegistryRef const &ref, size_t timeslice)
Broadcast the oldest possible timeslice to all channels in output.
Forward channel information.
Definition ChannelInfo.h:88
Output channel information.
Definition ChannelInfo.h:73