Belle II Software  release-08-01-10
PathElement.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <memory>
12 #include <list>
13 #include <string>
14 
15 namespace Belle2 {
21  class Module;
22 
27  class PathElement {
28  public:
31 
33  virtual ~PathElement() { }
34 
36  virtual std::string getPathString() const = 0;
37 
39  virtual std::shared_ptr<PathElement> clone() const = 0;
40 
42  virtual std::list<std::shared_ptr<Module> > getModules() const = 0;
43  };
45 } // end namespace Belle2
Base for classes that can be elements of a Path.
Definition: PathElement.h:27
virtual std::shared_ptr< PathElement > clone() const =0
Create an independent copy of this element.
virtual std::string getPathString() const =0
Return a string representation of the Modules in this path.
virtual std::list< std::shared_ptr< Module > > getModules() const =0
Returns a sequential list of Modules in this path element.
PathElement()
Constructor.
Definition: PathElement.h:30
virtual ~PathElement()
Destructor.
Definition: PathElement.h:33
Abstract base class for different kinds of events.