Doxygen
DotClassGraph类 参考

Representation of a class inheritance or dependency graph 更多...

#include <dotclassgraph.h>

+ 类 DotClassGraph 继承关系图:
+ DotClassGraph 的协作图:

Public 成员函数

 DotClassGraph (const ClassDef *cd, GraphType t)
 
 ~DotClassGraph ()
 
bool isTrivial () const
 
bool isTooBig () const
 
int numNodes () const
 
QCString writeGraph (TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const QCString &path, const QCString &fileName, const QCString &relPath, bool TBRank=TRUE, bool imageMap=TRUE, int graphId=-1)
 
void writeXML (TextStream &t)
 
void writeDocbook (TextStream &t)
 
void writeDEF (TextStream &t)
 
- Public 成员函数 继承自 DotGraph
 DotGraph ()
 
virtual ~DotGraph ()
 

Protected 成员函数

virtual QCString getBaseName () const
 
virtual QCString getMapLabel () const
 
virtual void computeTheGraph ()
 
virtual QCString getImgAltText () const
 
- Protected 成员函数 继承自 DotGraph
int getNextNodeNumber ()
 returns node numbers. 更多...
 
QCString writeGraph (TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const QCString &path, const QCString &fileName, const QCString &relPath, bool writeImageMap=TRUE, int graphId=-1)
 
virtual QCString absMapName () const
 
QCString absBaseName () const
 
QCString absDotName () const
 
QCString imgName () const
 
QCString absImgName () const
 
QCString relImgName () const
 

Private 成员函数

void buildGraph (const ClassDef *cd, DotNode *n, bool base, int distance)
 
bool determineVisibleNodes (DotNode *rootNode, int maxNodes, bool includeParents)
 
void determineTruncatedNodes (DotNodeDeque &queue, bool includeParents)
 
void addClass (const ClassDef *cd, DotNode *n, int prot, const QCString &label, const QCString &usedName, const QCString &templSpec, bool base, int distance)
 

Private 属性

DotNodem_startNode
 
DotNodeMap m_usedNodes
 
GraphType m_graphType
 
QCString m_collabFileName
 
QCString m_inheritFileName
 
bool m_lrRank
 

额外继承的成员函数

- 静态 Protected 成员函数 继承自 DotGraph
static void writeGraphHeader (TextStream &t, const QCString &title=QCString())
 
static void writeGraphFooter (TextStream &t)
 
static void computeGraph (DotNode *root, GraphType gt, GraphOutputFormat format, const QCString &rank, bool renderParents, bool backArrows, const QCString &title, QCString &graphStr)
 
- Protected 属性 继承自 DotGraph
GraphOutputFormat m_graphFormat = GOF_BITMAP
 
EmbeddedOutputFormat m_textFormat = EOF_Html
 
Dir m_dir
 
QCString m_fileName
 
QCString m_relPath
 
bool m_generateImageMap = false
 
int m_graphId = 0
 
QCString m_absPath
 
QCString m_baseName
 
QCString m_theGraph
 
bool m_regenerate = false
 
bool m_doNotAddImageToIndex = false
 
bool m_noDivTag = false
 
bool m_zoomable = true
 
bool m_urlOnly = false
 

详细描述

Representation of a class inheritance or dependency graph

在文件 dotclassgraph.h28 行定义.

构造及析构函数说明

◆ DotClassGraph()

DotClassGraph::DotClassGraph ( const ClassDef cd,
GraphType  t 
)

在文件 dotclassgraph.cpp314 行定义.

