Hedgehog  0.0.0
A library to generate hybrid pipeline workflow systems
hh::AbstractPrinter Class Referenceabstract

Printer interface. More...

#include "abstract_printer.h"

Inheritance diagram for hh::AbstractPrinter:
Inheritance graph
Collaboration diagram for hh::AbstractPrinter:
Collaboration graph

Public Member Functions

 AbstractPrinter ()=default
 Default constructor.
 
virtual ~AbstractPrinter ()=default
 Default destructor.
 
virtual void printGraphHeader (core::CoreNode const *node)=0
 Print graph header. More...
 
virtual void printGraphFooter (core::CoreNode const *node)=0
 Print graph footer. More...
 
virtual void printNodeInformation (core::CoreNode *node)=0
 Print node information. More...
 
virtual void printEdge (core::CoreNode const *from, core::CoreNode const *to, std::string_view const &edgeType, size_t const &queueSize, size_t const &maxQueueSize, bool isMemoryManaged)=0
 Print edge information. More...
 
virtual void printClusterHeader (core::CoreNode const *clusterNode)=0
 Print cluster header. More...
 
virtual void printClusterFooter ()=0
 Print cluster footer.
 
virtual void printClusterEdge (core::CoreNode const *clusterNode)=0
 Print cluster edge. More...
 
virtual void printExecutionPipelineHeader (core::CoreNode *epNode, core::CoreNode *switchNode)=0
 Print execution pipeline header. More...
 
virtual void printExecutionPipelineFooter ()=0
 Print execution pipeline footer.
 
virtual void printEdgeSwitchGraphs (core::CoreNode *to, std::string const &idSwitch, std::string_view const &edgeType, size_t const &queueSize, size_t const &maxQueueSize, bool isMemoryManaged)=0
 Print the edges from the switch representation to a node. More...
 
bool hasNotBeenVisited (core::CoreNode const *node)
 Accessor to check if a node has been visited by the printer. More...
 

Private Attributes

std::set< core::CoreNode const * > uniqueNodes_ = {}
 Set of visited nodes by the printer.
 

Detailed Description

Printer interface.

Visiting the graph's node following Visitor pattern

Definition at line 38 of file abstract_printer.h.

Member Function Documentation

◆ hasNotBeenVisited()

bool hh::AbstractPrinter::hasNotBeenVisited ( core::CoreNode const *  node)
inline

Accessor to check if a node has been visited by the printer.

Parameters
nodeNode to test
Returns
True if has already been visited, else False

Definition at line 110 of file abstract_printer.h.

Here is the caller graph for this function:

◆ printClusterEdge()

virtual void hh::AbstractPrinter::printClusterEdge ( core::CoreNode const *  clusterNode)
pure virtual

Print cluster edge.

Parameters
clusterNodeNode to print

Implemented in hh::DotPrinter.

Here is the caller graph for this function:

◆ printClusterHeader()

virtual void hh::AbstractPrinter::printClusterHeader ( core::CoreNode const *  clusterNode)
pure virtual

Print cluster header.

Parameters
clusterNodeNode to print

Implemented in hh::DotPrinter.

Here is the caller graph for this function:

◆ printEdge()

virtual void hh::AbstractPrinter::printEdge ( core::CoreNode const *  from,
core::CoreNode const *  to,
std::string_view const &  edgeType,
size_t const &  queueSize,
size_t const &  maxQueueSize,
bool  isMemoryManaged 
)
pure virtual

Print edge information.

Parameters
fromFrom node
toTo node
edgeTypeType linked to the edge
queueSizeQueue current size
maxQueueSizeQueue maximum size
isMemoryManagedTrue if the edge hold a memory managed data, else False

Implemented in hh::DotPrinter.

◆ printEdgeSwitchGraphs()

virtual void hh::AbstractPrinter::printEdgeSwitchGraphs ( core::CoreNode to,
std::string const &  idSwitch,
std::string_view const &  edgeType,
size_t const &  queueSize,
size_t const &  maxQueueSize,
bool  isMemoryManaged 
)
pure virtual

Print the edges from the switch representation to a node.

Parameters
toEdge destination node
idSwitchSwitch id
edgeTypeType linked to the edge
queueSizeQueue current size
maxQueueSizeQueue maximum size
isMemoryManagedTrue if the edge hold a memory managed data, else False

Implemented in hh::DotPrinter.

Here is the caller graph for this function:

◆ printExecutionPipelineHeader()

virtual void hh::AbstractPrinter::printExecutionPipelineHeader ( core::CoreNode epNode,
core::CoreNode switchNode 
)
pure virtual

Print execution pipeline header.

Parameters
epNodeExecution pipeline node
switchNodeSwitch node

Implemented in hh::DotPrinter.

Here is the caller graph for this function:

◆ printGraphFooter()

virtual void hh::AbstractPrinter::printGraphFooter ( core::CoreNode const *  node)
pure virtual

Print graph footer.

Parameters
nodeNode to print

Implemented in hh::DotPrinter.

Here is the caller graph for this function:

◆ printGraphHeader()

virtual void hh::AbstractPrinter::printGraphHeader ( core::CoreNode const *  node)
pure virtual

Print graph header.

Parameters
nodeNode to print

Implemented in hh::DotPrinter.

Here is the caller graph for this function:

◆ printNodeInformation()

virtual void hh::AbstractPrinter::printNodeInformation ( core::CoreNode node)
pure virtual

Print node information.

Parameters
nodeNode to print

Implemented in hh::DotPrinter.

Here is the caller graph for this function:

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