ATLAS Offline Software
Loading...
Searching...
No Matches
AlgorithmWrapper.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7
8
9#ifndef EVENT_LOOP__ALGORITHM_WRAPPER_H
10#define EVENT_LOOP__ALGORITHM_WRAPPER_H
11
12#include <EventLoop/Global.h>
13
15
16namespace EL
17{
19
21 {
22 public:
23
26
28 void testInvariant () const;
29
32
34 AlgorithmWrapper (std::unique_ptr<Algorithm>&& val_algorithm);
35
36
37
40
41 virtual std::string_view getName () const override;
42
43 virtual bool hasName (const std::string& name) const override;
44
45 virtual std::unique_ptr<IAlgorithmWrapper> makeClone() const override;
46
47 virtual Algorithm *getLegacyAlg () override;
48
49 virtual StatusCode initialize (const AlgorithmWorkerData& workerData) override;
50
51 virtual StatusCode execute (const EventContext& ctx) override;
52
53 virtual StatusCode postExecute () override;
54
55 virtual StatusCode finalize () override;
56
57 virtual ::StatusCode fileExecute () override;
58
59 virtual ::StatusCode beginInputFile () override;
60
61 virtual ::StatusCode endInputFile () override;
62
63
64
67
68 private:
69
71 std::unique_ptr<Algorithm> m_algorithm;
72
74 bool m_firstFile {true};
75
77 bool m_isInitialized {false};
78 };
79}
80
81#endif
virtual std::unique_ptr< IAlgorithmWrapper > makeClone() const override
make a clone of this algorithm
AlgorithmWrapper()
standard default constructor for serialization
virtual StatusCode finalize() override
call finalize on the algorithm
virtual::StatusCode beginInputFile() override
call beginInputFile on the algorithm
virtual::StatusCode fileExecute() override
call fileExecute on the algorithm
virtual StatusCode postExecute() override
call postExecute on the algorithm
virtual std::string_view getName() const override
void testInvariant() const
test the invariant of this object
virtual::StatusCode endInputFile() override
call endInputFile on the algorithm
virtual bool hasName(const std::string &name) const override
whether this algorithm has the given name
virtual StatusCode execute(const EventContext &ctx) override
call execute on the algorithm
bool m_isInitialized
whether Algorithm::initialize has been called
std::unique_ptr< Algorithm > m_algorithm
the actual algorithm
virtual Algorithm * getLegacyAlg() override
get the legacy algorithm, if we wrap one
bool m_firstFile
whether this is the first file we encounter
a wrapper around a generic algorithm for use within EventLoop
This module defines the arguments passed from the BATCH driver to the BATCH worker.
::StatusCode StatusCode
StatusCode definition for legacy code.
void initialize()
all the external components an algorithm needs before initialization (in EventLoop)