315 {
316  //printf("--------------- DotClassGraph::DotClassGraph '%s'\n",qPrint(cd->displayName()));
317  m_graphType = t;
318  QCString tmp_url="";
319  if (cd->isLinkable() && !cd->isHidden())
320  {
321  tmp_url=cd->getReference()+"$"+cd->getOutputFileBase();
322  if (!cd->anchor().isEmpty())
323  {
324  tmp_url+="#"+cd->anchor();
325  }
326  }
327  QCString className = cd->displayName();
328  QCString tooltip = cd->briefDescriptionAsTooltip();
330  className,
331  tooltip,
332  tmp_url,
333  TRUE, // is a root node
334  cd
335  );
337  m_usedNodes.insert(std::make_pair(className.str(),m_startNode));
338 
340  if (t==Inheritance) buildGraph(cd,m_startNode,FALSE,1);
341 
343  DotNodeDeque openNodeQueue;
344  openNodeQueue.push_back(m_startNode);
345  determineTruncatedNodes(openNodeQueue,t==Inheritance);
346 
349 }

引用了 ClassDef::anchor(), Definition::briefDescriptionAsTooltip(), buildGraph(), ClassDef::collaborationGraphFileName(), Config_getInt, determineTruncatedNodes(), determineVisibleNodes(), ClassDef::displayName(), FALSE, DotGraph::getNextNodeNumber(), ClassDef::getOutputFileBase(), ClassDef::getReference(), Inheritance, ClassDef::inheritanceGraphFileName(), QCString::isEmpty(), Definition::isHidden(), ClassDef::isLinkable(), m_collabFileName, m_graphType, m_inheritFileName, m_lrRank, m_startNode, m_usedNodes, DotNode::setDistance(), QCString::str() , 以及 TRUE.

◆ ~DotClassGraph()

DotClassGraph::~DotClassGraph ( )

在文件 dotclassgraph.cpp375 行定义.

376 {
378 }

引用了 DotNode::deleteNodes() , 以及 m_startNode.

成员函数说明

◆ addClass()

void DotClassGraph::addClass ( const ClassDef cd,
DotNode n,
int  prot,
const QCString label,
const QCString usedName,
const QCString templSpec,
bool  base,
int  distance 
)
private

在文件 dotclassgraph.cpp26 行定义.

28 {
29  if (Config_getBool(HIDE_UNDOC_CLASSES) && !cd->isLinkable()) return;
30 
31  int edgeStyle = (!label.isEmpty() || prot==EdgeInfo::Orange || prot==EdgeInfo::Orange2) ? EdgeInfo::Dashed : EdgeInfo::Solid;
32  QCString className;
33  QCString fullName;
34  if (cd->isAnonymous())
35  {
36  className="anonymous:";
37  className+=label;
38  fullName = className;
39  }
40  else if (!usedName.isEmpty()) // name is a typedef
41  {
42  className=usedName;
43  fullName = className;
44  }
45  else if (!templSpec.isEmpty()) // name has a template part
46  {
47  className=insertTemplateSpecifierInScope(cd->displayName(),templSpec);
48  fullName =insertTemplateSpecifierInScope(cd->name(),templSpec);
49  }
50  else // just a normal name
51  {
52  className=cd->displayName();
53  fullName = cd->name();
54  }
55  //printf("DotClassGraph::addClass(class='%s',parent=%s,prot=%d,label=%s,dist=%d,usedName=%s,templSpec=%s,base=%d)\n",
56  // qPrint(className),qPrint(n->label()),prot,label,distance,usedName,templSpec,base);
57  auto it = m_usedNodes.find(fullName.str());
58  if (it!=m_usedNodes.end()) // class already inserted
59  {
60  DotNode *bn = it->second;
61  if (base)
62  {
63  n->addChild(bn,prot,edgeStyle,label);
64  bn->addParent(n);
65  }
66  else
67  {
68  bn->addChild(n,prot,edgeStyle,label);
69  n->addParent(bn);
70  }
71  bn->setDistance(distance);
72  //printf(" add exiting node %s of %s\n",qPrint(bn->label()),qPrint(n->label()));
73  }
74  else // new class
75  {
76  QCString displayName=className;
77  if (Config_getBool(HIDE_SCOPE_NAMES)) displayName=stripScope(displayName);
78  QCString tmp_url;
79  if (cd->isLinkable() && !cd->isHidden())
80  {
81  tmp_url=cd->getReference()+"$"+cd->getOutputFileBase();
82  if (!cd->anchor().isEmpty())
83  {
84  tmp_url+="#"+cd->anchor();
85  }
86  }
87  QCString tooltip = cd->briefDescriptionAsTooltip();
88  DotNode *bn = new DotNode(getNextNodeNumber(),
89  displayName,
90  tooltip,
91  tmp_url,
92  FALSE, // rootNode
93  cd
94  );
95  if (base)
96  {
97  n->addChild(bn,prot,edgeStyle,label);
98  bn->addParent(n);
99  }
100  else
101  {
102  bn->addChild(n,prot,edgeStyle,label);
103  n->addParent(bn);
104  }
105  bn->setDistance(distance);
106  m_usedNodes.insert(std::make_pair(fullName.str(),bn));
107  //printf(" add new child node '%s' to %s hidden=%d url=%s\n",
108  // qPrint(className),qPrint(n->label()),cd->isHidden(),qPrint(tmp_url));
109 
110  buildGraph(cd,bn,base,distance+1);
111  }
112 }

