Project
Loading...
Searching...
No Matches
Condition.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_CONDITION_H_
12#define O2_FRAMEWORK_CONDITION_H_
13#include <string>
14
15namespace o2::framework
16{
17
18template <typename T>
19struct Condition {
20 std::string path;
22 using type = T;
23
24 Condition(std::string path)
25 : path(std::move(path))
26 {
27 }
28
29 T* get()
30 {
31 return this->instance;
32 }
33
34 operator T()
35 {
36 return *this->instance;
37 }
38
39 T const* operator->() const
40 {
41 return this->instance;
42 }
43};
44
45template <typename T>
46concept is_condition = requires(T t) {
47 typename T::type;
48 requires std::same_as<typename T::type*, decltype(t.instance)>;
49 requires std::same_as<std::string, decltype(t.path)>;
50};
51
66};
67
68template <typename T>
69concept is_condition_group = std::derived_from<T, ConditionGroup>;
70
71} // namespace o2::framework
72#endif // O2_FRAMEWORK_CONDITION_H_
GLsizei const GLchar *const * path
Definition glcorearb.h:3591
Defining PrimaryVertex explicitly as messageable.
Definition TFIDInfo.h:20
Defining DataPointCompositeObject explicitly as copiable.
Condition(std::string path)
Definition Condition.h:24
T const * operator->() const
Definition Condition.h:39