Doxygen
Loading...
Searching...
No Matches
dotgroupcollaboration.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 DOTGROUPCOLLABORATION_H
17
#define DOTGROUPCOLLABORATION_H
18
19
#include <memory>
20
21
#include "
dotnode.h
"
22
#include "
dotgraph.h
"
23
#include "
groupdef.h
"
24
25
class
TextStream
;
26
27
/** Representation of a group collaboration graph */
28
class
DotGroupCollaboration
:
public
DotGraph
29
{
30
public :
31
DotGroupCollaboration
(
const
GroupDef* gd);
32
~DotGroupCollaboration
()
override
;
33
NON_COPYABLE
(
DotGroupCollaboration
)
34
35
QCString
writeGraph
(TextStream &t,
GraphOutputFormat
gf,
EmbeddedOutputFormat
ef,
36
const
QCString &path,
const
QCString &fileName,
const
QCString &relPath,
37
bool
writeImageMap=
TRUE
,
int
graphId=-1);
38
bool
isTrivial
()
const
;
39
bool
isTooBig
()
const
;
40
int
numNodes
()
const
;
41
42
protected
:
43
QCString
getBaseName
()
const override
;
44
QCString
getMapLabel
()
const override
;
45
void
computeTheGraph
()
override
;
46
47
private :
48
enum
EdgeType
49
{
50
tmember
= 0,
51
tclass
,
52
tnamespace
,
53
tfile
,
54
tpages
,
55
tdir
,
56
thierarchy
57
};
58
59
struct
Link
60
{
61
Link
(
const
QCString &lab,
const
QCString &u) :
label
(lab),
url
(u) {}
62
QCString
label
;
63
QCString
url
;
64
};
65
66
struct
Edge
67
{
68
Edge
(
DotNode
*start,
DotNode
*
end
,
EdgeType
type)
69
:
pNStart
(start),
pNEnd
(
end
),
eType
(type) {}
70
71
DotNode
*
pNStart
;
72
DotNode
*
pNEnd
;
73
EdgeType
eType
;
74
75
std::vector<Link>
links
;
76
void
write
( TextStream &t )
const
;
77
};
78
79
void
buildGraph
(
const
GroupDef* gd);
80
void
addCollaborationMember
(
const
Definition* def, QCString& url,
EdgeType
eType );
81
void
addMemberList
(
class
MemberList* ml );
82
void
writeGraphHeader
(TextStream &t,
const
QCString &title)
const
;
83
Edge
*
addEdge
(
DotNode
* _pNStart,
DotNode
* _pNEnd,
EdgeType
_eType,
84
const
QCString& _label,
const
QCString& _url );
85
86
DotNode
*
m_rootNode
;
87
DotNodeMap
m_usedNodes
;
88
QCString
m_diskName
;
89
std::vector< std::unique_ptr<Edge> >
m_edges
;
90
};
91
92
using
DotGroupCollaborationPtr
= std::shared_ptr<DotGroupCollaboration>;
93
94
#endif
DotGraph::DotGraph
DotGraph()
Definition
dotgraph.h:38
DotGraph::DotNode
friend class DotNode
Definition
dotgraph.h:36
DotGroupCollaboration::m_edges
std::vector< std::unique_ptr< Edge > > m_edges
Definition
dotgroupcollaboration.h:89
DotGroupCollaboration::m_rootNode
DotNode * m_rootNode
Definition
dotgroupcollaboration.h:86
DotGroupCollaboration::writeGraph
QCString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const QCString &path, const QCString &fileName, const QCString &relPath, bool writeImageMap=TRUE, int graphId=-1)
Definition
dotgroupcollaboration.cpp:249
DotGroupCollaboration::DotGroupCollaboration
DotGroupCollaboration(const GroupDef *gd)
Definition
dotgroupcollaboration.cpp:25
DotGroupCollaboration::getMapLabel
QCString getMapLabel() const override
Definition
dotgroupcollaboration.cpp:244
DotGroupCollaboration::addMemberList
void addMemberList(class MemberList *ml)
Definition
dotgroupcollaboration.cpp:151
DotGroupCollaboration::computeTheGraph
void computeTheGraph() override
Definition
dotgroupcollaboration.cpp:216
DotGroupCollaboration::numNodes
int numNodes() const
Definition
dotgroupcollaboration.cpp:329
DotGroupCollaboration::m_usedNodes
DotNodeMap m_usedNodes
Definition
dotgroupcollaboration.h:87
DotGroupCollaboration::writeGraphHeader
void writeGraphHeader(TextStream &t, const QCString &title) const
Definition
dotgroupcollaboration.cpp:334
DotGroupCollaboration::~DotGroupCollaboration
~DotGroupCollaboration() override
Definition
dotgroupcollaboration.cpp:38
DotGroupCollaboration::addCollaborationMember
void addCollaborationMember(const Definition *def, QCString &url, EdgeType eType)
Definition
dotgroupcollaboration.cpp:186
DotGroupCollaboration::EdgeType
EdgeType
Definition
dotgroupcollaboration.h:49
DotGroupCollaboration::tdir
@ tdir
Definition
dotgroupcollaboration.h:55
DotGroupCollaboration::tmember
@ tmember
Definition
dotgroupcollaboration.h:50
DotGroupCollaboration::thierarchy
@ thierarchy
Definition
dotgroupcollaboration.h:56
DotGroupCollaboration::tfile
@ tfile
Definition
dotgroupcollaboration.h:53
DotGroupCollaboration::tpages
@ tpages
Definition
dotgroupcollaboration.h:54
DotGroupCollaboration::tnamespace
@ tnamespace
Definition
dotgroupcollaboration.h:52
DotGroupCollaboration::tclass
@ tclass
Definition
dotgroupcollaboration.h:51
DotGroupCollaboration::addEdge
Edge * addEdge(DotNode *_pNStart, DotNode *_pNEnd, EdgeType _eType, const QCString &_label, const QCString &_url)
Definition
dotgroupcollaboration.cpp:162
DotGroupCollaboration::isTooBig
bool isTooBig() const
Definition
dotgroupcollaboration.cpp:324
DotGroupCollaboration::m_diskName
QCString m_diskName
Definition
dotgroupcollaboration.h:88
DotGroupCollaboration::getBaseName
QCString getBaseName() const override
Definition
dotgroupcollaboration.cpp:211
DotGroupCollaboration::buildGraph
void buildGraph(const GroupDef *gd)
Definition
dotgroupcollaboration.cpp:58
DotGroupCollaboration::isTrivial
bool isTrivial() const
Definition
dotgroupcollaboration.cpp:319
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
end
DirIterator end(const DirIterator &) noexcept
Definition
dir.cpp:175
dotgraph.h
EmbeddedOutputFormat
EmbeddedOutputFormat
Definition
dotgraph.h:30
GraphOutputFormat
GraphOutputFormat
Definition
dotgraph.h:29
DotGroupCollaborationPtr
std::shared_ptr< DotGroupCollaboration > DotGroupCollaborationPtr
Definition
dotgroupcollaboration.h:92
dotnode.h
groupdef.h
TRUE
#define TRUE
Definition
qcstring.h:37
DotGroupCollaboration::Edge
Definition
dotgroupcollaboration.h:67
DotGroupCollaboration::Edge::pNStart
DotNode * pNStart
Definition
dotgroupcollaboration.h:71
DotGroupCollaboration::Edge::write
void write(TextStream &t) const
Definition
dotgroupcollaboration.cpp:259
DotGroupCollaboration::Edge::Edge
Edge(DotNode *start, DotNode *end, EdgeType type)
Definition
dotgroupcollaboration.h:68
DotGroupCollaboration::Edge::eType
EdgeType eType
Definition
dotgroupcollaboration.h:73
DotGroupCollaboration::Edge::links
std::vector< Link > links
Definition
dotgroupcollaboration.h:75
DotGroupCollaboration::Edge::pNEnd
DotNode * pNEnd
Definition
dotgroupcollaboration.h:72
DotGroupCollaboration::Link
Definition
dotgroupcollaboration.h:60
DotGroupCollaboration::Link::url
QCString url
Definition
dotgroupcollaboration.h:63
DotGroupCollaboration::Link::label
QCString label
Definition
dotgroupcollaboration.h:62
DotGroupCollaboration::Link::Link
Link(const QCString &lab, const QCString &u)
Definition
dotgroupcollaboration.h:61
src
dotgroupcollaboration.h
Generated by
1.13.0