引用了 DotNode::addChild(), DotNode::addParent(), ClassDef::anchor(), Definition::briefDescriptionAsTooltip(), buildGraph(), Config_getBool, EdgeInfo::Dashed, ClassDef::displayName(), FALSE, DotGraph::getNextNodeNumber(), ClassDef::getOutputFileBase(), ClassDef::getReference(), insertTemplateSpecifierInScope(), Definition::isAnonymous(), QCString::isEmpty(), Definition::isHidden(), ClassDef::isLinkable(), m_usedNodes, Definition::name(), EdgeInfo::Orange, EdgeInfo::Orange2, DotNode::setDistance(), EdgeInfo::Solid, QCString::str() , 以及 stripScope().

被这些函数引用 buildGraph().

◆ buildGraph()

void DotClassGraph::buildGraph ( const ClassDef cd,
DotNode n,
bool  base,
int  distance 
)
private

在文件 dotclassgraph.cpp250 行定义.

251 {
252  //printf("DocClassGraph::buildGraph(%s,distance=%d,base=%d)\n",
253  // qPrint(cd->name()),distance,base);
254  // ---- Add inheritance relations
255 
257  {
258  for (const auto &bcd : base ? cd->baseClasses() : cd->subClasses())
259  {
260  //printf("-------- inheritance relation %s->%s templ='%s'\n",
261  // qPrint(cd->name()),qPrint(bcd->classDef->name()),qPrint(bcd->templSpecifiers));
262  addClass(bcd.classDef,n,bcd.prot,QCString(),bcd.usedName,bcd.templSpecifiers,base,distance);
263  }
264  }
265  if (m_graphType == Collaboration)
266  {
267  // ---- Add usage relations
268 
269  const UsesClassList &list = base ? cd->usedImplementationClasses() :
271  for (const auto &ucd : list)
272  {
273  //printf("addClass: %s templSpec=%s\n",qPrint(ucd.classDef->name()),qPrint(ucd.templSpecifiers));
274  addClass(ucd.classDef,n,EdgeInfo::Purple,joinLabels(ucd.accessors),QCString(),
275  ucd.templSpecifiers,base,distance);
276  }
277  }
278  if (Config_getBool(TEMPLATE_RELATIONS) && base)
279  {
280  for (const auto &ccd : cd->templateTypeConstraints())
281  {
282  //printf("addClass: %s\n",qPrint(ccd.classDef->name()));
283  addClass(ccd.classDef,n,EdgeInfo::Orange2,joinLabels(ccd.accessors),QCString(),
284  QCString(),TRUE,distance);
285  }
286  }
287 
288  // ---- Add template instantiation relations
289 
290  if (Config_getBool(TEMPLATE_RELATIONS))
291  {
292  if (base) // template relations for base classes
293  {
294  const ClassDef *templMaster=cd->templateMaster();
295  if (templMaster)
296  {
297  for (const auto &ti : templMaster->getTemplateInstances())
298  if (ti.classDef==cd)
299  {
300  addClass(templMaster,n,EdgeInfo::Orange,ti.templSpec,QCString(),QCString(),TRUE,distance);
301  }
302  }
303  }
304  else // template relations for super classes
305  {
306  for (const auto &ti : cd->getTemplateInstances())
307  {
308  addClass(ti.classDef,n,EdgeInfo::Orange,ti.templSpec,QCString(),QCString(),FALSE,distance);
309  }
310  }
311  }
312 }

