Skip to content

Commit f8f2f32

Browse files
authored
Merge 9f7bb5c into sapling-pr-archive-ktf
2 parents 0d2ca8e + 9f7bb5c commit f8f2f32

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// Copyright 2019-2025 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_WORKFLOWDEFINITIONCONTEXT_H_
12+
#define O2_FRAMEWORK_WORKFLOWDEFINITIONCONTEXT_H_
13+
14+
#include "Framework/ConfigParamSpec.h"
15+
#include "Framework/CompletionPolicy.h"
16+
#include "Framework/DispatchPolicy.h"
17+
#include "Framework/ResourcePolicy.h"
18+
#include "Framework/CallbacksPolicy.h"
19+
#include "Framework/SendingPolicy.h"
20+
#include "Framework/WorkflowSpec.h"
21+
#include "Framework/ChannelConfigurationPolicy.h"
22+
#include <vector>
23+
24+
namespace o2::framework
25+
{
26+
27+
struct WorkflowDefinitionContext {
28+
std::vector<ConfigParamSpec> workflowOptions;
29+
std::vector<CompletionPolicy> completionPolicies;
30+
std::vector<DispatchPolicy> dispatchPolicies;
31+
std::vector<ResourcePolicy> resourcePolicies;
32+
std::vector<CallbacksPolicy> callbacksPolicies;
33+
std::vector<SendingPolicy> sendingPolicies;
34+
std::vector<ConfigParamSpec> extraOptions;
35+
std::vector<ChannelConfigurationPolicy> channelPolicies;
36+
std::unique_ptr<ConfigContext> configContext;
37+
38+
// For the moment, let's put them here. We should
39+
// probably move them to a different place, since these are not really part
40+
// of the workflow definition but will be there also at runtine.
41+
std::unique_ptr<ServiceRegistry> configRegistry{nullptr};
42+
std::unique_ptr<ConfigParamRegistry> workflowOptionsRegistry{nullptr};
43+
44+
o2::framework::WorkflowSpec specs;
45+
};
46+
47+
struct WorkflowDefinition {
48+
std::function<o2::framework::WorkflowDefinitionContext(int argc, char** argv)> defineWorkflow;
49+
};
50+
51+
struct WorkflowPlugin {
52+
virtual o2::framework::WorkflowDefinition* create() = 0;
53+
};
54+
55+
} // namespace o2::framework
56+
#endif // O2_FRAMEWORK_WORKFLOWDEFINITIONCONTEXT_H_

0 commit comments

Comments
 (0)