ATLAS Offline Software
Loading...
Searching...
No Matches
EL::Detail::DriverManager Class Referencefinal

a Manager that passes callbacks through to the Driver More...

#include <DriverManager.h>

Inheritance diagram for EL::Detail::DriverManager:
Collaboration diagram for EL::Detail::DriverManager:

Public Member Functions

virtual std::pair< Detail::ManagerOrder, std::string > getManagerOrder () const noexcept override
 get the order/name of this manager
virtual::StatusCode doManagerStep (Detail::ManagerData &data) const override
 do whatever needs to be done for the given submission step

Detailed Description

a Manager that passes callbacks through to the Driver

Originally I was thinking of having the Driver class derive from the Manager class, but that gave me dictionary errors I was unable to resolve. So now I have this class that passes callbacks straight through. There are three ways to go from here in the future:

  • Move all the functionality from the driver classes into separate manager classes, and reduce the driver implementations to installing the managers as required.
  • Resolve the dictionary issues, and derive the drivers from the manager class.
  • Decide that this is actually a reasonably nice solution, and stick with it.

Definition at line 39 of file DriverManager.h.

Member Function Documentation

◆ doManagerStep()

StatusCode EL::Detail::DriverManager::doManagerStep ( Detail::ManagerData & data) const
overridevirtual

do whatever needs to be done for the given submission step

Guarantee
basic
Failures
job configuration errors
driver errors

Implements EL::Detail::Manager.

Definition at line 37 of file DriverManager.cxx.

39 {
40 return data.driver->doManagerStep (data);
41 }
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11

◆ getManagerOrder()

std::pair< Detail::ManagerOrder, std::string > EL::Detail::DriverManager::getManagerOrder ( ) const
overridevirtualnoexcept

get the order/name of this manager

This is both used to identify the manager we are looking at, and to make sure they get executed in the right order. It is a mistake to load two managers that report the same order.

This is a pair of an enum that defines the absolute order of managers, and a string that identifies the stream that this manager belongs to. If this manager is not specific to a stream this should be the empty stream.

Guarantee
no-fail

Implements EL::Detail::Manager.

Definition at line 29 of file DriverManager.cxx.

31 {
32 return std::make_pair (ManagerOrder::DRIVER, "");
33 }
@ DRIVER
the driver itself

The documentation for this class was generated from the following files: