Doxygen
Toggle main menu visibility
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 "
dotgraph.h
"
22
#include "
dotnode.h
"
23
24
class
Definition
;
25
class
GroupDef
;
26
class
TextStream
;
27
28
/** Representation of a group collaboration graph */
29
class
DotGroupCollaboration
final :
public
DotGraph
30
{
31
public :
32
DotGroupCollaboration
(
const
GroupDef
* gd);
33
~DotGroupCollaboration
()
override
;
34
NON_COPYABLE
(
DotGroupCollaboration
)
35
36
DString
writeGraph
(
TextStream
&t,
GraphOutputFormat
gf,
EmbeddedOutputFormat
ef,
37
const
DString
&path,
const
DString
&fileName,
const
DString
&relPath,
38
bool
writeImageMap=
true
,
int
graphId=-1);
39
bool
isTrivial
()
const
;
40
bool
isTooBig
()
const
;
41
int
numNodes
()
const
;
42
43
protected
:
44
DString
getBaseName
()
const override
;
45
DString
getMapLabel
()
const override
;
46
void
computeTheGraph
()
override
;
47
48
private :
49
enum
EdgeType
50
{
51
tmember
= 0,
52
tclass
,
53
tnamespace
,
54
tfile
,
55
tpages
,
56
tdir
,
57
thierarchy
58
};
59
60
struct
Link
61
{
62
Link
(
const
DString
&lab,
const
DString
&u) :
label
(lab),
url
(u) {}
63
DString
label
;
64
DString
url
;
65
};
66
67
struct
Edge
68
{
69
Edge
(
DotNode
*start,
DotNode
*
end
,
EdgeType
type)
70
:
pNStart
(start),
pNEnd
(
end
),
eType
(type) {}
71
72
DotNode
*
pNStart
;
73
DotNode
*
pNEnd
;
74
EdgeType
eType
;
75
76
std::vector<Link>
links
;
77
void
write
(
TextStream
&t )
const
;
78
};
79
80
void
buildGraph
(
const
GroupDef
* gd);
81
void
addCollaborationMember
(
const
Definition
* def,
DString
& url,
EdgeType
eType );
82
void
addMemberList
(
class
MemberList
* ml );
83
void
writeGraphHeader
(
TextStream
&t,
const
DString
&title)
const
;
84
Edge
*
addEdge
(
DotNode
* _pNStart,
DotNode
* _pNEnd,
EdgeType
_eType,
85
const
DString
& _label,
const
DString
& _url );
86
87
DotNode
*
m_rootNode
;
88
DotNodeMap
m_usedNodes
;
89
DString
m_diskName
;
90
std::vector< std::unique_ptr<Edge> >
m_edges
;
91
};
92
93
using
DotGroupCollaborationPtr
= std::shared_ptr<DotGroupCollaboration>;
94
95
#endif
DString
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition
dstring.h:84
Definition
The common base class of all entity definitions found in the sources.
Definition
definition.h:77
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:90
DotGroupCollaboration::m_rootNode
DotNode * m_rootNode
Definition
dotgroupcollaboration.h:87
DotGroupCollaboration::DotGroupCollaboration
DotGroupCollaboration(const GroupDef *gd)
Definition
dotgroupcollaboration.cpp:30
DotGroupCollaboration::getMapLabel
DString getMapLabel() const override
Definition
dotgroupcollaboration.cpp:249
DotGroupCollaboration::addMemberList
void addMemberList(class MemberList *ml)
Definition
dotgroupcollaboration.cpp:156
DotGroupCollaboration::computeTheGraph
void computeTheGraph() override
Definition
dotgroupcollaboration.cpp:221
DotGroupCollaboration::getBaseName
DString getBaseName() const override
Definition
dotgroupcollaboration.cpp:216
DotGroupCollaboration::numNodes
int numNodes() const
Definition
dotgroupcollaboration.cpp:334
DotGroupCollaboration::writeGraphHeader
void writeGraphHeader(TextStream &t, const DString &title) const
Definition
dotgroupcollaboration.cpp:339
DotGroupCollaboration::m_usedNodes
DotNodeMap m_usedNodes
Definition
dotgroupcollaboration.h:88
DotGroupCollaboration::addCollaborationMember
void addCollaborationMember(const Definition *def, DString &url, EdgeType eType)
Definition
dotgroupcollaboration.cpp:191
DotGroupCollaboration::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
dotgroupcollaboration.cpp:254
DotGroupCollaboration::~DotGroupCollaboration
~DotGroupCollaboration() override
Definition
dotgroupcollaboration.cpp:43
DotGroupCollaboration::m_diskName
DString m_diskName
Definition
dotgroupcollaboration.h:89
DotGroupCollaboration::EdgeType
EdgeType
Definition
dotgroupcollaboration.h:50
DotGroupCollaboration::tdir
@ tdir
Definition
dotgroupcollaboration.h:56
DotGroupCollaboration::tmember
@ tmember
Definition
dotgroupcollaboration.h:51
DotGroupCollaboration::thierarchy
@ thierarchy
Definition
dotgroupcollaboration.h:57
DotGroupCollaboration::tfile
@ tfile
Definition
dotgroupcollaboration.h:54
DotGroupCollaboration::tpages
@ tpages
Definition
dotgroupcollaboration.h:55
DotGroupCollaboration::tnamespace
@ tnamespace
Definition
dotgroupcollaboration.h:53
DotGroupCollaboration::tclass
@ tclass
Definition
dotgroupcollaboration.h:52
DotGroupCollaboration::isTooBig
bool isTooBig() const
Definition
dotgroupcollaboration.cpp:329
DotGroupCollaboration::buildGraph
void buildGraph(const GroupDef *gd)
Definition
dotgroupcollaboration.cpp:63
DotGroupCollaboration::addEdge
Edge * addEdge(DotNode *_pNStart, DotNode *_pNEnd, EdgeType _eType, const DString &_label, const DString &_url)
Definition
dotgroupcollaboration.cpp:167
DotGroupCollaboration::isTrivial
bool isTrivial() const
Definition
dotgroupcollaboration.cpp:324
DotNodeMap
Definition
dotnode.h:149
GroupDef
A model of a group of symbols.
Definition
groupdef.h:48
MemberList
A list of MemberDef objects as shown in documentation sections.
Definition
memberlist.h:126
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:181
dotgraph.h
EmbeddedOutputFormat
EmbeddedOutputFormat
Definition
dotgraph.h:30
GraphOutputFormat
GraphOutputFormat
Definition
dotgraph.h:29
DotGroupCollaborationPtr
std::shared_ptr< DotGroupCollaboration > DotGroupCollaborationPtr
Definition
dotgroupcollaboration.h:93
dotnode.h
DotGroupCollaboration::Edge
Definition
dotgroupcollaboration.h:68
DotGroupCollaboration::Edge::pNStart
DotNode * pNStart
Definition
dotgroupcollaboration.h:72
DotGroupCollaboration::Edge::write
void write(TextStream &t) const
Definition
dotgroupcollaboration.cpp:264
DotGroupCollaboration::Edge::Edge
Edge(DotNode *start, DotNode *end, EdgeType type)
Definition
dotgroupcollaboration.h:69
DotGroupCollaboration::Edge::eType
EdgeType eType
Definition
dotgroupcollaboration.h:74
DotGroupCollaboration::Edge::links
std::vector< Link > links
Definition
dotgroupcollaboration.h:76
DotGroupCollaboration::Edge::pNEnd
DotNode * pNEnd
Definition
dotgroupcollaboration.h:73
DotGroupCollaboration::Link::Link
Link(const DString &lab, const DString &u)
Definition
dotgroupcollaboration.h:62
DotGroupCollaboration::Link::url
DString url
Definition
dotgroupcollaboration.h:64
DotGroupCollaboration::Link::label
DString label
Definition
dotgroupcollaboration.h:63
src
dotgroupcollaboration.h
Generated by
1.19.0