引用了 addClass(), ClassDef::baseClasses(), Collaboration, Config_getBool, FALSE, ClassDef::getTemplateInstances(), Inheritance, joinLabels(), m_graphType, EdgeInfo::Orange, EdgeInfo::Orange2, EdgeInfo::Purple, ClassDef::subClasses(), ClassDef::templateMaster(), ClassDef::templateTypeConstraints(), TRUE, ClassDef::usedByImplementationClasses() , 以及 ClassDef::usedImplementationClasses().

被这些函数引用 addClass() , 以及 DotClassGraph().

◆ computeTheGraph()

void DotClassGraph::computeTheGraph ( )
protectedvirtual

实现了 DotGraph.

在文件 dotclassgraph.cpp397 行定义.

398 {
399  computeGraph(
400  m_startNode,
401  m_graphType,
403  m_lrRank ? "LR" : "",
405  TRUE,
406  m_startNode->label(),
407  m_theGraph
408  );
409 }

引用了 DotGraph::computeGraph(), Inheritance, DotNode::label(), DotGraph::m_graphFormat, m_graphType, m_lrRank, m_startNode, DotGraph::m_theGraph , 以及 TRUE.

◆ determineTruncatedNodes()

void DotClassGraph::determineTruncatedNodes ( DotNodeDeque queue,
bool  includeParents 
)
private

在文件 dotclassgraph.cpp114 行定义.

115 {
116  while (!queue.empty())
117  {
118  DotNode *n = queue.front();
119  queue.pop_front();
120  if (n->isVisible() && n->isTruncated()==DotNode::Unknown)
121  {
122  bool truncated = FALSE;
123  for (const auto &dn : n->children())
124  {
125  if (!dn->isVisible())
126  truncated = TRUE;
127  else
128  queue.push_back(dn);
129  }
130  if (includeParents)
131  {
132  for (const auto &dn : n->parents())
133  {
134  if (!dn->isVisible())
135  truncated = TRUE;
136  else
137  queue.push_back(dn);
138  }
139  }
140  n->markAsTruncated(truncated);
141  }
142  }
143 }

引用了 DotNode::children(), FALSE, DotNode::isTruncated(), DotNode::isVisible(), DotNode::markAsTruncated(), DotNode::parents(), TRUE , 以及 DotNode::Unknown.

被这些函数引用 DotClassGraph().

◆ determineVisibleNodes()

bool DotClassGraph::determineVisibleNodes ( DotNode rootNode,
int  maxNodes,
bool  includeParents 
)
private

在文件 dotclassgraph.cpp145 行定义.

