Hedgehog  3.1.0
A library to generate hybrid pipeline workflow systems
Loading...
Searching...
No Matches
hh::core::abstraction::CopyableAbstraction< CopyableNode > Class Template Reference

Core abstraction for copyable nodes. More...

#include "copyable_abstraction.h"

Inheritance diagram for hh::core::abstraction::CopyableAbstraction< CopyableNode >:
Inheritance graph
Collaboration diagram for hh::core::abstraction::CopyableAbstraction< CopyableNode >:
Collaboration graph

Public Member Functions

 CopyableAbstraction (CopyableNode *const copyableNode)
 Constructor using a node abstraction.
 
virtual ~CopyableAbstraction ()=default
 Default destructor.
 

Protected Member Functions

std::shared_ptr< CopyableNode > callCopy ()
 Interface to call user-defined copy method.
 

Private Attributes

CopyableNode *const copyableNode_ = nullptr
 Pointer to copyable node abstraction.
 
std::unique_ptr< std::set< std::shared_ptr< CopyableNode > > > nodeCopies_ = nullptr
 Set of copies of the node.
 

Detailed Description

template<tool::CopyableNode CopyableNode>
class hh::core::abstraction::CopyableAbstraction< CopyableNode >

Core abstraction for copyable nodes.

Template Parameters
CopyableNodeType of node to be copied

Definition at line 36 of file copyable_abstraction.h.

Constructor & Destructor Documentation

◆ CopyableAbstraction()

template<tool::CopyableNode CopyableNode>
hh::core::abstraction::CopyableAbstraction< CopyableNode >::CopyableAbstraction ( CopyableNode *const  copyableNode)
inlineexplicit

Constructor using a node abstraction.

Parameters
copyableNodeNode to copy

Definition at line 44 of file copyable_abstraction.h.

◆ ~CopyableAbstraction()

template<tool::CopyableNode CopyableNode>
virtual hh::core::abstraction::CopyableAbstraction< CopyableNode >::~CopyableAbstraction ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ callCopy()

template<tool::CopyableNode CopyableNode>
std::shared_ptr< CopyableNode > hh::core::abstraction::CopyableAbstraction< CopyableNode >::callCopy ( )
inlineprotected

Interface to call user-defined copy method.

Returns
Copy of the node
Exceptions
std::runtime_errorA copy of the node is not valid

Definition at line 56 of file copyable_abstraction.h.

Here is the caller graph for this function:

Member Data Documentation

◆ copyableNode_

template<tool::CopyableNode CopyableNode>
CopyableNode* const hh::core::abstraction::CopyableAbstraction< CopyableNode >::copyableNode_ = nullptr
private

Pointer to copyable node abstraction.

Definition at line 38 of file copyable_abstraction.h.

◆ nodeCopies_

template<tool::CopyableNode CopyableNode>
std::unique_ptr<std::set<std::shared_ptr<CopyableNode> > > hh::core::abstraction::CopyableAbstraction< CopyableNode >::nodeCopies_ = nullptr
private

Set of copies of the node.

Definition at line 39 of file copyable_abstraction.h.