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

Printer abstraction to get a snapshot of the metrics of the Hedgehog graph. More...

#include "printer.h"

Collaboration diagram for hh::Printer:
Collaboration graph

Public Member Functions

 Printer ()
 Default constructor.
 
virtual ~Printer ()=default
 Default destructor.
 
virtual void printGraphHeader (core::abstraction::GraphNodeAbstraction const *graph)=0
 Print graph header.
 
virtual void printGraphFooter (core::abstraction::GraphNodeAbstraction const *graph)=0
 Print graph footer.
 
virtual void printExecutionPipelineHeader (core::abstraction::ExecutionPipelineNodeAbstraction const *ep, core::abstraction::NodeAbstraction const *switchNode)=0
 Print execution pipeline header.
 
virtual void printExecutionPipelineFooter ()=0
 Print execution pipeline footer.
 
virtual void printNodeInformation (core::abstraction::NodeAbstraction const *node)=0
 Print node information.
 
virtual void printEdge (core::abstraction::NodeAbstraction const *from, core::abstraction::NodeAbstraction const *to, std::string const &edgeType, size_t const &queueSize, size_t const &maxQueueSize)=0
 Print edge information.
 
virtual void printGroup (core::abstraction::NodeAbstraction *representative, std::vector< core::abstraction::NodeAbstraction * > const &group)=0
 Print group of nodes.
 
virtual void printSource (core::abstraction::NodeAbstraction const *source)=0
 Print outer graph source.
 
virtual void printSink (core::abstraction::NodeAbstraction const *sink)=0
 Print outer graph sink.
 
bool registerNode (core::abstraction::NodeAbstraction const *nodeAbstraction)
 Register a visited node.
 

Private Attributes

std::unique_ptr< std::set< core::abstraction::NodeAbstraction const * > > uniqueNodes_ = nullptr
 Uniques Nodes registered (already printed)
 

Detailed Description

Printer abstraction to get a snapshot of the metrics of the Hedgehog graph.

Definition at line 52 of file printer.h.

Constructor & Destructor Documentation

◆ Printer()

hh::Printer::Printer ( )
inline

Default constructor.

Definition at line 59 of file printer.h.

◆ ~Printer()

virtual hh::Printer::~Printer ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ printEdge()

virtual void hh::Printer::printEdge ( core::abstraction::NodeAbstraction const *  from,
core::abstraction::NodeAbstraction const *  to,
std::string const &  edgeType,
size_t const &  queueSize,
size_t const &  maxQueueSize 
)
pure virtual

Print edge information.

Parameters
fromFrom node
toTo node
edgeTypeType linked to the edge
queueSizeQueue current numverElementsReceived
maxQueueSizeQueue maximum numverElementsReceived
Here is the caller graph for this function:

◆ printExecutionPipelineFooter()

virtual void hh::Printer::printExecutionPipelineFooter ( )
pure virtual

Print execution pipeline footer.

Here is the caller graph for this function:

◆ printExecutionPipelineHeader()

virtual void hh::Printer::printExecutionPipelineHeader ( core::abstraction::ExecutionPipelineNodeAbstraction const *  ep,
core::abstraction::NodeAbstraction const *  switchNode 
)
pure virtual

Print execution pipeline header.

Parameters
epExecution pipeline to print
switchNodeExecution pipeline switch
Here is the caller graph for this function:

◆ printGraphFooter()

virtual void hh::Printer::printGraphFooter ( core::abstraction::GraphNodeAbstraction const *  graph)
pure virtual

Print graph footer.

Parameters
graphGraph to print
Here is the caller graph for this function:

◆ printGraphHeader()

virtual void hh::Printer::printGraphHeader ( core::abstraction::GraphNodeAbstraction const *  graph)
pure virtual

Print graph header.

Parameters
graphGraph to print
Here is the caller graph for this function:

◆ printGroup()

virtual void hh::Printer::printGroup ( core::abstraction::NodeAbstraction representative,
std::vector< core::abstraction::NodeAbstraction * > const &  group 
)
pure virtual

Print group of nodes.

Parameters
representativeGroup's representative
groupGroup of nodes
Here is the caller graph for this function:

◆ printNodeInformation()

virtual void hh::Printer::printNodeInformation ( core::abstraction::NodeAbstraction const *  node)
pure virtual

Print node information.

Parameters
nodeNode to print
Here is the caller graph for this function:

◆ printSink()

virtual void hh::Printer::printSink ( core::abstraction::NodeAbstraction const *  sink)
pure virtual

Print outer graph sink.

Parameters
sinkGraph sink
Here is the caller graph for this function:

◆ printSource()

virtual void hh::Printer::printSource ( core::abstraction::NodeAbstraction const *  source)
pure virtual

Print outer graph source.

Parameters
sourceGraph source
Here is the caller graph for this function:

◆ registerNode()

bool hh::Printer::registerNode ( core::abstraction::NodeAbstraction const *  nodeAbstraction)
inline

Register a visited node.

Parameters
nodeAbstractionNode to register
Returns
True if registered, false if already registered

Definition at line 113 of file printer.h.

Here is the caller graph for this function:

Member Data Documentation

◆ uniqueNodes_

std::unique_ptr<std::set<core::abstraction::NodeAbstraction const * > > hh::Printer::uniqueNodes_ = nullptr
private

Uniques Nodes registered (already printed)

Definition at line 55 of file printer.h.