147 {
148  DotNodeDeque childQueue;
149  DotNodeDeque parentQueue;
150  IntVector childTreeWidth;
151  IntVector parentTreeWidth;
152  childQueue.push_back(rootNode);
153  if (includeParents) parentQueue.push_back(rootNode);
154  bool firstNode=TRUE; // flag to force reprocessing rootNode in the parent loop
155  // despite being marked visible in the child loop
156  while ((!childQueue.empty() || !parentQueue.empty()) && maxNodes>0)
157  {
158  if (!childQueue.empty())
159  {
160  DotNode *n = childQueue.front();
161  childQueue.pop_front();
162  int distance = n->distance();
163  if (!n->isVisible() && distance<=Config_getInt(MAX_DOT_GRAPH_DEPTH)) // not yet processed
164  {
165  if (distance>0)
166  {
167  int oldSize=(int)childTreeWidth.size();
168  if (distance>oldSize)
169  {
170  childTreeWidth.resize(std::max(childTreeWidth.size(),(size_t)distance));
171  int i; for (i=oldSize;i<distance;i++) childTreeWidth[i]=0;
172  }
173  childTreeWidth[distance-1]+=n->label().length();
174  }
175  n->markAsVisible();
176  maxNodes--;
177  // add direct children
178  for (const auto &dn : n->children())
179  {
180  childQueue.push_back(dn);
181  }
182  }
183  }
184  if (includeParents && !parentQueue.empty())
185  {
186  DotNode *n = parentQueue.front();
187  parentQueue.pop_front();
188  if ((!n->isVisible() || firstNode) && n->distance()<=Config_getInt(MAX_DOT_GRAPH_DEPTH)) // not yet processed
189  {
190  firstNode=FALSE;
191  int distance = n->distance();
192  if (distance>0)
193  {
194  int oldSize = (int)parentTreeWidth.size();
195  if (distance>oldSize)
196  {
197  parentTreeWidth.resize(std::max(parentTreeWidth.size(),(size_t)distance));
198  int i; for (i=oldSize;i<distance;i++) parentTreeWidth[i]=0;
199  }
200  parentTreeWidth[distance-1]+=n->label().length();
201  }
202  n->markAsVisible();
203  maxNodes--;
204  // add direct parents
205  for (const auto &dn : n->parents())
206  {
207  parentQueue.push_back(dn);
208  }
209  }
210  }
211  }
212  if (Config_getBool(UML_LOOK)) return FALSE; // UML graph are always top to bottom
213  int maxWidth=0;
214  int maxHeight=(int)std::max(childTreeWidth.size(),parentTreeWidth.size());
215  uint i;
216  for (i=0;i<childTreeWidth.size();i++)
217  {
218  if (childTreeWidth.at(i)>maxWidth) maxWidth=childTreeWidth.at(i);
219  }
220  for (i=0;i<parentTreeWidth.size();i++)
221  {
222  if (parentTreeWidth.at(i)>maxWidth) maxWidth=parentTreeWidth.at(i);
223  }
224  //printf("max tree width=%d, max tree height=%d\n",maxWidth,maxHeight);
225  return maxWidth>80 && maxHeight<12; // used metric to decide to render the tree
226  // from left to right instead of top to bottom,
227  // with the idea to render very wide trees in
228  // left to right order.
229 }

引用了 DotNode::children(), Config_getBool, Config_getInt, DotNode::distance(), FALSE, DotNode::isVisible(), DotNode::label(), QCString::length(), DotNode::markAsVisible(), DotNode::parents() , 以及 TRUE.

被这些函数引用 DotClassGraph().

◆ getBaseName()

QCString DotClassGraph::getBaseName ( ) const
protectedvirtual

实现了 DotGraph.

在文件 dotclassgraph.cpp380 行定义.

381 {
382  switch (m_graphType)
383  {
384  case Collaboration:
385  return m_collabFileName;
386  break;
387  case Inheritance:
388  return m_inheritFileName;
389  break;
390  default:
391  ASSERT(0);
392  break;
393  }
394  return "";
395 }

引用了 ASSERT, Collaboration, Inheritance, m_collabFileName, m_graphType , 以及 m_inheritFileName.

◆ getImgAltText()

QCString DotClassGraph::getImgAltText ( ) const
protectedvirtual

重载 DotGraph .

在文件 dotclassgraph.cpp430 行定义.

431 {
432  switch (m_graphType)
433  {
434  case Collaboration:
435  return "Collaboration graph";
436  break;
437  case Inheritance:
438  return "Inheritance graph";
439  break;
440  default:
441  ASSERT(0);
442  break;
443  }
444  return "";
445 }

引用了 ASSERT, Collaboration, Inheritance , 以及 m_graphType.

◆ getMapLabel()

QCString DotClassGraph::getMapLabel ( ) const
protectedvirtual

实现了 DotGraph.

在文件 dotclassgraph.cpp411 行定义.

