Doxygen
dotgroupcollaboration.h
浏览该文件的文档.
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 */
29 {
30  public :
34  const QCString &path,const QCString &fileName,const QCString &relPath,
35  bool writeImageMap=TRUE,int graphId=-1);
36  bool isTrivial() const;
37 
38  protected:
39  virtual QCString getBaseName() const;
40  virtual QCString getMapLabel() const;
41  virtual void computeTheGraph();
42 
43  private :
44  enum EdgeType
45  {
46  tmember = 0,
53  };
54 
55  struct Link
56  {
57  Link(const QCString &lab,const QCString &u) : label(lab), url(u) {}
60  };
61 
62  struct Edge
63  {
65  : pNStart(start), pNEnd(end), eType(type) {}
66 
70 
71  std::vector<Link> links;
72  void write( TextStream &t ) const;
73  };
74 
75  void buildGraph(const GroupDef* gd);
76  void addCollaborationMember(const Definition* def, QCString& url, EdgeType eType );
77  void addMemberList( class MemberList* ml );
78  void writeGraphHeader(TextStream &t,const QCString &title) const;
79  Edge* addEdge( DotNode* _pNStart, DotNode* _pNEnd, EdgeType _eType,
80  const QCString& _label, const QCString& _url );
81 
85  std::vector< std::unique_ptr<Edge> > m_edges;
86 };
87 
88 using DotGroupCollaborationPtr = std::shared_ptr<DotGroupCollaboration>;
89 
90 #endif
DotGroupCollaborationPtr
std::shared_ptr< DotGroupCollaboration > DotGroupCollaborationPtr
Definition: dotgroupcollaboration.h:88
DotGroupCollaboration::Edge::write
void write(TextStream &t) const
Definition: dotgroupcollaboration.cpp:252
DotGroupCollaboration::Edge::links
std::vector< Link > links
Definition: dotgroupcollaboration.h:71
DotGroupCollaboration::computeTheGraph
virtual void computeTheGraph()
Definition: dotgroupcollaboration.cpp:209
DotGroupCollaboration::addCollaborationMember
void addCollaborationMember(const Definition *def, QCString &url, EdgeType eType)
Definition: dotgroupcollaboration.cpp:179
Definition
The common base class of all entity definitions found in the sources.
Definition: definition.h:76
DotGroupCollaboration::m_usedNodes
DotNodeMap m_usedNodes
Definition: dotgroupcollaboration.h:83
DotGroupCollaboration::~DotGroupCollaboration
~DotGroupCollaboration()
Definition: dotgroupcollaboration.cpp:38
DotGroupCollaboration::getMapLabel
virtual QCString getMapLabel() const
Definition: dotgroupcollaboration.cpp:237
DotGroupCollaboration::tnamespace
@ tnamespace
Definition: dotgroupcollaboration.h:48
dotnode.h
DotGroupCollaboration::m_rootNode
DotNode * m_rootNode
Definition: dotgroupcollaboration.h:82
DotGroupCollaboration::thierarchy
@ thierarchy
Definition: dotgroupcollaboration.h:52
DotGroupCollaboration::Edge::pNStart
DotNode * pNStart
Definition: dotgroupcollaboration.h:67
DotGroupCollaboration::isTrivial
bool isTrivial() const
Definition: dotgroupcollaboration.cpp:312
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:242
DotGroupCollaboration::addMemberList
void addMemberList(class MemberList *ml)
Definition: dotgroupcollaboration.cpp:144
TextStream
Text streaming class that buffers data.
Definition: textstream.h:33
DotGroupCollaboration::Edge::pNEnd
DotNode * pNEnd
Definition: dotgroupcollaboration.h:68
end
DirIterator end(const DirIterator &) noexcept
Definition: dir.cpp:128
GroupDef
A model of a group of symbols.
Definition: groupdef.h:49
DotNode
A node in a dot graph
Definition: dotnode.h:56
DotGroupCollaboration::tclass
@ tclass
Definition: dotgroupcollaboration.h:47
DotGroupCollaboration::tdir
@ tdir
Definition: dotgroupcollaboration.h:51
DotGroupCollaboration::Edge::eType
EdgeType eType
Definition: dotgroupcollaboration.h:69
DotGroupCollaboration::m_diskName
QCString m_diskName
Definition: dotgroupcollaboration.h:84
DotGroupCollaboration::Edge
Definition: dotgroupcollaboration.h:62
TRUE
#define TRUE
Definition: qcstring.h:36
DotNodeMap
Definition: dotnode.h:133
DotGroupCollaboration::writeGraphHeader
void writeGraphHeader(TextStream &t, const QCString &title) const
Definition: dotgroupcollaboration.cpp:317
dotgraph.h
DotGroupCollaboration::EdgeType
EdgeType
Definition: dotgroupcollaboration.h:44
DotGroupCollaboration::addEdge
Edge * addEdge(DotNode *_pNStart, DotNode *_pNEnd, EdgeType _eType, const QCString &_label, const QCString &_url)
Definition: dotgroupcollaboration.cpp:155
DotGroupCollaboration::buildGraph
void buildGraph(const GroupDef *gd)
Definition: dotgroupcollaboration.cpp:47
DotGroupCollaboration::getBaseName
virtual QCString getBaseName() const
Definition: dotgroupcollaboration.cpp:204
DotGroupCollaboration
Representation of a group collaboration graph
Definition: dotgroupcollaboration.h:28
DotGroupCollaboration::tmember
@ tmember
Definition: dotgroupcollaboration.h:46
groupdef.h
EmbeddedOutputFormat
EmbeddedOutputFormat
Definition: dotgraph.h:28
GraphOutputFormat
GraphOutputFormat
Definition: dotgraph.h:27
DotGroupCollaboration::tfile
@ tfile
Definition: dotgroupcollaboration.h:49
DotGroupCollaboration::Edge::Edge
Edge(DotNode *start, DotNode *end, EdgeType type)
Definition: dotgroupcollaboration.h:64
DotGraph
A dot graph
Definition: dotgraph.h:32
DotGroupCollaboration::m_edges
std::vector< std::unique_ptr< Edge > > m_edges
Definition: dotgroupcollaboration.h:85
DotGroupCollaboration::tpages
@ tpages
Definition: dotgroupcollaboration.h:50
MemberList
A list of MemberDef objects as shown in documentation sections.
Definition: memberlist.h:81
DotGroupCollaboration::DotGroupCollaboration
DotGroupCollaboration(const GroupDef *gd)
Definition: dotgroupcollaboration.cpp:25
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108