11#include <framework/core/PathElement.h>
62 void addModule(
const std::shared_ptr<Module>& module);
70 std::list<std::shared_ptr<Module> >
getModules()
const override;
87 void putModules(
const std::list<std::shared_ptr<Module> >& mlist);
94 bool contains(
const std::string& moduleType)
const;
101 std::shared_ptr<PathElement>
clone()
const override;
112 void forEach(
const std::string& loopObjectName,
const std::string& arrayName,
PathPtr path);
115 void doWhile(
PathPtr path,
const std::string& condition,
unsigned int maxIterations);
122 std::string consistency_check,
bool event_mixing,
bool mergeSameFile);
Base for classes that can be elements of a Path.
Iterator over a Path (returning Module pointers).
Implements a path consisting of Module and/or Path objects.
void addIndependentMergePath(const PathPtr &independent_path, std::string ds_ID, const boost::python::list &merge_back, std::string consistency_check, bool event_mixing, bool mergeSameFile)
See 'pydoc3 basf2.Path'.
void forEach(const std::string &loopObjectName, const std::string &arrayName, PathPtr path)
See 'pydoc3 basf2.Path'.
std::list< std::shared_ptr< PathElement > > m_elements
The list of path elements (Modules and sub-Paths)
void doWhile(PathPtr path, const std::string &condition, unsigned int maxIterations)
See 'pydoc3 basf2.Path'.
std::list< std::shared_ptr< Module > > buildModulePathList(bool unique=true) const
Builds a list of all modules which could be executed during the data processing.
static void exposePythonAPI()
Exposes methods of the Path class to Python.
void putModules(const std::list< std::shared_ptr< Module > > &mlist)
Replaces all Modules and sub-Paths with the specified Module list.
void addPath(const PathPtr &path)
See 'pydoc3 basf2.Path'.
void addModule(const std::shared_ptr< Module > &module)
Adds a module to the path.
bool isEmpty() const
Returns true if this Path doesn't contain any elements.
std::shared_ptr< PathElement > clone() const override
Create an independent copy of this path, recreating all contained modules with the same parameters.
void addIndependentPath(const PathPtr &independent_path, std::string ds_ID, const boost::python::list &merge_back)
See 'pydoc3 basf2.Path'.
bool contains(const std::string &moduleType) const
Does this Path contain a module of the given type?
std::list< std::shared_ptr< Module > > getModules() const override
Returns a list of the modules in this path.
std::string getPathString() const override
return a string of the form [module a -> module b -> [another path]]
std::shared_ptr< Path > PathPtr
Defines a pointer to a path object as a boost shared pointer.
Abstract base class for different kinds of events.