Hedgehog  3.1.0
A library to generate hybrid pipeline workflow systems
Loading...
Searching...
No Matches
hh::core::abstraction::ClonableAbstraction Class Referenceabstract

Core abstraction for clonable nodes, nodes duplicated by execution pipeline. More...

#include "clonable_abstraction.h"

Inheritance diagram for hh::core::abstraction::ClonableAbstraction:
Inheritance graph
Collaboration diagram for hh::core::abstraction::ClonableAbstraction:
Collaboration graph

Public Member Functions

 ClonableAbstraction ()
 Default constructor.
 
virtual ~ClonableAbstraction ()=default
 Default destructor.
 
void storeClone (std::shared_ptr< abstraction::NodeAbstraction > const &clone)
 Store a core clone.
 
virtual std::shared_ptr< abstraction::NodeAbstractionclone (std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &correspondenceMap)=0
 Clone virtual function.
 
virtual void duplicateEdge (std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping)=0
 Duplicate the output edges of a node.
 

Private Attributes

std::unique_ptr< std::vector< std::shared_ptr< abstraction::NodeAbstraction > > > cloneStorage_ {}
 Storage to cloned cores.
 

Detailed Description

Core abstraction for clonable nodes, nodes duplicated by execution pipeline.

Definition at line 32 of file clonable_abstraction.h.

Constructor & Destructor Documentation

◆ ClonableAbstraction()

hh::core::abstraction::ClonableAbstraction::ClonableAbstraction ( )
inline

Default constructor.

Definition at line 39 of file clonable_abstraction.h.

◆ ~ClonableAbstraction()

virtual hh::core::abstraction::ClonableAbstraction::~ClonableAbstraction ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ clone()

virtual std::shared_ptr< abstraction::NodeAbstraction > hh::core::abstraction::ClonableAbstraction::clone ( std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &  correspondenceMap)
pure virtual

Clone virtual function.

Parameters
correspondenceMapMap of cores and its clone
Returns
Clone of the node
Here is the caller graph for this function:

◆ duplicateEdge()

virtual void hh::core::abstraction::ClonableAbstraction::duplicateEdge ( std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &  mapping)
pure virtual

Duplicate the output edges of a node.

Parameters
mappingMap of cores and its clone

◆ storeClone()

void hh::core::abstraction::ClonableAbstraction::storeClone ( std::shared_ptr< abstraction::NodeAbstraction > const &  clone)
inline

Store a core clone.

Parameters
cloneCore clone to store

Definition at line 47 of file clonable_abstraction.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ cloneStorage_

std::unique_ptr<std::vector<std::shared_ptr<abstraction::NodeAbstraction> > > hh::core::abstraction::ClonableAbstraction::cloneStorage_ {}
private

Storage to cloned cores.

Definition at line 35 of file clonable_abstraction.h.