412 {
413  QCString mapName;
414  switch (m_graphType)
415  {
416  case Collaboration:
417  mapName="coll_map";
418  break;
419  case Inheritance:
420  mapName="inherit_map";
421  break;
422  default:
423  ASSERT(0);
424  break;
425  }
426 
428 }

引用了 ASSERT, Collaboration, escapeCharsInString(), FALSE, Inheritance, DotNode::label(), m_graphType , 以及 m_startNode.

◆ isTooBig()

bool DotClassGraph::isTooBig ( ) const

在文件 dotclassgraph.cpp359 行定义.

360 {
361  return numNodes()>=Config_getInt(DOT_GRAPH_MAX_NODES);
362 }

引用了 Config_getInt , 以及 numNodes().

被这些函数引用 ClassDefImpl::writeInheritanceGraph().

◆ isTrivial()

bool DotClassGraph::isTrivial ( ) const

◆ numNodes()

int DotClassGraph::numNodes ( ) const

在文件 dotclassgraph.cpp364 行定义.

365 {
366  int numNodes = 0;
367  numNodes+= (int)m_startNode->children().size();
369  {
370  numNodes+= (int)m_startNode->parents().size();
371  }
372  return numNodes;
373 }

引用了 DotNode::children(), Inheritance, m_graphType, m_startNode , 以及 DotNode::parents().

被这些函数引用 isTooBig() , 以及 ClassDefImpl::writeInheritanceGraph().

◆ writeDEF()

void DotClassGraph::writeDEF ( TextStream t)

在文件 dotclassgraph.cpp478 行定义.

479 {
480  for (const auto &kv : m_usedNodes)
481  {
482  kv.second->writeDEF(t);
483  }
484 }

引用了 m_usedNodes.

被这些函数引用 generateDEFForClass().

◆ writeDocbook()

void DotClassGraph::writeDocbook ( TextStream t)

在文件 dotclassgraph.cpp470 行定义.

471 {
472  for (const auto &kv : m_usedNodes)
473  {
474  kv.second->writeDocbook(t,TRUE);
475  }
476 }

引用了 m_usedNodes , 以及 TRUE.

◆ writeGraph()

QCString DotClassGraph::writeGraph ( TextStream t,
GraphOutputFormat  gf,
EmbeddedOutputFormat  ef,
const QCString path,
const QCString fileName,
const QCString relPath,
bool  TBRank = TRUE,
bool  imageMap = TRUE,
int  graphId = -1 
)

在文件 dotclassgraph.cpp447 行定义.

456 {
457  return DotGraph::writeGraph(out, graphFormat, textFormat, path, fileName, relPath, generateImageMap, graphId);
458 }

引用了 DotGraph::writeGraph().

被这些函数引用 RTFGenerator::endDotGraph(), DocbookGenerator::endDotGraph(), LatexGenerator::endDotGraph() , 以及 HtmlGenerator::endDotGraph().

◆ writeXML()

void DotClassGraph::writeXML ( TextStream t)

在文件 dotclassgraph.cpp462 行定义.

463 {
464  for (const auto &kv : m_usedNodes)
465  {
466  kv.second->writeXML(t,TRUE);
467  }
468 }

引用了 m_usedNodes , 以及 TRUE.

被这些函数引用 generateXMLForClass().

类成员变量说明

◆ m_collabFileName

QCString DotClassGraph::m_collabFileName
private

在文件 dotclassgraph.h61 行定义.

被这些函数引用 DotClassGraph() , 以及 getBaseName().

◆ m_graphType

GraphType DotClassGraph::m_graphType
private

◆ m_inheritFileName

QCString DotClassGraph::m_inheritFileName
private

在文件 dotclassgraph.h62 行定义.

被这些函数引用 DotClassGraph() , 以及 getBaseName().

◆ m_lrRank

bool DotClassGraph::m_lrRank
private

在文件 dotclassgraph.h63 行定义.

被这些函数引用 computeTheGraph() , 以及 DotClassGraph().

◆ m_startNode

