Doxygen
Toggle main menu visibility
Loading...
Searching...
No Matches
dotcallgraph.h
Go to the documentation of this file.
1
/******************************************************************************
2
*
3
* Copyright (C) 1997-2019 by Dimitri van Heesch.
4
*
5
* Permission to use, copy, modify, and distribute this software and its
6
* documentation under the terms of the GNU General Public License is hereby
7
* granted. No representations are made about the suitability of this software
8
* for any purpose. It is provided "as is" without express or implied warranty.
9
* See the GNU General Public License for more details.
10
*
11
* Documents produced by Doxygen are derivative works derived from the
12
* input used in their production; they are not affected by this license.
13
*
14
*/
15
16
#ifndef DOTCALLGRAPH_H
17
#define DOTCALLGRAPH_H
18
19
#include <memory>
20
21
#include "
dotgraph.h
"
22
#include "
dotnode.h
"
23
24
class
Definition
;
25
class
MemberDef
;
26
27
/** Representation of an call graph */
28
class
DotCallGraph
final :
public
DotGraph
29
{
30
public
:
31
DotCallGraph
(
const
MemberDef
*md,
bool
inverse);
32
~DotCallGraph
()
override
;
33
NON_COPYABLE
(
DotCallGraph
)
34
35
bool
isTrivial
()
const
;
36
bool
isTooBig
()
const
;
37
int
numNodes
()
const
;
38
DString
writeGraph
(
TextStream
&t,
GraphOutputFormat
gf,
EmbeddedOutputFormat
ef,
39
const
DString
&path,
const
DString
&fileName,
40
const
DString
&relPath,
bool
writeImageMap=
true
,
41
int
graphId=-1);
42
static
bool
isTrivial
(
const
MemberDef
*md,
bool
inverse);
43
44
protected
:
45
DString
getBaseName
()
const override
;
46
DString
getMapLabel
()
const override
;
47
void
computeTheGraph
()
override
;
48
49
private
:
50
void
buildGraph
(
DotNode
*n,
const
MemberDef
*md,
int
distance);
51
void
determineVisibleNodes
(
DotNodeDeque
&queue,
int
&maxNodes);
52
void
determineTruncatedNodes
(
DotNodeDeque
&queue);
53
DotNode
*
m_startNode
;
54
DotNodeMap
m_usedNodes
;
55
bool
m_inverse
;
56
DString
m_diskName
;
57
const
Definition
*
m_scope
;
58
};
59
60
using
DotCallGraphPtr
= std::shared_ptr<DotCallGraph>;
61
62
#endif
DString
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition
dstring.h:88
Definition
The common base class of all entity definitions found in the sources.
Definition
definition.h:77
DotCallGraph::DotCallGraph
DotCallGraph(const MemberDef *md, bool inverse)
Definition
dotcallgraph.cpp:120
DotCallGraph::computeTheGraph
void computeTheGraph() override
Definition
dotcallgraph.cpp:165
DotCallGraph::buildGraph
void buildGraph(DotNode *n, const MemberDef *md, int distance)
Definition
dotcallgraph.cpp:33
DotCallGraph::numNodes
int numNodes() const
Definition
dotcallgraph.cpp:207
DotCallGraph::isTooBig
bool isTooBig() const
Definition
dotcallgraph.cpp:202
DotCallGraph::m_startNode
DotNode * m_startNode
Definition
dotcallgraph.h:53
DotCallGraph::m_scope
const Definition * m_scope
Definition
dotcallgraph.h:57
DotCallGraph::m_inverse
bool m_inverse
Definition
dotcallgraph.h:55
DotCallGraph::getMapLabel
DString getMapLabel() const override
Definition
dotcallgraph.cpp:178
DotCallGraph::writeGraph
DString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool writeImageMap=true, int graphId=-1)
Definition
dotcallgraph.cpp:183
DotCallGraph::m_usedNodes
DotNodeMap m_usedNodes
Definition
dotcallgraph.h:54
DotCallGraph::getBaseName
DString getBaseName() const override
Definition
dotcallgraph.cpp:160
DotCallGraph::m_diskName
DString m_diskName
Definition
dotcallgraph.h:56
DotCallGraph::isTrivial
bool isTrivial() const
Definition
dotcallgraph.cpp:197
DotCallGraph::determineTruncatedNodes
void determineTruncatedNodes(DotNodeDeque &queue)
Definition
dotcallgraph.cpp:99
DotCallGraph::determineVisibleNodes
void determineVisibleNodes(DotNodeDeque &queue, int &maxNodes)
Definition
dotcallgraph.cpp:80
DotGraph::DotGraph
DotGraph()
Definition
dotgraph.h:38
DotGraph::DotNode
friend class DotNode
Definition
dotgraph.h:36
DotNodeDeque
Definition
dotnode.h:153
DotNodeMap
Definition
dotnode.h:149
MemberDef
A model of a class/file/namespace member symbol.
Definition
memberdef.h:45
TextStream
Text streaming class that buffers data.
Definition
textstream.h:36
NON_COPYABLE
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
Definition
construct.h:37
DotCallGraphPtr
std::shared_ptr< DotCallGraph > DotCallGraphPtr
Definition
dotcallgraph.h:60
dotgraph.h
EmbeddedOutputFormat
EmbeddedOutputFormat
Definition
dotgraph.h:30
GraphOutputFormat
GraphOutputFormat
Definition
dotgraph.h:29
dotnode.h
src
dotcallgraph.h
Generated by
1.19.0