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 "dotgraph.h"
22#include "dotnode.h"
23
24class Definition;
25class MemberDef;
26
27/** Representation of an call graph */
28class DotCallGraph final : public DotGraph
29{
30 public:
31 DotCallGraph(const MemberDef *md,bool inverse);
32 ~DotCallGraph() override;
34
35 bool isTrivial() const;
36 bool isTooBig() const;
37 int numNodes() const;
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);
58};
59
60using DotCallGraphPtr = std::shared_ptr<DotCallGraph>;
61
62#endif
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:88
The common base class of all entity definitions found in the sources.
Definition definition.h:77
DotCallGraph(const MemberDef *md, bool inverse)
void computeTheGraph() override
void buildGraph(DotNode *n, const MemberDef *md, int distance)
int numNodes() const
bool isTooBig() const
DotNode * m_startNode
const Definition * m_scope
DString getMapLabel() const override
DString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool writeImageMap=true, int graphId=-1)
DotNodeMap m_usedNodes
DString getBaseName() const override
DString m_diskName
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:45
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