Doxygen
Loading...
Searching...
No Matches
dotincldepgraph.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 DOTINCLDEPGRAPH_H
17#define DOTINCLDEPGRAPH_H
18
19#include <memory>
20
21#include "qcstring.h"
22#include "filedef.h"
23
24#include "dotnode.h"
25#include "dotgraph.h"
26
27class TextStream;
28
29/** Representation of an include dependency graph */
31{
32 public:
33 DotInclDepGraph(const FileDef *fd,bool inverse);
34 ~DotInclDepGraph() override;
36
37 QCString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef,
38 const QCString &path,const QCString &fileName,const QCString &relPath,
39 bool writeImageMap=TRUE,int graphId=-1);
40 bool isTrivial() const;
41 bool isTooBig() const;
42 int numNodes() const;
43 void writeXML(TextStream &t);
44 void writeDocbook(TextStream &t);
45
46 protected:
47 QCString getBaseName() const override;
48 QCString getMapLabel() const override;
49 void computeTheGraph() override;
50
51 private:
52 QCString diskName() const;
53 void buildGraph(DotNode *n,const FileDef *fd,int distance);
54 void determineVisibleNodes(DotNodeDeque &queue,int &maxNodes);
55 void determineTruncatedNodes(DotNodeDeque &queue);
56
58 DotNodeMap m_usedNodes;
62};
63
64using DotInclDepGraphPtr = std::shared_ptr<DotInclDepGraph>;
65
66#endif
DotGraph()
Definition dotgraph.h:38
friend class DotNode
Definition dotgraph.h:36
QCString diskName() const
void computeTheGraph() override
QCString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const QCString &path, const QCString &fileName, const QCString &relPath, bool writeImageMap=TRUE, int graphId=-1)
void determineVisibleNodes(DotNodeDeque &queue, int &maxNodes)
void writeXML(TextStream &t)
DotNodeMap m_usedNodes
QCString m_inclDepFileName
void determineTruncatedNodes(DotNodeDeque &queue)
void writeDocbook(TextStream &t)
DotInclDepGraph(const FileDef *fd, bool inverse)
bool isTooBig() const
DotNode * m_startNode
QCString getBaseName() const override
void buildGraph(DotNode *n, const FileDef *fd, int distance)
QCString getMapLabel() const override
~DotInclDepGraph() override
QCString m_inclByDepFileName
bool isTrivial() const
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
EmbeddedOutputFormat
Definition dotgraph.h:30
GraphOutputFormat
Definition dotgraph.h:29
std::shared_ptr< DotInclDepGraph > DotInclDepGraphPtr
#define TRUE
Definition qcstring.h:37