Project
Loading...
Searching...
No Matches
InputSpec.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 FRAMEWORK_INPUTSPEC_H
12#define FRAMEWORK_INPUTSPEC_H
13
14#include "Framework/Lifetime.h"
18
19#include <string>
20#include <ostream>
21#if !defined(__CLING__) && !defined(__ROOTCLING__)
22#include <variant>
23#endif
24
25namespace o2::framework
26{
27
31struct InputSpec {
33 InputSpec(std::string binding_,
34 header::DataOrigin origin_,
35 header::DataDescription description_,
37 enum Lifetime lifetime_ = Lifetime::Timeframe,
38 std::vector<ConfigParamSpec> const& metadata_ = {});
40 InputSpec(std::string binding_,
41 ConcreteDataMatcher const& dataType,
42 enum Lifetime lifetime_ = Lifetime::Timeframe,
43 std::vector<ConfigParamSpec> const& metadata_ = {});
45 InputSpec(std::string binding_,
46 header::DataOrigin origin_,
47 header::DataDescription description_,
48 enum Lifetime lifetime_ = Lifetime::Timeframe,
49 std::vector<ConfigParamSpec> const& metadata_ = {});
51 InputSpec(std::string binding_,
52 ConcreteDataTypeMatcher const& dataType,
53 enum Lifetime lifetime_ = Lifetime::Timeframe,
54 std::vector<ConfigParamSpec> const& metadata_ = {});
56 InputSpec(std::string binding_,
57 header::DataOrigin const& dataType,
58 enum Lifetime lifetime_ = Lifetime::Timeframe,
59 std::vector<ConfigParamSpec> const& metadata_ = {});
60 InputSpec(std::string binding,
62 enum Lifetime lifetime_ = Lifetime::Timeframe,
63 std::vector<ConfigParamSpec> const& metadata_ = {});
64
66 std::string binding;
67
69#if !defined(__CLING__) && !defined(__ROOTCLING__)
70 std::variant<ConcreteDataMatcher, data_matcher::DataDescriptorMatcher> matcher;
71#endif
72
74
76 std::vector<ConfigParamSpec> metadata;
77
78 friend std::ostream& operator<<(std::ostream& stream, InputSpec const& arg);
79 bool operator==(InputSpec const& that) const;
80};
81
82} // namespace o2
83#endif
GLuint GLuint stream
Definition glcorearb.h:1806
Defining PrimaryVertex explicitly as messageable.
Definition TFIDInfo.h:20
Lifetime
Possible Lifetime of objects being exchanged by the DPL.
Definition Lifetime.h:18
friend std::ostream & operator<<(std::ostream &stream, InputSpec const &arg)
enum Lifetime lifetime
Definition InputSpec.h:73
std::string binding
A mnemonic name for the input spec.
Definition InputSpec.h:66
bool operator==(InputSpec const &that) const
Definition InputSpec.cxx:92
std::vector< ConfigParamSpec > metadata
A set of configurables which can be used to customise the InputSpec.
Definition InputSpec.h:76
std::variant< ConcreteDataMatcher, data_matcher::DataDescriptorMatcher > matcher
The actual matcher for the input spec.
Definition InputSpec.h:70
uint32_t SubSpecificationType
Definition DataHeader.h:620