ATLAS Offline Software
Loading...
Searching...
No Matches
JobConfig.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7
8
9#ifndef EVENT_LOOP__JOB_CONFIG_H
10#define EVENT_LOOP__JOB_CONFIG_H
11
12#include <EventLoop/Global.h>
13
14#include <AnaAlgorithm/Global.h>
15#include <TObject.h>
16#include <memory>
17#include <vector>
18
19class StatusCode;
20
21namespace EL
22{
23 namespace Detail
24 {
25 struct AlgorithmData;
26 }
27
28
43
44 class JobConfig final : public TObject
45 {
46 //
47 // public interface
48 //
49
53 public:
54 void testInvariant () const;
55
56
60 public:
61 JobConfig () noexcept;
62
63
70 public:
72
73
77 public:
78 JobConfig (JobConfig&& that) noexcept;
79
80
84 public:
85 virtual ~JobConfig () noexcept;
86
87
94 public:
95 JobConfig& operator = (const JobConfig& that);
96
97
101 public:
102 JobConfig& operator = (JobConfig&& that) noexcept;
103
104
108 public:
109 void swap (JobConfig& that) noexcept;
110
111
119 public:
121
122
127 public:
128 const IAlgorithmWrapper *getAlgorithm (std::string_view name) const noexcept;
129
130
140 public:
141 std::vector<Detail::AlgorithmData> extractAlgorithms ();
142
143
147 public:
148 std::size_t numberOfAlgorithms () const noexcept;
149
150
152 public:
154
155
156
157 //
158 // private interface
159 //
160
165 private:
167
173 private:
175
176
178 private:
180
181
183 };
184}
185
186#endif
a wrapper around a generic algorithm for use within EventLoop
ClassDef(JobConfig, 1)
JobConfig() noexcept
standard constructor
const IAlgorithmWrapper * getAlgorithm(std::string_view name) const noexcept
get the algorithm with the given name, or nullptr if there is no algorithm with that name
void swap(JobConfig &that) noexcept
standard swap
std::size_t m_algorithmCount
the number of algorithms added
Definition JobConfig.h:166
std::vector< Detail::AlgorithmData > extractAlgorithms()
extract the list of algorithms from this object
std::size_t numberOfAlgorithms() const noexcept
get the number of algorithms configured
std::vector< std::size_t > m_algSequenceStartIndices
the list of indices at which new algorithm sequences start
Definition JobConfig.h:179
std::vector< std::unique_ptr< EL::IAlgorithmWrapper > > m_algorithms
the list of algorithms added
Definition JobConfig.h:174
::StatusCode addAlgorithm(std::unique_ptr< IAlgorithmWrapper > &&val_algorithm)
add an algorithm
void testInvariant() const
test the invariant of this object
void startNewAlgSequence()
start a new sub-sequence of algorithms
STL class.
This module defines the arguments passed from the BATCH driver to the BATCH worker.
::StatusCode StatusCode
StatusCode definition for legacy code.
STL namespace.
all the data a worker tracks for an individual algorithm
#define private