DotNode* DotClassGraph::m_startNode
private

在文件 dotclassgraph.h58 行定义.

被这些函数引用 computeTheGraph(), DotClassGraph(), getMapLabel(), isTrivial(), numNodes() , 以及 ~DotClassGraph().

◆ m_usedNodes

DotNodeMap DotClassGraph::m_usedNodes
private

在文件 dotclassgraph.h59 行定义.

被这些函数引用 addClass(), DotClassGraph(), writeDEF(), writeDocbook() , 以及 writeXML().


该类的文档由以下文件生成:
DotGraph::computeGraph
static void computeGraph(DotNode *root, GraphType gt, GraphOutputFormat format, const QCString &rank, bool renderParents, bool backArrows, const QCString &title, QCString &graphStr)
Definition: dotgraph.cpp:305
DotNode::addChild
void addChild(DotNode *n, int edgeColor=EdgeInfo::Purple, int edgeStyle=EdgeInfo::Solid, const QCString &edgeLab=QCString(), const QCString &edgeURL=QCString(), int edgeLabCol=-1)
Definition: dotnode.cpp:281
DotNode::parents
const DotNodeRefVector & parents() const
Definition: dotnode.h:110
DotGraph::m_theGraph
QCString m_theGraph
Definition: dotgraph.h:89
stripScope
QCString stripScope(const QCString &name)
Definition: util.cpp:3815
DotNode::Unknown
@ Unknown
Definition: dotnode.h:65
DotNode::setDistance
void setDistance(int distance)
Definition: dotnode.cpp:333
QCString::length
uint length() const
Returns the length of the string, not counting the 0-terminator.
Definition: qcstring.h:147
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty
Definition: qcstring.h:144
DotNode::markAsTruncated
void markAsTruncated(bool b=TRUE)
Definition: dotnode.h:108
QCString::str
std::string str() const
Definition: qcstring.h:442
DotNode::deleteNodes
static void deleteNodes(DotNode *node)
Definition: dotnode.cpp:347
Definition::isHidden
virtual bool isHidden() const =0
DotNode::addParent
void addParent(DotNode *n)
Definition: dotnode.cpp:298
DotGraph::getNextNodeNumber
int getNextNodeNumber()
returns node numbers.
Definition: dotgraph.h:41
IntVector
std::vector< int > IntVector
Definition: containers.h:36
EdgeInfo::Solid
@ Solid
Definition: dotnode.h:35
DotNode::markAsVisible
void markAsVisible(bool b=TRUE)
Definition: dotnode.h:107
EdgeInfo::Orange
@ Orange
Definition: dotnode.h:34
ClassDef::templateMaster
virtual const ClassDef * templateMaster() const =0
Returns the template master of which this class is an instance.
uint
unsigned uint
Definition: qcstring.h:40
DotNode
A node in a dot graph
Definition: dotnode.h:56
DotClassGraph::m_inheritFileName
QCString m_inheritFileName
Definition: dotclassgraph.h:62
ClassDef
A abstract class representing of a compound symbol.
Definition: classdef.h:103
Config_getInt
#define Config_getInt(name)
Definition: config.h:34
DotClassGraph::buildGraph
void buildGraph(const ClassDef *cd, DotNode *n, bool base, int distance)
Definition: dotclassgraph.cpp:250
Definition::isAnonymous
virtual bool isAnonymous() const =0
ClassDef::getTemplateInstances
virtual const TemplateInstanceList & getTemplateInstances() const =0
Returns a sorted dictionary with all template instances found for this template class.
ClassDef::getOutputFileBase
virtual QCString getOutputFileBase() const =0
Returns the unique base name (without extension) of the class's file on disk
ClassDef::baseClasses
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
Definition::name
virtual QCString name() const =0
DotNode::label
QCString label() const
Definition: dotnode.h:89
joinLabels
static QCString joinLabels(const StringSet &ss)
Definition: dotclassgraph.cpp:231
DotGraph::m_graphFormat
GraphOutputFormat m_graphFormat
Definition: dotgraph.h:79
TRUE
#define TRUE
Definition: qcstring.h:36
DotClassGraph::m_lrRank
bool m_lrRank
Definition: dotclassgraph.h:63
EdgeInfo::Dashed
@ Dashed
Definition: dotnode.h:35
DotClassGraph::m_collabFileName
QCString m_collabFileName
Definition: dotclassgraph.h:61
DotNode::isTruncated
TruncState isTruncated() const
Definition: dotnode.h:92
DotClassGraph::m_startNode
DotNode * m_startNode
Definition: dotclassgraph.h:58
DotNode::isVisible
bool isVisible() const
Definition: dotnode.h:91
insertTemplateSpecifierInScope
QCString insertTemplateSpecifierInScope(const QCString &scope, const QCString &templ)
Definition: util.cpp:3782
DotClassGraph::m_graphType
GraphType m_graphType
Definition: dotclassgraph.h:60
Collaboration
@ Collaboration
Definition: dotgraph.h:29
DotClassGraph::addClass
void addClass(const ClassDef *cd, DotNode *n, int prot, const QCString &label, const QCString &usedName, const QCString &templSpec, bool base, int distance)
Definition: dotclassgraph.cpp:26
ClassDef::subClasses
virtual const BaseClassList & subClasses() const =0
Returns the list of sub classes that directly derive from this class
DotGraph::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: dotgraph.cpp:111
DotNodeDeque
Definition: dotnode.h:137
DotClassGraph::m_usedNodes
DotNodeMap m_usedNodes
Definition: dotclassgraph.h:59
Config_getBool
#define Config_getBool(name)
Definition: config.h:33
DotNode::distance
int distance() const
Definition: dotnode.h:93
ClassDef::collaborationGraphFileName
virtual QCString collaborationGraphFileName() const =0
returns the file name to use for the collaboration graph
ClassDef::getReference
virtual QCString getReference() const =0
If this class originated from a tagfile, this will return the tag file reference
escapeCharsInString
QCString escapeCharsInString(const QCString &name, bool allowDots, bool allowUnderscore)
Definition: util.cpp:3442
ClassDef::usedImplementationClasses
virtual const UsesClassList & usedImplementationClasses() const =0
EdgeInfo::Purple
@ Purple
Definition: dotnode.h:34
DotClassGraph::determineVisibleNodes
bool determineVisibleNodes(DotNode *rootNode, int maxNodes, bool includeParents)
Definition: dotclassgraph.cpp:145
Inheritance
@ Inheritance
Definition: dotgraph.h:29
ClassDef::displayName
virtual QCString displayName(bool includeScope=TRUE) const =0
Returns the name as it is appears in the documentation
ASSERT
#define ASSERT(x)
Definition: qcstring.h:44
DotClassGraph::determineTruncatedNodes
void determineTruncatedNodes(DotNodeDeque &queue, bool includeParents)
Definition: dotclassgraph.cpp:114
EdgeInfo::Orange2
@ Orange2
Definition: dotnode.h:34
Definition::briefDescriptionAsTooltip
virtual QCString briefDescriptionAsTooltip() const =0
DotClassGraph::numNodes
int numNodes() const
Definition: dotclassgraph.cpp:364
UsesClassList
Definition: classdef.h:528
ClassDef::isLinkable
virtual bool isLinkable() const =0
return TRUE iff a link to this class is possible (either within this project, or as a cross-reference...
ClassDef::templateTypeConstraints
virtual const ConstraintClassList & templateTypeConstraints() const =0
ClassDef::inheritanceGraphFileName
virtual QCString inheritanceGraphFileName() const =0
returns the file name to use for the inheritance graph
DotNode::children
const DotNodeRefVector & children() const
Definition: dotnode.h:109
FALSE
#define FALSE
Definition: qcstring.h:33
ClassDef::usedByImplementationClasses
virtual const UsesClassList & usedByImplementationClasses() const =0
ClassDef::anchor
virtual QCString anchor() const =0
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108