-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathTreeVisualisation.h
51 lines (46 loc) · 1.37 KB
/
TreeVisualisation.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#pragma once
#include "HPCParallelPattern.h"
#ifndef PATTERNGRAPH_H
#include "PatternGraph.h"
#endif
/**
* A class that implements (recursive) visualisation of the call tree.
*/
class CallTreeVisualisation
{
public:
/**
* Prints the relation Tree
**/
static void PrintRelationTree(int maxdepth, bool onlyPattern);
/**
* Prints the CallTree
**/
static void PrintCallTree(int maxdepth, CallTree* CalTre, bool onlyPattern);
private:
/**
* Prints the OnlyPatterntree and is called from PrintRelationTree.
**/
static void PrintOnlyPatternTree(int maxdepth);
/**
* Prints a Pattern
**/
static void PrintPattern(PatternCodeRegion* PatternCodeRegion, int depth, int maxdepth);
/**
* Prints a Function
**/
static void PrintFunction(FunctionNode* FnCall, int depth, int maxdepth);
/**
* Prints recursevely the OnlyPatternTree
**/
static void PrintRecursiveOnlyPattern(PatternCodeRegion* CodeRegion,int depth,int maxdepth);
/**
* Prints recursevely the CallTree
**/
static void PrintCallTreeRecursively(int &HelpKey, std::vector<std::tuple<int, CallTreeNode*>> &CallTreeHelp, CallTreeNode* ClTrNode, int depth, int maxdepth, bool onlyPattern);
/**
* Prints a indent in dependent on depth.
**/
static void PrintIndent(int depth);
static int searchDepthInCallTreeHelp(std::vector<std::tuple<int, CallTreeNode*>> &CallTreeHelp, CallTreeNode* EndNode);
};