11#ifndef O2_FRAMEWORK_DATAPROCESSINGDEVICE_H_
12#define O2_FRAMEWORK_DATAPROCESSINGDEVICE_H_
31#include <fairmq/Device.h>
32#include <fairmq/Parts.h>
41struct InputChannelInfo;
43struct ComputingQuotaEvaluator;
52class DataProcessingDevice;
53struct DataProcessorContext;
107 std::unique_ptr<ConfigParamRegistry> mConfigRegistry;
110 uint64_t mLastSlowMetricSentTimestamp = 0;
111 uint64_t mLastMetricFlushedTimestamp = 0;
112 uint64_t mBeginIterationTimestamp = 0;
113 std::vector<fair::mq::RegionInfo> mPendingRegionInfos;
114 std::mutex mRegionInfoMutex;
116 std::vector<uv_work_t> mHandles;
117 std::vector<TaskStreamInfo> mStreams;
struct uv_async_s uv_async_t
static void doRun(ServiceRegistryRef)
void fillContext(DataProcessorContext &context, DeviceContext &deviceContext)
void error(const char *msg)
static void doPrepare(ServiceRegistryRef)
static bool tryDispatchComputation(ServiceRegistryRef ref, std::vector< DataRelayer::RecordAction > &completed)
static void handleData(ServiceRegistryRef, InputChannelInfo &)
GLuint const GLchar * name
Defining PrimaryVertex explicitly as messageable.
static std::unique_ptr< ConfigParamStore > getConfiguration(ServiceRegistryRef registry, const char *name, std::vector< ConfigParamSpec > const &options)
uv_work_t * task
The libuv task handle.
ServiceRegistry * registry
The registry associated to the task being run.
bool running
Wether or not this task is running.
TaskStreamRef id
The id of this stream.
uint64_t const void const *restrict const msg