Doxygen
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 "dotnode.h"
22#include "dotgraph.h"
23#include "memberdef.h"
24
25/** Representation of an call graph */
26class DotCallGraph : public DotGraph
27{
28 public:
29 DotCallGraph(const MemberDef *md,bool inverse);
30 ~DotCallGraph() override;
32
33 bool isTrivial() const;
34 bool isTooBig() const;
35 int numNodes() const;
37 const QCString &path,const QCString &fileName,
38 const QCString &relPath,bool writeImageMap=TRUE,
39 int graphId=-1);
40 static bool isTrivial(const MemberDef *md,bool inverse);
41
42 protected:
43 QCString getBaseName() const override;
44 QCString getMapLabel() const override;
45 void computeTheGraph() override;
46
47 private:
48 void buildGraph(DotNode *n,const MemberDef *md,int distance);
49 void determineVisibleNodes(DotNodeDeque &queue, int &maxNodes);
56};
57
58using DotCallGraphPtr = std::shared_ptr<DotCallGraph>;
59
60#endif
The common base class of all entity definitions found in the sources.
Definition definition.h:76
DotCallGraph(const MemberDef *md, bool inverse)
void computeTheGraph() override
void buildGraph(DotNode *n, const MemberDef *md, int distance)
int numNodes() const
QCString getBaseName() const override
bool isTooBig() const
DotNode * m_startNode
const Definition * m_scope
~DotCallGraph() override
DotNodeMap m_usedNodes
QCString getMapLabel() const override
QCString m_diskName
QCString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const QCString &path, const QCString &fileName, const QCString &relPath, bool writeImageMap=TRUE, int graphId=-1)
bool isTrivial() const
void determineTruncatedNodes(DotNodeDeque &queue)
void determineVisibleNodes(DotNodeDeque &queue, int &maxNodes)
DotGraph()
Definition dotgraph.h:38
friend class DotNode
Definition dotgraph.h:36
A model of a class/file/namespace member symbol.
Definition memberdef.h:48
This is an alternative implementation of QCString.
Definition qcstring.h:101
Text streaming class that buffers data.
Definition textstream.h:36
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
Definition construct.h:37
std::shared_ptr< DotCallGraph > DotCallGraphPtr
EmbeddedOutputFormat
Definition dotgraph.h:30
GraphOutputFormat
Definition dotgraph.h:29
#define TRUE
Definition qcstring.h:37