Doxygen
DefinitionImpl类 参考

#include <definitionimpl.h>

+ DefinitionImpl 的协作图:

class  IMPL
 Private data associated with a Symbol DefinitionImpl object. 更多...
 

Public 成员函数

 DefinitionImpl (Definition *def, const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=0, const char *d=0, bool isSymbol=TRUE)
 
virtual ~DefinitionImpl ()
 
QCString name () const
 
bool isAnonymous () const
 
QCString localName () const
 
QCString qualifiedName () const
 
QCString symbolName () const
 
QCString getSourceFileBase () const
 
QCString getSourceAnchor () const
 
QCString documentation () const
 
int docLine () const
 
QCString docFile () const
 
QCString briefDescription (bool abbreviate=FALSE) const
 
QCString briefDescriptionAsTooltip () const
 
int briefLine () const
 
QCString inbodyDocumentation () const
 
QCString inbodyFile () const
 
int inbodyLine () const
 
QCString briefFile () const
 
QCString getDefFileName () const
 
QCString getDefFileExtension () const
 
int getDefLine () const
 
int getDefColumn () const
 
bool hasDocumentation () const
 
bool hasUserDocumentation () const
 
bool isVisibleInProject () const
 
bool isVisible () const
 
bool isHidden () const
 
bool isArtificial () const
 
QCString getReference () const
 
bool isReference () const
 
QCString externalReference (const QCString &relPath) const
 
int getStartDefLine () const
 
int getStartBodyLine () const
 
int getEndBodyLine () const
 
const FileDefgetBodyDef () const
 
SrcLangExt getLanguage () const
 
const GroupListpartOfGroups () const
 
bool isLinkableViaGroup () const
 
const RefItemVectorxrefListItems () const
 
const DefinitionfindInnerCompound (const QCString &name) const
 
DefinitiongetOuterScope () const
 
const MemberVectorgetReferencesMembers () const
 
const MemberVectorgetReferencedByMembers () const
 
bool hasSections () const
 
bool hasSources () const
 
bool hasBriefDescription () const
 
QCString id () const
 
const SectionRefsgetSectionRefs () const
 
void setName (const QCString &name)
 
void setId (const QCString &name)
 
void setDefFile (const QCString &df, int defLine, int defColumn)
 
void setDocumentation (const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE)
 
void setBriefDescription (const QCString &b, const QCString &briefFile, int briefLine)
 
void setInbodyDocumentation (const QCString &d, const QCString &docFile, int docLine)
 
void setReference (const QCString &r)
 
void addSectionsToDefinition (const std::vector< const SectionInfo * > &anchorList)
 
void setBodySegment (int defLine, int bls, int ble)
 
void setBodyDef (const FileDef *fd)
 
void addSourceReferencedBy (const MemberDef *d)
 
void addSourceReferences (const MemberDef *d)
 
void setRefItems (const RefItemVector &sli)
 
void mergeRefItems (Definition *d)
 
void mergeReferences (const Definition *other)
 
void mergeReferencedBy (const Definition *other)
 
void addInnerCompound (const Definition *d)
 
void setOuterScope (Definition *d)
 
void setHidden (bool b)
 
void setArtificial (bool b)
 
void setLanguage (SrcLangExt lang)
 
void writeSourceDef (OutputList &ol, const QCString &scopeName) const
 
void writeInlineCode (OutputList &ol, const QCString &scopeName) const
 
bool hasSourceRefs () const
 
bool hasSourceReffedBy () const
 
void writeSourceRefs (OutputList &ol, const QCString &scopeName) const
 
void writeSourceReffedBy (OutputList &ol, const QCString &scopeName) const
 
void makePartOfGroup (const GroupDef *gd)
 
void writeNavigationPath (OutputList &ol) const
 
QCString navigationPathAsString () const
 
void writeQuickMemberLinks (OutputList &, const MemberDef *) const
 
void writeSummaryLinks (OutputList &) const
 
QCString pathFragment () const
 
void writeDocAnchorsToTagFile (TextStream &) const
 
void setLocalName (const QCString &name)
 
void addSectionsToIndex ()
 
void writeToc (OutputList &ol, const LocalToc &lt) const
 
void computeTooltip ()
 
void _setSymbolName (const QCString &name)
 
QCString _symbolName () const
 
 DefinitionImpl (const DefinitionImpl &d)
 

Private 成员函数

int _getXRefListId (const QCString &listName) const
 
void _writeSourceRefList (OutputList &ol, const QCString &scopeName, const QCString &text, const std::unordered_map< std::string, const MemberDef * > &members, bool) const
 
void _setBriefDescription (const QCString &b, const QCString &briefFile, int briefLine)
 
void _setDocumentation (const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace, bool atTop)
 
void _setInbodyDocumentation (const QCString &d, const QCString &docFile, int docLine)
 
bool _docsAlreadyAdded (const QCString &doc, QCString &sigList)
 

Private 属性

IMPLm_impl
 

详细描述

在文件 definitionimpl.h26 行定义.

构造及析构函数说明

◆ DefinitionImpl() [1/2]

DefinitionImpl::DefinitionImpl ( Definition def,
const QCString defFileName,
int  defLine,
int  defColumn,
const QCString name,
const char *  b = 0,
const char *  d = 0,
bool  isSymbol = TRUE 
)

◆ ~DefinitionImpl()

DefinitionImpl::~DefinitionImpl ( )
virtual

在文件 definition.cpp271 行定义.

272 {
273  if (m_impl->isSymbol)
274  {
276  }
277  delete m_impl;
278  m_impl=0;
279 }

引用了 DefinitionImpl::IMPL::def, DefinitionImpl::IMPL::isSymbol, m_impl, removeFromMap() , 以及 DefinitionImpl::IMPL::symbolName.

◆ DefinitionImpl() [2/2]

DefinitionImpl::DefinitionImpl ( const DefinitionImpl d)

在文件 definition.cpp243 行定义.

244 {
246  *m_impl = *d.m_impl;
247  m_impl->brief = 0;
248  m_impl->details = 0;
249  m_impl->body = 0;
250  m_impl->inbodyDocs = 0;
251  if (d.m_impl->brief)
252  {
253  m_impl->brief = new BriefInfo(*d.m_impl->brief);
254  }
255  if (d.m_impl->details)
256  {
257  m_impl->details = new DocInfo(*d.m_impl->details);
258  }
259  if (d.m_impl->body)
260  {
261  m_impl->body = new BodyInfo(*d.m_impl->body);
262  }
263  if (d.m_impl->inbodyDocs)
264  {
266  }
267 
269 }

引用了 addToMap(), DefinitionImpl::IMPL::body, DefinitionImpl::IMPL::brief, DefinitionImpl::IMPL::def, DefinitionImpl::IMPL::details, DefinitionImpl::IMPL::inbodyDocs, DefinitionImpl::IMPL::isSymbol, m_impl , 以及 DefinitionImpl::IMPL::name.

成员函数说明

◆ _docsAlreadyAdded()

bool DefinitionImpl::_docsAlreadyAdded ( const QCString doc,
QCString sigList 
)
private

在文件 definition.cpp415 行定义.

416 {
417  uchar md5_sig[16];
418  char sigStr[33];
419  // to avoid mismatches due to differences in indenting, we first remove
420  // double whitespaces...
421  QCString docStr = doc.simplifyWhiteSpace();
422  MD5Buffer((const unsigned char *)docStr.data(),docStr.length(),md5_sig);
423  MD5SigToString(md5_sig,sigStr);
424  //printf("%s:_docsAlreadyAdded doc='%s' sig='%s' docSigs='%s'\n",
425  // qPrint(name()),qPrint(doc),qPrint(sigStr),qPrint(sigList));
426  if (sigList.find(sigStr)==-1) // new docs, add signature to prevent re-adding it
427  {
428  sigList+=QCString(":")+sigStr;
429  return FALSE;
430  }
431  else
432  {
433  return TRUE;
434  }
435 }

引用了 QCString::data(), FALSE, QCString::find(), QCString::length(), QCString::simplifyWhiteSpace() , 以及 TRUE.

被这些函数引用 _setBriefDescription() , 以及 _setDocumentation().

◆ _getXRefListId()

int DefinitionImpl::_getXRefListId ( const QCString listName) const
private

在文件 definition.cpp1282 行定义.

1283 {
1284  for (const RefItem *item : m_impl->xrefListItems)
1285  {
1286  if (item->list()->listName()==listName)
1287  {
1288  return item->id();
1289  }
1290  }
1291  return -1;
1292 }

引用了 RefItem::id(), RefItem::list(), RefList::listName(), m_impl , 以及 DefinitionImpl::IMPL::xrefListItems.

◆ _setBriefDescription()

void DefinitionImpl::_setBriefDescription ( const QCString b,
const QCString briefFile,
int  briefLine 
)
private

在文件 definition.cpp489 行定义.

490 {
491  static OUTPUT_LANGUAGE_t outputLanguage = Config_getEnum(OUTPUT_LANGUAGE);
492  static bool needsDot = outputLanguage!=OUTPUT_LANGUAGE_t::Japanese &&
493  outputLanguage!=OUTPUT_LANGUAGE_t::Chinese &&
494  outputLanguage!=OUTPUT_LANGUAGE_t::Korean;
495  QCString brief = b;
496  brief = brief.stripWhiteSpace();
498  brief = brief.stripWhiteSpace();
499  if (brief.isEmpty()) return;
500  uint bl = brief.length();
501  if (bl>0 && needsDot) // add punctuation if needed
502  {
503  int c = brief.at(bl-1);
504  switch(c)
505  {
506  case '.': case '!': case '?': case '>': case ':': case ')': break;
507  default:
508  if (isUTF8CharUpperCase(brief.str(),0) && !lastUTF8CharIsMultibyte(brief.str())) brief+='.';
509  break;
510  }
511  }
512 
514  {
515  if (m_impl->brief && !m_impl->brief->doc.isEmpty())
516  {
517  //printf("adding to details\n");
519  }
520  else
521  {
522  //fprintf(stderr,"DefinitionImpl::setBriefDescription(%s,%s,%d)\n",b,briefFile,briefLine);
523  if (m_impl->brief==0)
524  {
525  m_impl->brief = new BriefInfo;
526  }
527  m_impl->brief->doc=brief;
528  if (briefLine!=-1)
529  {
532  }
533  else
534  {
536  m_impl->brief->line = 1;
537  }
538  }
539  }
540  else
541  {
542  //printf("do nothing!\n");
543  }
544 }

引用了 _docsAlreadyAdded(), _setDocumentation(), QCString::at(), DefinitionImpl::IMPL::brief, briefFile(), briefLine(), DefinitionImpl::IMPL::briefSignatures, Config_getEnum, BriefInfo::doc, FALSE, BriefInfo::file, QCString::isEmpty(), isUTF8CharUpperCase(), lastUTF8CharIsMultibyte(), QCString::length(), BriefInfo::line, m_impl, QCString::str(), stripLeadingAndTrailingEmptyLines(), QCString::stripWhiteSpace() , 以及 TRUE.

被这些函数引用 DefinitionImpl() , 以及 setBriefDescription().

◆ _setDocumentation()

void DefinitionImpl::_setDocumentation ( const QCString d,
const QCString docFile,
int  docLine,
bool  stripWhiteSpace,
bool  atTop 
)
private

在文件 definition.cpp437 行定义.

439 {
440  //printf("%s::setDocumentation(%s,%s,%d,%d)\n",qPrint(name()),d,docFile,docLine,stripWhiteSpace);
441  if (d.isEmpty()) return;
442  QCString doc = d;
443  if (stripWhiteSpace)
444  {
446  }
447  else // don't strip whitespace
448  {
449  doc=d;
450  }
452  {
453  //printf("setting docs for %s: '%s'\n",qPrint(name()),qPrint(m_doc));
454  if (m_impl->details==0)
455  {
456  m_impl->details = new DocInfo;
457  }
458  if (m_impl->details->doc.isEmpty()) // fresh detailed description
459  {
460  m_impl->details->doc = doc;
461  }
462  else if (atTop) // another detailed description, append it to the start
463  {
464  m_impl->details->doc = doc+"\n\n"+m_impl->details->doc;
465  }
466  else // another detailed description, append it to the end
467  {
468  m_impl->details->doc += "\n\n"+doc;
469  }
470  if (docLine!=-1) // store location if valid
471  {
474  }
475  else
476  {
478  m_impl->details->line = 1;
479  }
480  }
481 }

引用了 _docsAlreadyAdded(), DefinitionImpl::IMPL::details, DocInfo::doc, docFile(), docLine(), DefinitionImpl::IMPL::docSignatures, DocInfo::file, QCString::isEmpty(), DocInfo::line, m_impl , 以及 stripLeadingAndTrailingEmptyLines().

被这些函数引用 _setBriefDescription(), DefinitionImpl() , 以及 setDocumentation().

◆ _setInbodyDocumentation()

void DefinitionImpl::_setInbodyDocumentation ( const QCString d,
const QCString docFile,
int  docLine 
)
private

在文件 definition.cpp552 行定义.

553 {
554  if (m_impl->inbodyDocs==0)
555  {
556  m_impl->inbodyDocs = new DocInfo;
557  }
558  if (m_impl->inbodyDocs->doc.isEmpty()) // fresh inbody docs
559  {
560  m_impl->inbodyDocs->doc = doc;
563  }
564  else // another inbody documentation fragment, append this to the end
565  {
566  m_impl->inbodyDocs->doc += QCString("\n\n")+doc;
567  }
568 }

引用了 DocInfo::doc, DocInfo::file, DefinitionImpl::IMPL::inbodyDocs, inbodyFile(), inbodyLine(), QCString::isEmpty(), DocInfo::line , 以及 m_impl.

被这些函数引用 setInbodyDocumentation().

◆ _setSymbolName()

void DefinitionImpl::_setSymbolName ( const QCString name)

在文件 definition.cpp1840 行定义.

1841 {
1843 }

引用了 m_impl, name() , 以及 DefinitionImpl::IMPL::symbolName.

被这些函数引用 DefinitionMixin< DirDef >::_setSymbolName().

◆ _symbolName()

QCString DefinitionImpl::_symbolName ( ) const

在文件 definition.cpp1845 行定义.

1846 {
1847  return m_impl->symbolName;
1848 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::symbolName.

被这些函数引用 DefinitionMixin< DirDef >::_symbolName().

◆ _writeSourceRefList()

void DefinitionImpl::_writeSourceRefList ( OutputList ol,
const QCString scopeName,
const QCString text,
const std::unordered_map< std::string, const MemberDef * > &  membersMap,
bool   
) const
private

Write a reference to the source code fragments in which this definition is used.

在文件 definition.cpp1027 行定义.

1030 {
1031  static bool sourceBrowser = Config_getBool(SOURCE_BROWSER);
1032  static bool refLinkSource = Config_getBool(REFERENCES_LINK_SOURCE);
1033  if (!membersMap.empty())
1034  {
1035  auto members = refMapToVector(membersMap);
1036 
1037  auto replaceFunc = [this,&members,scopeName,&ol](size_t entryIndex)
1038  {
1039  const MemberDef *md=members[entryIndex];
1040  if (md)
1041  {
1042  QCString scope=md->getScopeString();
1043  QCString name=md->name();
1044  //printf("class=%p scope=%s scopeName=%s\n",md->getClassDef(),qPrint(scope),scopeName);
1045  if (!scope.isEmpty() && scope!=scopeName)
1046  {
1048  }
1049  if (!md->isObjCMethod() &&
1050  (md->isFunction() || md->isSlot() ||
1051  md->isPrototype() || md->isSignal()
1052  )
1053  )
1054  {
1055  name+="()";
1056  }
1057  if (sourceBrowser &&
1058  !(md->isLinkable() && !refLinkSource) &&
1059  md->getStartBodyLine()!=-1 &&
1060  md->getBodyDef()
1061  )
1062  {
1063  const int maxLineNrStr = 10;
1064  char anchorStr[maxLineNrStr];
1065  qsnprintf(anchorStr,maxLineNrStr,"l%05d",md->getStartBodyLine());
1066  //printf("Write object link to %s\n",qPrint(md->getBodyDef()->getSourceFileBase()));
1067  ol.writeObjectLink(QCString(),md->getBodyDef()->getSourceFileBase(),anchorStr,name);
1068  }
1069  else if (md->isLinkable())
1070  {
1071  ol.writeObjectLink(md->getReference(),
1072  md->getOutputFileBase(),
1073  md->anchor(),name);
1074  }
1075  else
1076  {
1077  ol.docify(name);
1078  }
1079  }
1080  };
1081 
1082  ol.startParagraph("reference");
1083  ol.parseText(text);
1084  ol.docify(" ");
1085  writeMarkerList(ol,
1086  theTranslator->trWriteList((int)members.size()).str(),
1087  members.size(),
1088  replaceFunc);
1089  ol.writeString(".");
1090  ol.endParagraph();
1091 
1092  }
1093 }

引用了 MemberDef::anchor(), Config_getBool, OutputList::docify(), OutputList::endParagraph(), Definition::getBodyDef(), getLanguageSpecificSeparator(), MemberDef::getOutputFileBase(), MemberDef::getReference(), MemberDef::getScopeString(), FileDef::getSourceFileBase(), Definition::getStartBodyLine(), QCString::isEmpty(), MemberDef::isFunction(), MemberDef::isLinkable(), MemberDef::isObjCMethod(), MemberDef::isPrototype(), MemberDef::isSignal(), MemberDef::isSlot(), DefinitionImpl::IMPL::lang, m_impl, name(), Definition::name(), OutputList::parseText(), QCString::prepend(), qsnprintf, refMapToVector(), OutputList::startParagraph(), QCString::str(), theTranslator, Translator::trWriteList(), writeMarkerList(), OutputList::writeObjectLink() , 以及 OutputList::writeString().

被这些函数引用 writeSourceReffedBy() , 以及 writeSourceRefs().

◆ addInnerCompound()

void DefinitionImpl::addInnerCompound ( const Definition d)

在文件 definition.cpp1177 行定义.

1178 {
1179  err("DefinitionImpl::addInnerCompound() called\n");
1180 }

引用了 err().

被这些函数引用 DefinitionMixin< DirDef >::addInnerCompound().

◆ addSectionsToDefinition()

void DefinitionImpl::addSectionsToDefinition ( const std::vector< const SectionInfo * > &  anchorList)

在文件 definition.cpp306 行定义.

307 {
308  //printf("%s: addSectionsToDefinition(%d)\n",qPrint(name()),anchorList->count());
309  for (const SectionInfo *si : anchorList)
310  {
311  //printf("Add section '%s' to definition '%s'\n",
312  // qPrint(si->label()),qPrint(name()));
314  SectionInfo *gsi=sm.find(si->label());
315  //printf("===== label=%s gsi=%p\n",qPrint(si->label),gsi);
316  if (gsi==0)
317  {
318  gsi = sm.add(*si);
319  }
320  if (m_impl->sectionRefs.find(gsi->label())==0)
321  {
322  m_impl->sectionRefs.add(gsi);
323  gsi->setDefinition(m_impl->def);
324  }
325  }
326 }

引用了 SectionRefs::add(), SectionManager::add(), DefinitionImpl::IMPL::def, LinkedMap< T, Hash, KeyEqual, Map >::find(), SectionRefs::find(), SectionManager::instance(), SectionInfo::label(), m_impl, DefinitionImpl::IMPL::sectionRefs , 以及 SectionInfo::setDefinition().

被这些函数引用 DefinitionMixin< DirDef >::addSectionsToDefinition().

◆ addSectionsToIndex()

void DefinitionImpl::addSectionsToIndex ( )

在文件 definition.cpp343 行定义.

344 {
345  if (m_impl->sectionRefs.empty()) return;
346  //printf("DefinitionImpl::addSectionsToIndex()\n");
347  int level=1;
348  for (auto it = m_impl->sectionRefs.begin(); it!=m_impl->sectionRefs.end(); ++it)
349  {
350  const SectionInfo *si = *it;
351  SectionType type = si->type();
352  if (isSection(type))
353  {
354  //printf(" level=%d title=%s\n",level,qPrint(si->title));
355  int nextLevel = (int)type;
356  int i;
357  if (nextLevel>level)
358  {
359  for (i=level;i<nextLevel;i++)
360  {
362  }
363  }
364  else if (nextLevel<level)
365  {
366  for (i=nextLevel;i<level;i++)
367  {
369  }
370  }
371  QCString title = si->title();
372  if (title.isEmpty()) title = si->label();
373  // determine if there is a next level inside this item
374  auto it_next = std::next(it);
375  bool isDir = (it_next!=m_impl->sectionRefs.end()) ?
376  ((int)((*it_next)->type()) > nextLevel) : FALSE;
377  Doxygen::indexList->addContentsItem(isDir,title,
378  getReference(),
380  si->label(),
381  FALSE,
382  TRUE);
383  level = nextLevel;
384  }
385  }
386  while (level>1)
387  {
389  level--;
390  }
391 }

引用了 IndexList::addContentsItem(), SectionRefs::begin(), IndexList::decContentsDepth(), DefinitionImpl::IMPL::def, SectionRefs::empty(), SectionRefs::end(), FALSE, Definition::getOutputFileBase(), getReference(), IndexList::incContentsDepth(), Doxygen::indexList, QCString::isEmpty(), isSection(), SectionInfo::label(), m_impl, DefinitionImpl::IMPL::sectionRefs, SectionInfo::title(), TRUE , 以及 SectionInfo::type().

被这些函数引用 DefinitionMixin< DirDef >::addSectionsToIndex().

◆ addSourceReferencedBy()

void DefinitionImpl::addSourceReferencedBy ( const MemberDef d)

在文件 definition.cpp1140 行定义.

1141 {
1142  if (md)
1143  {
1144  QCString name = md->name();
1145  QCString scope = md->getScopeString();
1146 
1147  if (!scope.isEmpty())
1148  {
1149  name.prepend(scope+"::");
1150  }
1151 
1152  m_impl->sourceRefByDict.insert({name.str(),md});
1153  }
1154 }

引用了 MemberDef::getScopeString(), QCString::isEmpty(), m_impl, name(), Definition::name(), QCString::prepend(), DefinitionImpl::IMPL::sourceRefByDict , 以及 QCString::str().

被这些函数引用 DefinitionMixin< DirDef >::addSourceReferencedBy().

◆ addSourceReferences()

void DefinitionImpl::addSourceReferences ( const MemberDef d)

在文件 definition.cpp1156 行定义.

1157 {
1158  if (md)
1159  {
1160  QCString name = md->name();
1161  QCString scope = md->getScopeString();
1162 
1163  if (!scope.isEmpty())
1164  {
1165  name.prepend(scope+"::");
1166  }
1167 
1168  m_impl->sourceRefsDict.insert({name.str(),md});
1169  }
1170 }

引用了 MemberDef::getScopeString(), QCString::isEmpty(), m_impl, name(), Definition::name(), QCString::prepend(), DefinitionImpl::IMPL::sourceRefsDict , 以及 QCString::str().

被这些函数引用 DefinitionMixin< DirDef >::addSourceReferences().

◆ briefDescription()

QCString DefinitionImpl::briefDescription ( bool  abbreviate = FALSE) const

在文件 definition.cpp1625 行定义.

1626 {
1627  //printf("%s::briefDescription(%d)='%s'\n",qPrint(name()),abbr,m_impl->brief?qPrint(m_impl->brief->doc):"<none>");
1628  return m_impl->brief ?
1629  (abbr ? abbreviate(m_impl->brief->doc,m_impl->def->displayName()) : m_impl->brief->doc) :
1630  QCString("");
1631 }

引用了 abbreviate(), DefinitionImpl::IMPL::brief, DefinitionImpl::IMPL::def, Definition::displayName(), BriefInfo::doc , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::briefDescription() , 以及 hasBriefDescription().

◆ briefDescriptionAsTooltip()

QCString DefinitionImpl::briefDescriptionAsTooltip ( ) const

在文件 definition.cpp1644 行定义.

1645 {
1646  return m_impl->brief ? m_impl->brief->tooltip : QCString();
1647 }

引用了 DefinitionImpl::IMPL::brief, m_impl , 以及 BriefInfo::tooltip.

被这些函数引用 DefinitionMixin< DirDef >::briefDescriptionAsTooltip().

◆ briefFile()

QCString DefinitionImpl::briefFile ( ) const

在文件 definition.cpp1654 行定义.

1655 {
1656  return m_impl->brief ? m_impl->brief->file : QCString("<"+m_impl->name+">");
1657 }

引用了 DefinitionImpl::IMPL::brief, BriefInfo::file, m_impl , 以及 DefinitionImpl::IMPL::name.

被这些函数引用 _setBriefDescription(), DefinitionMixin< DirDef >::briefFile() , 以及 setBriefDescription().

◆ briefLine()

int DefinitionImpl::briefLine ( ) const

在文件 definition.cpp1649 行定义.

1650 {
1651  return m_impl->brief ? m_impl->brief->line : 1;
1652 }

引用了 DefinitionImpl::IMPL::brief, BriefInfo::line , 以及 m_impl.

被这些函数引用 _setBriefDescription(), DefinitionMixin< DirDef >::briefLine() , 以及 setBriefDescription().

◆ computeTooltip()

◆ docFile()

QCString DefinitionImpl::docFile ( ) const

在文件 definition.cpp1572 行定义.

1573 {
1574  return m_impl->details ? m_impl->details->file : QCString("<"+m_impl->name+">");
1575 }

引用了 DefinitionImpl::IMPL::details, DocInfo::file, m_impl , 以及 DefinitionImpl::IMPL::name.

被这些函数引用 _setDocumentation(), DefinitionMixin< DirDef >::docFile() , 以及 setDocumentation().

◆ docLine()

int DefinitionImpl::docLine ( ) const

在文件 definition.cpp1567 行定义.

1568 {
1569  return m_impl->details ? m_impl->details->line : 1;
1570 }

引用了 DefinitionImpl::IMPL::details, DocInfo::line , 以及 m_impl.

被这些函数引用 _setDocumentation(), DefinitionMixin< DirDef >::docLine() , 以及 setDocumentation().

◆ documentation()

QCString DefinitionImpl::documentation ( ) const

在文件 definition.cpp1562 行定义.

1563 {
1564  return m_impl->details ? m_impl->details->doc : QCString("");
1565 }

引用了 DefinitionImpl::IMPL::details, DocInfo::doc , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::documentation().

◆ externalReference()

QCString DefinitionImpl::externalReference ( const QCString relPath) const

在文件 definition.cpp1856 行定义.

1857 {
1858  QCString ref = getReference();
1859  if (!ref.isEmpty())
1860  {
1861  auto it = Doxygen::tagDestinationMap.find(ref.str());
1862  if (it!=Doxygen::tagDestinationMap.end())
1863  {
1864  QCString result(it->second);
1865  uint l = result.length();
1866  if (!relPath.isEmpty() && l>0 && result.at(0)=='.')
1867  { // relative path -> prepend relPath.
1868  result.prepend(relPath);
1869  l+=relPath.length();
1870  }
1871  if (l>0 && result.at(l-1)!='/') result+='/';
1872  return result;
1873  }
1874  }
1875  return relPath;
1876 }

引用了 QCString::at(), end(), getReference(), QCString::isEmpty(), QCString::length(), QCString::prepend(), QCString::str() , 以及 Doxygen::tagDestinationMap.

被这些函数引用 DefinitionMixin< DirDef >::externalReference().

◆ findInnerCompound()

const Definition * DefinitionImpl::findInnerCompound ( const QCString name) const

在文件 definition.cpp1172 行定义.

1173 {
1174  return 0;
1175 }

被这些函数引用 DefinitionMixin< DirDef >::findInnerCompound().

◆ getBodyDef()

const FileDef * DefinitionImpl::getBodyDef ( ) const

在文件 definition.cpp1734 行定义.

1735 {
1736  return m_impl->body ? m_impl->body->fileDef : 0;
1737 }

引用了 DefinitionImpl::IMPL::body, BodyInfo::fileDef , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::getBodyDef().

◆ getDefColumn()

int DefinitionImpl::getDefColumn ( ) const

在文件 definition.cpp1893 行定义.

1894 {
1895  return m_impl->defColumn;
1896 }

引用了 DefinitionImpl::IMPL::defColumn , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::getDefColumn().

◆ getDefFileExtension()

QCString DefinitionImpl::getDefFileExtension ( ) const

在文件 definition.cpp1684 行定义.

1685 {
1686  return m_impl->defFileExt;
1687 }

引用了 DefinitionImpl::IMPL::defFileExt , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::getDefFileExtension().

◆ getDefFileName()

QCString DefinitionImpl::getDefFileName ( ) const

在文件 definition.cpp1679 行定义.

1680 {
1681  return m_impl->defFileName;
1682 }

引用了 DefinitionImpl::IMPL::defFileName , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::getDefFileName().

◆ getDefLine()

int DefinitionImpl::getDefLine ( ) const

在文件 definition.cpp1888 行定义.

1889 {
1890  return m_impl->defLine;
1891 }

引用了 DefinitionImpl::IMPL::defLine , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::getDefLine().

◆ getEndBodyLine()

int DefinitionImpl::getEndBodyLine ( ) const

在文件 definition.cpp1729 行定义.

1730 {
1731  return m_impl->body ? m_impl->body->endLine : -1;
1732 }

引用了 DefinitionImpl::IMPL::body, BodyInfo::endLine , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::getEndBodyLine().

◆ getLanguage()

SrcLangExt DefinitionImpl::getLanguage ( ) const

在文件 definition.cpp1814 行定义.

1815 {
1816  return m_impl->lang;
1817 }

引用了 DefinitionImpl::IMPL::lang , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::getLanguage() , 以及 qualifiedName().

◆ getOuterScope()

Definition * DefinitionImpl::getOuterScope ( ) const

在文件 definition.cpp1753 行定义.

1754 {
1755  return m_impl->outerScope;
1756 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::outerScope.

被这些函数引用 DefinitionMixin< DirDef >::getOuterScope() , 以及 navigationPathAsString().

◆ getReference()

QCString DefinitionImpl::getReference ( ) const

在文件 definition.cpp1709 行定义.

1710 {
1711  return m_impl->ref;
1712 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::ref.

被这些函数引用 addSectionsToIndex(), externalReference() , 以及 DefinitionMixin< DirDef >::getReference().

◆ getReferencedByMembers()

const MemberVector & DefinitionImpl::getReferencedByMembers ( ) const

◆ getReferencesMembers()

const MemberVector & DefinitionImpl::getReferencesMembers ( ) const

◆ getSectionRefs()

const SectionRefs & DefinitionImpl::getSectionRefs ( ) const

在文件 definition.cpp1550 行定义.

1551 {
1552  return m_impl->sectionRefs;
1553 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::sectionRefs.

被这些函数引用 DefinitionMixin< DirDef >::getSectionRefs().

◆ getSourceAnchor()

QCString DefinitionImpl::getSourceAnchor ( ) const

在文件 definition.cpp872 行定义.

873 {
874  const int maxAnchorStrLen = 20;
875  char anchorStr[maxAnchorStrLen];
876  anchorStr[0]='\0';
877  if (m_impl->body && m_impl->body->startLine!=-1)
878  {
879  if (Htags::useHtags)
880  {
881  qsnprintf(anchorStr,maxAnchorStrLen,"L%d",m_impl->body->defLine);
882  }
883  else
884  {
885  qsnprintf(anchorStr,maxAnchorStrLen,"l%05d",m_impl->body->defLine);
886  }
887  }
888  return anchorStr;
889 }

引用了 DefinitionImpl::IMPL::body, BodyInfo::defLine, m_impl, qsnprintf, BodyInfo::startLine , 以及 Htags::useHtags.

被这些函数引用 DefinitionMixin< DirDef >::getSourceAnchor() , 以及 writeSourceDef().

◆ getSourceFileBase()

QCString DefinitionImpl::getSourceFileBase ( ) const

在文件 definition.cpp859 行定义.

860 {
861  ASSERT(m_impl->def->definitionType()!=Definition::TypeFile); // file overloads this method
862  QCString fn;
863  static bool sourceBrowser = Config_getBool(SOURCE_BROWSER);
864  if (sourceBrowser &&
866  {
868  }
869  return fn;
870 }

引用了 ASSERT, DefinitionImpl::IMPL::body, Config_getBool, DefinitionImpl::IMPL::def, Definition::definitionType(), BodyInfo::fileDef, FileDef::getSourceFileBase(), m_impl, BodyInfo::startLine , 以及 Definition::TypeFile.

被这些函数引用 DefinitionMixin< DirDef >::getSourceFileBase() , 以及 writeSourceDef().

◆ getStartBodyLine()

int DefinitionImpl::getStartBodyLine ( ) const

在文件 definition.cpp1724 行定义.

1725 {
1726  return m_impl->body ? m_impl->body->startLine : -1;
1727 }

引用了 DefinitionImpl::IMPL::body, m_impl , 以及 BodyInfo::startLine.

被这些函数引用 DefinitionMixin< DirDef >::getStartBodyLine().

◆ getStartDefLine()

int DefinitionImpl::getStartDefLine ( ) const

在文件 definition.cpp1719 行定义.

1720 {
1721  return m_impl->body ? m_impl->body->defLine : -1;
1722 }

引用了 DefinitionImpl::IMPL::body, BodyInfo::defLine , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::getStartDefLine().

◆ hasBriefDescription()

bool DefinitionImpl::hasBriefDescription ( ) const

在文件 definition.cpp1850 行定义.

1851 {
1852  static bool briefMemberDesc = Config_getBool(BRIEF_MEMBER_DESC);
1853  return !briefDescription().isEmpty() && briefMemberDesc;
1854 }

引用了 briefDescription(), Config_getBool , 以及 QCString::isEmpty().

被这些函数引用 DefinitionMixin< DirDef >::hasBriefDescription().

◆ hasDocumentation()

bool DefinitionImpl::hasDocumentation ( ) const

在文件 definition.cpp1115 行定义.

1116 {
1117  static bool extractAll = Config_getBool(EXTRACT_ALL);
1118  //static bool sourceBrowser = Config_getBool(SOURCE_BROWSER);
1119  bool hasDocs =
1120  (m_impl->details && !m_impl->details->doc.isEmpty()) || // has detailed docs
1121  (m_impl->brief && !m_impl->brief->doc.isEmpty()) || // has brief description
1122  (m_impl->inbodyDocs && !m_impl->inbodyDocs->doc.isEmpty()) || // has inbody docs
1123  extractAll //|| // extract everything
1124  // (sourceBrowser && m_impl->body &&
1125  // m_impl->body->startLine!=-1 && m_impl->body->fileDef)
1126  ; // link to definition
1127  return hasDocs;
1128 }

引用了 DefinitionImpl::IMPL::brief, Config_getBool, DefinitionImpl::IMPL::details, DocInfo::doc, BriefInfo::doc, DefinitionImpl::IMPL::inbodyDocs, QCString::isEmpty() , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::hasDocumentation().

◆ hasSections()

bool DefinitionImpl::hasSections ( ) const

在文件 definition.cpp328 行定义.

329 {
330  //printf("DefinitionImpl::hasSections(%s) #sections=%d\n",qPrint(name()),
331  // m_impl->sectionRefs.size());
332  if (m_impl->sectionRefs.empty()) return FALSE;
333  for (const SectionInfo *si : m_impl->sectionRefs)
334  {
335  if (isSection(si->type()))
336  {
337  return TRUE;
338  }
339  }
340  return FALSE;
341 }

引用了 SectionRefs::empty(), FALSE, isSection(), m_impl, DefinitionImpl::IMPL::sectionRefs, TRUE , 以及 SectionInfo::type().

被这些函数引用 DefinitionMixin< DirDef >::hasSections().

◆ hasSourceReffedBy()

bool DefinitionImpl::hasSourceReffedBy ( ) const

在文件 definition.cpp1105 行定义.

1106 {
1107  return !m_impl->sourceRefByDict.empty();
1108 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::sourceRefByDict.

被这些函数引用 DefinitionMixin< DirDef >::hasSourceReffedBy().

◆ hasSourceRefs()

bool DefinitionImpl::hasSourceRefs ( ) const

在文件 definition.cpp1110 行定义.

1111 {
1112  return !m_impl->sourceRefsDict.empty();
1113 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::sourceRefsDict.

被这些函数引用 DefinitionMixin< DirDef >::hasSourceRefs().

◆ hasSources()

bool DefinitionImpl::hasSources ( ) const

在文件 definition.cpp956 行定义.

957 {
958  return m_impl->body && m_impl->body->startLine!=-1 &&
960  m_impl->body->fileDef;
961 }

引用了 DefinitionImpl::IMPL::body, BodyInfo::endLine, BodyInfo::fileDef, m_impl , 以及 BodyInfo::startLine.

被这些函数引用 DefinitionMixin< DirDef >::hasSources() , 以及 writeInlineCode().

◆ hasUserDocumentation()

bool DefinitionImpl::hasUserDocumentation ( ) const

在文件 definition.cpp1130 行定义.

1131 {
1132  bool hasDocs =
1133  (m_impl->details && !m_impl->details->doc.isEmpty()) ||
1134  (m_impl->brief && !m_impl->brief->doc.isEmpty()) ||
1136  return hasDocs;
1137 }

引用了 DefinitionImpl::IMPL::brief, DefinitionImpl::IMPL::details, DocInfo::doc, BriefInfo::doc, DefinitionImpl::IMPL::inbodyDocs, QCString::isEmpty() , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::hasUserDocumentation().

◆ id()

QCString DefinitionImpl::id ( ) const

在文件 definition.cpp301 行定义.

302 {
303  return m_impl->id;
304 }

引用了 DefinitionImpl::IMPL::id , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::id() , 以及 setId().

◆ inbodyDocumentation()

QCString DefinitionImpl::inbodyDocumentation ( ) const

在文件 definition.cpp1661 行定义.

1662 {
1663  return m_impl->inbodyDocs ? m_impl->inbodyDocs->doc : QCString("");
1664 }

引用了 DocInfo::doc, DefinitionImpl::IMPL::inbodyDocs , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::inbodyDocumentation().

◆ inbodyFile()

QCString DefinitionImpl::inbodyFile ( ) const

◆ inbodyLine()

int DefinitionImpl::inbodyLine ( ) const

在文件 definition.cpp1666 行定义.

1667 {
1668  return m_impl->inbodyDocs ? m_impl->inbodyDocs->line : 1;
1669 }

引用了 DefinitionImpl::IMPL::inbodyDocs, DocInfo::line , 以及 m_impl.

被这些函数引用 _setInbodyDocumentation(), DefinitionMixin< DirDef >::inbodyLine() , 以及 setInbodyDocumentation().

◆ isAnonymous()

bool DefinitionImpl::isAnonymous ( ) const

在文件 definition.cpp1883 行定义.

1884 {
1885  return m_impl->isAnonymous;
1886 }

引用了 DefinitionImpl::IMPL::isAnonymous , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::isAnonymous().

◆ isArtificial()

bool DefinitionImpl::isArtificial ( ) const

在文件 definition.cpp1704 行定义.

1705 {
1706  return m_impl->isArtificial;
1707 }

引用了 DefinitionImpl::IMPL::isArtificial , 以及 m_impl.

被这些函数引用 DefinitionImpl::IMPL::init() , 以及 DefinitionMixin< DirDef >::isArtificial().

◆ isHidden()

bool DefinitionImpl::isHidden ( ) const

在文件 definition.cpp1689 行定义.

1690 {
1691  return m_impl->hidden;
1692 }

引用了 DefinitionImpl::IMPL::hidden , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::isHidden().

◆ isLinkableViaGroup()

bool DefinitionImpl::isLinkableViaGroup ( ) const

在文件 definition.cpp1744 行定义.

1745 {
1746  for (const auto &gd : partOfGroups())
1747  {
1748  if (gd->isLinkable()) return true;
1749  }
1750  return false;
1751 }

引用了 partOfGroups().

被这些函数引用 DefinitionMixin< DirDef >::isLinkableViaGroup().

◆ isReference()

bool DefinitionImpl::isReference ( ) const

在文件 definition.cpp1714 行定义.

1715 {
1716  return !m_impl->ref.isEmpty();
1717 }

引用了 QCString::isEmpty(), m_impl , 以及 DefinitionImpl::IMPL::ref.

被这些函数引用 DefinitionMixin< DirDef >::isReference().

◆ isVisible()

bool DefinitionImpl::isVisible ( ) const

在文件 definition.cpp1699 行定义.

1700 {
1701  return m_impl->def->isLinkable() && !m_impl->hidden;
1702 }

引用了 DefinitionImpl::IMPL::def, DefinitionImpl::IMPL::hidden, Definition::isLinkable() , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::isVisible().

◆ isVisibleInProject()

bool DefinitionImpl::isVisibleInProject ( ) const

◆ localName()

QCString DefinitionImpl::localName ( ) const

在文件 definition.cpp1241 行定义.

1242 {
1243  return m_impl->localName;
1244 }

引用了 DefinitionImpl::IMPL::localName , 以及 m_impl.

被这些函数引用 DefinitionImpl::IMPL::init(), DefinitionMixin< DirDef >::localName() , 以及 navigationPathAsString().

◆ makePartOfGroup()

void DefinitionImpl::makePartOfGroup ( const GroupDef gd)

在文件 definition.cpp1246 行定义.

1247 {
1248  m_impl->partOfGroups.push_back(gd);
1249 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::partOfGroups.

被这些函数引用 DefinitionMixin< DirDef >::makePartOfGroup().

◆ mergeReferencedBy()

void DefinitionImpl::mergeReferencedBy ( const Definition other)

在文件 definition.cpp1792 行定义.

1793 {
1794  const DefinitionImpl *defImpl = other->toDefinitionImpl_();
1795  if (defImpl)
1796  {
1797  for (const auto &kv : defImpl->m_impl->sourceRefByDict)
1798  {
1799  auto it = m_impl->sourceRefByDict.find(kv.first);
1800  if (it != m_impl->sourceRefByDict.end())
1801  {
1802  m_impl->sourceRefByDict.insert({kv.first,kv.second});
1803  }
1804  }
1805  }
1806 }

引用了 m_impl, DefinitionImpl::IMPL::sourceRefByDict , 以及 Definition::toDefinitionImpl_().

被这些函数引用 DefinitionMixin< DirDef >::mergeReferencedBy().

◆ mergeReferences()

void DefinitionImpl::mergeReferences ( const Definition other)

在文件 definition.cpp1776 行定义.

1777 {
1778  const DefinitionImpl *defImpl = other->toDefinitionImpl_();
1779  if (defImpl)
1780  {
1781  for (const auto &kv : defImpl->m_impl->sourceRefsDict)
1782  {
1783  auto it = m_impl->sourceRefsDict.find(kv.first);
1784  if (it != m_impl->sourceRefsDict.end())
1785  {
1786  m_impl->sourceRefsDict.insert(kv);
1787  }
1788  }
1789  }
1790 }

引用了 m_impl, DefinitionImpl::IMPL::sourceRefsDict , 以及 Definition::toDefinitionImpl_().

被这些函数引用 DefinitionMixin< DirDef >::mergeReferences().

◆ mergeRefItems()

void DefinitionImpl::mergeRefItems ( Definition d)

在文件 definition.cpp1256 行定义.

1257 {
1258  auto otherXrefList = d->xrefListItems();
1259 
1260  // append vectors
1261  m_impl->xrefListItems.reserve(m_impl->xrefListItems.size()+otherXrefList.size());
1262  m_impl->xrefListItems.insert (m_impl->xrefListItems.end(),
1263  otherXrefList.begin(),otherXrefList.end());
1264 
1265  // sort results on itemId
1266  std::sort(m_impl->xrefListItems.begin(),m_impl->xrefListItems.end(),
1267  [](RefItem *left,RefItem *right)
1268  { return left->id() <right->id() ||
1269  (left->id()==right->id() &&
1270  left->list()->listName() < right->list()->listName());
1271  });
1272 
1273  // filter out duplicates
1274  auto last = std::unique(m_impl->xrefListItems.begin(),m_impl->xrefListItems.end(),
1275  [](const RefItem *left,const RefItem *right)
1276  { return left->id()==right->id() &&
1277  left->list()->listName()==right->list()->listName();
1278  });
1279  m_impl->xrefListItems.erase(last, m_impl->xrefListItems.end());
1280 }

引用了 m_impl, DefinitionImpl::IMPL::xrefListItems , 以及 Definition::xrefListItems().

被这些函数引用 DefinitionMixin< DirDef >::mergeRefItems().

◆ name()

◆ navigationPathAsString()

QCString DefinitionImpl::navigationPathAsString ( ) const

Returns the string used in the footer for $navpath when GENERATE_TREEVIEW is enabled

在文件 definition.cpp1337 行定义.

1338 {
1339  QCString result;
1340  Definition *outerScope = getOuterScope();
1341  QCString locName = localName();
1342  if (outerScope && outerScope!=Doxygen::globalScope)
1343  {
1344  result+=outerScope->navigationPathAsString();
1345  }
1348  {
1349  result+=(toFileDef(m_impl->def))->getDirDef()->navigationPathAsString();
1350  }
1351  result+="<li class=\"navelem\">";
1352  if (m_impl->def->isLinkable())
1353  {
1356  {
1357  result+="<a class=\"el\" href=\"$relpath^"+addHtmlExtensionIfMissing(m_impl->def->getOutputFileBase())+"\">"+
1359  }
1362  {
1363  result+="<a class=\"el\" href=\"$relpath^"+addHtmlExtensionIfMissing(m_impl->def->getOutputFileBase())+"\">"+
1364  convertToHtml((toPageDef(m_impl->def))->title())+"</a>";
1365  }
1367  {
1368  QCString name = locName;
1369  if (name.right(2)=="-p" /*|| name.right(2)=="-g"*/)
1370  {
1371  name = name.left(name.length()-2);
1372  }
1373  result+="<a class=\"el\" href=\"$relpath^"+addHtmlExtensionIfMissing(m_impl->def->getOutputFileBase());
1374  if (!m_impl->def->anchor().isEmpty()) result+="#"+m_impl->def->anchor();
1375  result+="\">"+convertToHtml(name)+"</a>";
1376  }
1377  else
1378  {
1379  result+="<a class=\"el\" href=\"$relpath^"+addHtmlExtensionIfMissing(m_impl->def->getOutputFileBase())+"\">"+
1380  convertToHtml(locName)+"</a>";
1381  }
1382  }
1383  else
1384  {
1385  result+="<b>"+convertToHtml(locName)+"</b>";
1386  }
1387  result+="</li>";
1388  return result;
1389 }

引用了 addHtmlExtensionIfMissing(), Definition::anchor(), convertToHtml(), DefinitionImpl::IMPL::def, Definition::definitionType(), FileDef::getDirDef(), getOuterScope(), Definition::getOutputFileBase(), Doxygen::globalScope, GroupDef::groupTitle(), PageDef::hasTitle(), QCString::isEmpty(), Definition::isLinkable(), QCString::left(), QCString::length(), localName(), m_impl, name(), Definition::navigationPathAsString(), QCString::right(), toFileDef(), toGroupDef(), toPageDef(), Definition::TypeClass, Definition::TypeFile, Definition::TypeGroup , 以及 Definition::TypePage.

被这些函数引用 DefinitionMixin< DirDef >::navigationPathAsString() , 以及 writeNavigationPath().

◆ partOfGroups()

const GroupList & DefinitionImpl::partOfGroups ( ) const

在文件 definition.cpp1739 行定义.

1740 {
1741  return m_impl->partOfGroups;
1742 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::partOfGroups.

被这些函数引用 isLinkableViaGroup() , 以及 DefinitionMixin< DirDef >::partOfGroups().

◆ pathFragment()

QCString DefinitionImpl::pathFragment ( ) const

在文件 definition.cpp1299 行定义.

1300 {
1301  QCString result;
1303  {
1304  result = m_impl->outerScope->pathFragment();
1305  }
1306  if (m_impl->def->isLinkable())
1307  {
1308  if (!result.isEmpty()) result+="/";
1311  {
1312  result+=toGroupDef(m_impl->def)->groupTitle();
1313  }
1316  {
1317  result+=toPageDef(m_impl->def)->title();
1318  }
1319  else
1320  {
1321  result+=m_impl->localName;
1322  }
1323  }
1324  else
1325  {
1326  result+=m_impl->localName;
1327  }
1328  return result;
1329 }

引用了 DefinitionImpl::IMPL::def, Definition::definitionType(), Doxygen::globalScope, GroupDef::groupTitle(), PageDef::hasTitle(), QCString::isEmpty(), Definition::isLinkable(), DefinitionImpl::IMPL::localName, m_impl, DefinitionImpl::IMPL::outerScope, Definition::pathFragment(), PageDef::title(), toGroupDef(), toPageDef(), Definition::TypeGroup , 以及 Definition::TypePage.

被这些函数引用 DefinitionMixin< DirDef >::pathFragment().

◆ qualifiedName()

QCString DefinitionImpl::qualifiedName ( ) const

在文件 definition.cpp1182 行定义.

1183 {
1184  //static int count=0;
1185  //count++;
1186  if (!m_impl->qualifiedName.isEmpty())
1187  {
1188  //count--;
1189  return m_impl->qualifiedName;
1190  }
1191 
1192  //printf("start %s::qualifiedName() localName=%s\n",qPrint(name()),qPrint(m_impl->localName));
1193  if (m_impl->outerScope==0)
1194  {
1195  if (m_impl->localName=="<globalScope>")
1196  {
1197  //count--;
1198  return "";
1199  }
1200  else
1201  {
1202  //count--;
1203  return m_impl->localName;
1204  }
1205  }
1206 
1207  if (m_impl->outerScope->name()=="<globalScope>")
1208  {
1210  }
1211  else
1212  {
1215  m_impl->localName;
1216  }
1217  //printf("end %s::qualifiedName()=%s\n",qPrint(name()),qPrint(m_impl->qualifiedName));
1218  //count--;
1219  return m_impl->qualifiedName;
1220 }

引用了 getLanguage(), getLanguageSpecificSeparator(), QCString::isEmpty(), DefinitionImpl::IMPL::localName, m_impl, Definition::name(), DefinitionImpl::IMPL::outerScope, DefinitionImpl::IMPL::qualifiedName , 以及 Definition::qualifiedName().

被这些函数引用 DefinitionMixin< DirDef >::qualifiedName().

◆ setArtificial()

void DefinitionImpl::setArtificial ( bool  b)

在文件 definition.cpp1824 行定义.

1825 {
1826  m_impl->isArtificial = b;
1827 }

引用了 DefinitionImpl::IMPL::isArtificial , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::setArtificial().

◆ setBodyDef()

void DefinitionImpl::setBodyDef ( const FileDef fd)

在文件 definition.cpp950 行定义.

951 {
952  if (m_impl->body==0) m_impl->body = new BodyInfo;
953  m_impl->body->fileDef=fd;
954 }

引用了 DefinitionImpl::IMPL::body, BodyInfo::fileDef , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::setBodyDef().

◆ setBodySegment()

void DefinitionImpl::setBodySegment ( int  defLine,
int  bls,
int  ble 
)

在文件 definition.cpp941 行定义.

942 {
943  //printf("setBodySegment(%d,%d) for %s\n",bls,ble,qPrint(name()));
944  if (m_impl->body==0) m_impl->body = new BodyInfo;
945  m_impl->body->defLine = defLine;
946  m_impl->body->startLine = bls;
947  m_impl->body->endLine = ble;
948 }

引用了 DefinitionImpl::IMPL::body, BodyInfo::defLine, BodyInfo::endLine, m_impl , 以及 BodyInfo::startLine.

被这些函数引用 DefinitionMixin< DirDef >::setBodySegment().

◆ setBriefDescription()

void DefinitionImpl::setBriefDescription ( const QCString b,
const QCString briefFile,
int  briefLine 
)

在文件 definition.cpp546 行定义.

547 {
548  if (b.isEmpty()) return;
550 }

引用了 _setBriefDescription(), briefFile(), briefLine() , 以及 QCString::isEmpty().

被这些函数引用 DefinitionMixin< DirDef >::setBriefDescription().

◆ setDefFile()

void DefinitionImpl::setDefFile ( const QCString df,
int  defLine,
int  defColumn 
)

在文件 definition.cpp139 行定义.

140 {
141  m_impl->setDefFileName(df);
142  m_impl->defLine = defLine;
143  m_impl->defColumn = defCol;
144 }

引用了 DefinitionImpl::IMPL::defColumn, DefinitionImpl::IMPL::defLine, m_impl , 以及 DefinitionImpl::IMPL::setDefFileName().

被这些函数引用 DefinitionMixin< DirDef >::setDefFile().

◆ setDocumentation()

void DefinitionImpl::setDocumentation ( const QCString d,
const QCString docFile,
int  docLine,
bool  stripWhiteSpace = TRUE 
)

在文件 definition.cpp483 行定义.

484 {
485  if (d.isEmpty()) return;
486  _setDocumentation(d,docFile,docLine,stripWhiteSpace,FALSE);
487 }

引用了 _setDocumentation(), docFile(), docLine(), FALSE , 以及 QCString::isEmpty().

被这些函数引用 DefinitionMixin< DirDef >::setDocumentation().

◆ setHidden()

void DefinitionImpl::setHidden ( bool  b)

在文件 definition.cpp1819 行定义.

1820 {
1821  m_impl->hidden = m_impl->hidden || b;
1822 }

引用了 DefinitionImpl::IMPL::hidden , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::setHidden().

◆ setId()

void DefinitionImpl::setId ( const QCString name)

在文件 definition.cpp290 行定义.

291 {
292  if (id.isEmpty()) return;
293  m_impl->id = id;
295  {
296  //printf("DefinitionImpl::setId '%s'->'%s'\n",id,qPrint(m_impl->name));
297  Doxygen::clangUsrMap->insert(std::make_pair(id.str(),m_impl->def));
298  }
299 }

引用了 Doxygen::clangUsrMap, DefinitionImpl::IMPL::def, DefinitionImpl::IMPL::id, id() , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::setId().

◆ setInbodyDocumentation()

void DefinitionImpl::setInbodyDocumentation ( const QCString d,
const QCString docFile,
int  docLine 
)

在文件 definition.cpp570 行定义.

571 {
572  if (d.isEmpty()) return;
574 }

引用了 _setInbodyDocumentation(), inbodyFile(), inbodyLine() , 以及 QCString::isEmpty().

被这些函数引用 DefinitionMixin< DirDef >::setInbodyDocumentation().

◆ setLanguage()

void DefinitionImpl::setLanguage ( SrcLangExt  lang)

在文件 definition.cpp1834 行定义.

1835 {
1836  m_impl->lang=lang;
1837 }

引用了 DefinitionImpl::IMPL::lang , 以及 m_impl.

被这些函数引用 DefinitionMixin< DirDef >::setLanguage().

◆ setLocalName()

void DefinitionImpl::setLocalName ( const QCString name)

在文件 definition.cpp1829 行定义.

1830 {
1832 }

引用了 DefinitionImpl::IMPL::localName, m_impl , 以及 name().

被这些函数引用 DefinitionMixin< DirDef >::setLocalName().

◆ setName()

void DefinitionImpl::setName ( const QCString name)

在文件 definition.cpp281 行定义.

282 {
283  if (name.isEmpty()) return;
284  m_impl->name = name;
286  m_impl->name.at(0)=='@' ||
287  m_impl->name.find("::@")!=-1;
288 }

引用了 QCString::at(), QCString::find(), DefinitionImpl::IMPL::isAnonymous, QCString::isEmpty(), m_impl, name() , 以及 DefinitionImpl::IMPL::name.

被这些函数引用 DefinitionImpl() , 以及 DefinitionMixin< DirDef >::setName().

◆ setOuterScope()

void DefinitionImpl::setOuterScope ( Definition d)

在文件 definition.cpp1222 行定义.

1223 {
1224  //printf("%s::setOuterScope(%s)\n",qPrint(name()),d?qPrint(d->name()):"<none>");
1226  bool found=false;
1227  // make sure that we are not creating a recursive scope relation.
1228  while (p && !found)
1229  {
1230  found = (p==d);
1231  p = p->getOuterScope();
1232  }
1233  if (!found)
1234  {
1235  m_impl->qualifiedName.resize(0); // flush cached scope name
1236  m_impl->outerScope = d;
1237  }
1238  m_impl->hidden = m_impl->hidden || d->isHidden();
1239 }

引用了 Definition::getOuterScope(), DefinitionImpl::IMPL::hidden, Definition::isHidden(), m_impl, DefinitionImpl::IMPL::outerScope, DefinitionImpl::IMPL::qualifiedName , 以及 QCString::resize().

被这些函数引用 DefinitionMixin< DirDef >::setOuterScope().

◆ setReference()

void DefinitionImpl::setReference ( const QCString r)

在文件 definition.cpp1809 行定义.

1810 {
1811  m_impl->ref=r;
1812 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::ref.

被这些函数引用 DefinitionMixin< DirDef >::setReference().

◆ setRefItems()

void DefinitionImpl::setRefItems ( const RefItemVector sli)

在文件 definition.cpp1251 行定义.

1252 {
1253  m_impl->xrefListItems.insert(m_impl->xrefListItems.end(), sli.cbegin(), sli.cend());
1254 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::xrefListItems.

被这些函数引用 DefinitionMixin< DirDef >::setRefItems().

◆ symbolName()

QCString DefinitionImpl::symbolName ( ) const

在文件 definition.cpp1555 行定义.

1556 {
1557  return m_impl->symbolName;
1558 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::symbolName.

被这些函数引用 addToMap() , 以及 DefinitionMixin< DirDef >::symbolName().

◆ writeDocAnchorsToTagFile()

void DefinitionImpl::writeDocAnchorsToTagFile ( TextStream tagFile) const

在文件 definition.cpp393 行定义.

394 {
395  if (!m_impl->sectionRefs.empty())
396  {
397  //printf("%s: writeDocAnchorsToTagFile(%d)\n",qPrint(name()),m_impl->sectionRef.size());
398  for (const SectionInfo *si : m_impl->sectionRefs)
399  {
400  if (!si->generated() && si->ref().isEmpty() && !si->label().startsWith("autotoc_md"))
401  {
402  //printf("write an entry!\n");
403  if (m_impl->def->definitionType()==Definition::TypeMember) tagFile << " ";
404  tagFile << " <docanchor file=\"" << addHtmlExtensionIfMissing(si->fileName()) << "\"";
405  if (!si->title().isEmpty())
406  {
407  tagFile << " title=\"" << convertToXML(si->title()) << "\"";
408  }
409  tagFile << ">" << si->label() << "</docanchor>\n";
410  }
411  }
412  }
413 }

引用了 addHtmlExtensionIfMissing(), convertToXML(), DefinitionImpl::IMPL::def, Definition::definitionType(), SectionRefs::empty(), SectionInfo::fileName(), SectionInfo::generated(), QCString::isEmpty(), SectionInfo::label(), m_impl, SectionInfo::ref(), DefinitionImpl::IMPL::sectionRefs, QCString::startsWith(), SectionInfo::title() , 以及 Definition::TypeMember.

被这些函数引用 DefinitionMixin< DirDef >::writeDocAnchorsToTagFile().

◆ writeInlineCode()

void DefinitionImpl::writeInlineCode ( OutputList ol,
const QCString scopeName 
) const

Write code of this definition into the documentation

在文件 definition.cpp964 行定义.

965 {
966  static bool inlineSources = Config_getBool(INLINE_SOURCES);
967  ol.pushGeneratorState();
968  //printf("Source Fragment %s: %d-%d bodyDef=%p\n",qPrint(name()),
969  // m_startBodyLine,m_endBodyLine,m_bodyDef);
970  if (inlineSources && hasSources())
971  {
972  QCString codeFragment;
973  int actualStart=m_impl->body->startLine,actualEnd=m_impl->body->endLine;
975  actualStart,actualEnd,codeFragment)
976  )
977  {
978  //printf("Adding code fragment '%s' ext='%s'\n",
979  // qPrint(codeFragment),qPrint(m_impl->defFileExt));
981  intf->resetCodeParserState();
982  //printf("Read:\n'%s'\n\n",qPrint(codeFragment));
983  const MemberDef *thisMd = 0;
985  {
986  thisMd = toMemberDef(m_impl->def);
987  }
988 
989  ol.startCodeFragment("DoxyCode");
990  intf->parseCode(ol, // codeOutIntf
991  scopeName, // scope
992  codeFragment, // input
993  m_impl->lang, // lang
994  FALSE, // isExample
995  QCString(), // exampleName
996  m_impl->body->fileDef, // fileDef
997  actualStart, // startLine
998  actualEnd, // endLine
999  TRUE, // inlineFragment
1000  thisMd, // memberDef
1001  TRUE // show line numbers
1002  );
1003  ol.endCodeFragment("DoxyCode");
1004  }
1005  }
1006  ol.popGeneratorState();
1007 }

引用了 FileDef::absFilePath(), DefinitionImpl::IMPL::body, Config_getBool, DefinitionImpl::IMPL::def, DefinitionImpl::IMPL::defFileExt, Definition::definitionType(), OutputList::endCodeFragment(), BodyInfo::endLine, FALSE, BodyInfo::fileDef, ParserManager::getCodeParser(), hasSources(), DefinitionImpl::IMPL::lang, m_impl, Doxygen::parserManager, OutputList::popGeneratorState(), OutputList::pushGeneratorState(), readCodeFragment(), OutputList::startCodeFragment(), BodyInfo::startLine, toMemberDef(), TRUE , 以及 Definition::TypeMember.

被这些函数引用 DefinitionMixin< DirDef >::writeInlineCode().

◆ writeNavigationPath()

void DefinitionImpl::writeNavigationPath ( OutputList ol) const

在文件 definition.cpp1392 行定义.

1393 {
1394  ol.pushGeneratorState();
1396 
1397  QCString navPath;
1398  navPath += "<div id=\"nav-path\" class=\"navpath\">\n"
1399  " <ul>\n";
1400  navPath += navigationPathAsString();
1401  navPath += " </ul>\n"
1402  "</div>\n";
1403  ol.writeNavigationPath(navPath);
1404 
1405  ol.popGeneratorState();
1406 }

引用了 OutputList::disableAllBut(), OutputGenerator::Html, navigationPathAsString(), OutputList::popGeneratorState(), OutputList::pushGeneratorState() , 以及 OutputList::writeNavigationPath().

被这些函数引用 DefinitionMixin< DirDef >::writeNavigationPath().

◆ writeQuickMemberLinks()

void DefinitionImpl::writeQuickMemberLinks ( OutputList ,
const MemberDef  
) const

在文件 definition.cpp1898 行定义.

1899 {
1900 }

被这些函数引用 DefinitionMixin< DirDef >::writeQuickMemberLinks().

◆ writeSourceDef()

void DefinitionImpl::writeSourceDef ( OutputList ol,
const QCString scopeName 
) const

Write a reference to the source code defining this definition

在文件 definition.cpp892 行定义.

893 {
894  //printf("DefinitionImpl::writeSourceRef %d %p\n",bodyLine,bodyDef);
896  if (!fn.isEmpty())
897  {
899  int lineMarkerPos = refText.find("@0");
900  int fileMarkerPos = refText.find("@1");
901  if (lineMarkerPos!=-1 && fileMarkerPos!=-1) // should always pass this.
902  {
903  QCString lineStr;
904  lineStr.sprintf("%d",m_impl->body->defLine);
905  QCString anchorStr = getSourceAnchor();
906  ol.startParagraph("definition");
907  if (lineMarkerPos<fileMarkerPos) // line marker before file marker
908  {
909  // write text left from linePos marker
910  ol.parseText(refText.left(lineMarkerPos));
911  ol.writeObjectLink(QCString(),fn,anchorStr,lineStr);
912  // write text between markers
913  ol.parseText(refText.mid(lineMarkerPos+2,fileMarkerPos-lineMarkerPos-2));
914  // write file link
916  // write text right from file marker
917  ol.parseText(refText.right(refText.length()-(uint)fileMarkerPos-2));
918  }
919  else // file marker before line marker
920  {
921  // write text left from file marker
922  ol.parseText(refText.left(fileMarkerPos));
923  // write file link
925  // write text between markers
926  ol.parseText(refText.mid(fileMarkerPos+2,lineMarkerPos-fileMarkerPos-2));
927  // write line link
928  ol.writeObjectLink(QCString(),fn,anchorStr,lineStr);
929  // write text right from linePos marker
930  ol.parseText(refText.right(refText.length()-(uint)lineMarkerPos-2));
931  }
932  ol.endParagraph();
933  }
934  else
935  {
936  err("translation error: invalid markers in trDefinedAtLineInSourceFile()\n");
937  }
938  }
939 }

引用了 DefinitionImpl::IMPL::body, BodyInfo::defLine, OutputList::endParagraph(), err(), BodyInfo::fileDef, QCString::find(), getSourceAnchor(), getSourceFileBase(), QCString::isEmpty(), QCString::left(), QCString::length(), m_impl, QCString::mid(), FileDef::name(), OutputList::parseText(), QCString::right(), QCString::sprintf(), OutputList::startParagraph(), theTranslator, Translator::trDefinedAtLineInSourceFile() , 以及 OutputList::writeObjectLink().

被这些函数引用 DefinitionMixin< DirDef >::writeSourceDef().

◆ writeSourceReffedBy()

void DefinitionImpl::writeSourceReffedBy ( OutputList ol,
const QCString scopeName 
) const

◆ writeSourceRefs()

void DefinitionImpl::writeSourceRefs ( OutputList ol,
const QCString scopeName 
) const

◆ writeSummaryLinks()

void DefinitionImpl::writeSummaryLinks ( OutputList ) const

在文件 definition.cpp1902 行定义.

1903 {
1904 }

被这些函数引用 DefinitionMixin< DirDef >::writeSummaryLinks().

◆ writeToc()

void DefinitionImpl::writeToc ( OutputList ol,
const LocalToc lt 
) const

在文件 definition.cpp1409 行定义.

1410 {
1411  if (m_impl->sectionRefs.empty()) return;
1412  if (localToc.isHtmlEnabled())
1413  {
1414  int maxLevel = localToc.htmlLevel();
1415  ol.pushGeneratorState();
1417  ol.writeString("<div class=\"toc\">");
1418  ol.writeString("<h3>");
1420  ol.writeString("</h3>\n");
1421  ol.writeString("<ul>");
1422  int level=1,l;
1423  char cs[2];
1424  cs[1]='\0';
1425  BoolVector inLi(maxLevel+1,false);
1426  for (const SectionInfo *si : m_impl->sectionRefs)
1427  {
1428  SectionType type = si->type();
1429  if (isSection(type))
1430  {
1431  //printf(" level=%d title=%s\n",level,qPrint(si->title));
1432  int nextLevel = (int)type;
1433  if (nextLevel>level)
1434  {
1435  for (l=level;l<nextLevel;l++)
1436  {
1437  if (l < maxLevel) ol.writeString("<ul>");
1438  }
1439  }
1440  else if (nextLevel<level)
1441  {
1442  for (l=level;l>nextLevel;l--)
1443  {
1444  if (l <= maxLevel && inLi[l]) ol.writeString("</li>\n");
1445  inLi[l]=false;
1446  if (l <= maxLevel) ol.writeString("</ul>\n");
1447  }
1448  }
1449  cs[0]=(char)('0'+nextLevel);
1450  if (nextLevel <= maxLevel && inLi[nextLevel])
1451  {
1452  ol.writeString("</li>\n");
1453  }
1454  QCString titleDoc = convertToHtml(si->title());
1455  if (nextLevel <= maxLevel)
1456  {
1457  ol.writeString("<li class=\"level"+QCString(cs)+"\">"
1458  "<a href=\"#"+si->label()+"\">"+
1459  (si->title().isEmpty()?si->label():titleDoc)+"</a>");
1460  }
1461  inLi[nextLevel]=true;
1462  level = nextLevel;
1463  }
1464  }
1465  if (level > maxLevel) level = maxLevel;
1466  while (level>1 && level <= maxLevel)
1467  {
1468  if (inLi[level])
1469  {
1470  ol.writeString("</li>\n");
1471  }
1472  inLi[level]=FALSE;
1473  ol.writeString("</ul>\n");
1474  level--;
1475  }
1476  if (level <= maxLevel && inLi[level]) ol.writeString("</li>\n");
1477  ol.writeString("</ul>\n");
1478  ol.writeString("</div>\n");
1479  ol.popGeneratorState();
1480  }
1481 
1482  if (localToc.isDocbookEnabled())
1483  {
1484  ol.pushGeneratorState();
1486  ol.writeString(" <toc>\n");
1487  ol.writeString(" <title>" + theTranslator->trRTFTableOfContents() + "</title>\n");
1488  int level=1,l;
1489  int maxLevel = localToc.docbookLevel();
1490  BoolVector inLi(maxLevel+1,false);
1491  for (const SectionInfo *si : m_impl->sectionRefs)
1492  {
1493  SectionType type = si->type();
1494  if (isSection(type))
1495  {
1496  //printf(" level=%d title=%s\n",level,qPrint(si->title));
1497  int nextLevel = (int)type;
1498  if (nextLevel>level)
1499  {
1500  for (l=level;l<nextLevel;l++)
1501  {
1502  if (l < maxLevel) ol.writeString(" <tocdiv>\n");
1503  }
1504  }
1505  else if (nextLevel<level)
1506  {
1507  for (l=level;l>nextLevel;l--)
1508  {
1509  inLi[l]=FALSE;
1510  if (l <= maxLevel) ol.writeString(" </tocdiv>\n");
1511  }
1512  }
1513  if (nextLevel <= maxLevel)
1514  {
1515  QCString titleDoc = convertToDocBook(si->title());
1516  ol.writeString(" <tocentry>" +
1517  (si->title().isEmpty()?si->label():titleDoc) +
1518  "</tocentry>\n");
1519  }
1520  inLi[nextLevel]=TRUE;
1521  level = nextLevel;
1522  }
1523  }
1524  if (level > maxLevel) level = maxLevel;
1525  while (level>1 && level <= maxLevel)
1526  {
1527  inLi[level]=FALSE;
1528  ol.writeString("</tocdiv>\n");
1529  level--;
1530  }
1531  ol.writeString(" </toc>\n");
1532  ol.popGeneratorState();
1533  }
1534 
1535  if (localToc.isLatexEnabled())
1536  {
1537  ol.pushGeneratorState();
1539  int maxLevel = localToc.latexLevel();
1540 
1541  ol.writeString("\\etocsetnexttocdepth{"+QCString().setNum(maxLevel)+"}\n");
1542 
1543  ol.writeString("\\localtableofcontents\n");
1544  ol.popGeneratorState();
1545  }
1546 }

引用了 convertToDocBook(), convertToHtml(), OutputList::disableAllBut(), OutputGenerator::Docbook, LocalToc::docbookLevel(), SectionRefs::empty(), FALSE, OutputGenerator::Html, LocalToc::htmlLevel(), LocalToc::isDocbookEnabled(), QCString::isEmpty(), LocalToc::isHtmlEnabled(), LocalToc::isLatexEnabled(), isSection(), SectionInfo::label(), OutputGenerator::Latex, LocalToc::latexLevel(), m_impl, OutputList::popGeneratorState(), OutputList::pushGeneratorState(), DefinitionImpl::IMPL::sectionRefs, theTranslator, SectionInfo::title(), Translator::trRTFTableOfContents(), TRUE, SectionInfo::type() , 以及 OutputList::writeString().

被这些函数引用 DefinitionMixin< DirDef >::writeToc().

◆ xrefListItems()

const RefItemVector & DefinitionImpl::xrefListItems ( ) const

在文件 definition.cpp1294 行定义.

1295 {
1296  return m_impl->xrefListItems;
1297 }

引用了 m_impl , 以及 DefinitionImpl::IMPL::xrefListItems.

被这些函数引用 DefinitionMixin< DirDef >::xrefListItems().

类成员变量说明

◆ m_impl

IMPL* DefinitionImpl::m_impl
private

在文件 definitionimpl.h152 行定义.

被这些函数引用 _getXRefListId(), _setBriefDescription(), _setDocumentation(), _setInbodyDocumentation(), _setSymbolName(), _symbolName(), _writeSourceRefList(), addSectionsToDefinition(), addSectionsToIndex(), addSourceReferencedBy(), addSourceReferences(), briefDescription(), briefDescriptionAsTooltip(), briefFile(), briefLine(), computeTooltip(), DefinitionImpl(), docFile(), docLine(), documentation(), getBodyDef(), getDefColumn(), getDefFileExtension(), getDefFileName(), getDefLine(), getEndBodyLine(), getLanguage(), getOuterScope(), getReference(), getReferencedByMembers(), getReferencesMembers(), getSectionRefs(), getSourceAnchor(), getSourceFileBase(), getStartBodyLine(), getStartDefLine(), hasDocumentation(), hasSections(), hasSourceReffedBy(), hasSourceRefs(), hasSources(), hasUserDocumentation(), id(), inbodyDocumentation(), inbodyFile(), inbodyLine(), isAnonymous(), isArtificial(), isHidden(), isReference(), isVisible(), isVisibleInProject(), localName(), makePartOfGroup(), mergeReferencedBy(), mergeReferences(), mergeRefItems(), name(), navigationPathAsString(), partOfGroups(), pathFragment(), qualifiedName(), setArtificial(), setBodyDef(), setBodySegment(), setDefFile(), setHidden(), setId(), setLanguage(), setLocalName(), setName(), setOuterScope(), setReference(), setRefItems(), symbolName(), writeDocAnchorsToTagFile(), writeInlineCode(), writeSourceDef(), writeSourceReffedBy(), writeSourceRefs(), writeToc(), xrefListItems() , 以及 ~DefinitionImpl().


该类的文档由以下文件生成:
OutputList::disableAllBut
void disableAllBut(OutputGenerator::OutputType o)
Definition: outputlist.cpp:76
qsnprintf
#define qsnprintf
Definition: qcstring.h:57
DefinitionImpl::IMPL::docSignatures
QCString docSignatures
Definition: definition.cpp:62
DefinitionImpl::getReference
QCString getReference() const
Definition: definition.cpp:1709
writeMarkerList
void writeMarkerList(OutputList &ol, const std::string &markerText, size_t numMarkers, std::function< void(size_t)> replaceFunc)
Definition: util.cpp:1096
toGroupDef
GroupDef * toGroupDef(Definition *d)
Definition: groupdef.cpp:1766
DefinitionImpl::IMPL::defColumn
int defColumn
Definition: definition.cpp:87
FileDef::getSourceFileBase
virtual QCString getSourceFileBase() const =0
BodyInfo::fileDef
const FileDef * fileDef
file definition containing the function body
Definition: definition.h:68
Config_getEnum
#define Config_getEnum(name)
Definition: config.h:35
Definition::TypeMember
@ TypeMember
Definition: definition.h:90
Definition
The common base class of all entity definitions found in the sources.
Definition: definition.h:76
MemberDef::isSignal
virtual bool isSignal() const =0
DefinitionImpl::inbodyFile
QCString inbodyFile() const
Definition: definition.cpp:1671
removeFromMap
static void removeFromMap(const QCString &name, Definition *d)
Definition: definition.cpp:217
Definition::isLinkable
virtual bool isLinkable() const =0
OutputList::docify
void docify(const QCString &s)
Definition: outputlist.h:137
DefinitionImpl::briefDescription
QCString briefDescription(bool abbreviate=FALSE) const
Definition: definition.cpp:1625
SectionRefs::add
void add(const SectionInfo *si)
Adds a non-owning section reference.
Definition: section.h:113
isUTF8CharUpperCase
bool isUTF8CharUpperCase(const std::string &input, size_t pos)
Returns true iff the input string at byte position pos holds an upper case character.
Definition: utf8.cpp:218
QCString::length
uint length() const
Returns the length of the string, not counting the 0-terminator.
Definition: qcstring.h:147
Doxygen::tagDestinationMap
static StringMap tagDestinationMap
Definition: doxygen.h:98
DefinitionImpl::m_impl
IMPL * m_impl
Definition: definitionimpl.h:152
Htags::useHtags
static bool useHtags
Definition: htags.h:23
DefinitionImpl::inbodyLine
int inbodyLine() const
Definition: definition.cpp:1666
DefinitionImpl::IMPL::symbolName
QCString symbolName
Definition: definition.cpp:85
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty
Definition: qcstring.h:144
DefinitionImpl::IMPL::isSymbol
bool isSymbol
Definition: definition.cpp:84
DocInfo::doc
QCString doc
Definition: definition.h:48
DefinitionImpl::IMPL::referencedByMembers
MemberVector referencedByMembers
Definition: definition.cpp:90
Doxygen::indexList
static IndexList * indexList
Definition: doxygen.h:114
BoolVector
std::vector< bool > BoolVector
Definition: containers.h:34
GroupDef::groupTitle
virtual QCString groupTitle() const =0
Definition::TypePage
@ TypePage
Definition: definition.h:93
OutputList::writeString
void writeString(const QCString &text)
Definition: outputlist.h:111
DefinitionImpl::docLine
int docLine() const
Definition: definition.cpp:1567
BriefInfo::file
QCString file
Definition: definition.h:59
RefItem
This struct represents an item in the list of references.
Definition: reflist.h:30
IndexList::decContentsDepth
void decContentsDepth()
Definition: index.h:95
Definition::toDefinitionImpl_
virtual const DefinitionImpl * toDefinitionImpl_() const =0
DefinitionImpl::IMPL::isArtificial
bool isArtificial
Definition: definition.cpp:70
toMemberDef
MemberDef * toMemberDef(Definition *d)
Definition: memberdef.cpp:6088
Translator::trDefinedAtLineInSourceFile
virtual QCString trDefinedAtLineInSourceFile()=0
DefinitionImpl::IMPL::briefSignatures
QCString briefSignatures
Definition: definition.cpp:61
MemberDef::isPrototype
virtual bool isPrototype() const =0
DefinitionImpl::IMPL::setDefFileName
void setDefFileName(const QCString &df)
Definition: definition.cpp:102
Doxygen::globalScope
static NamespaceDefMutable * globalScope
Definition: doxygen.h:102
DefinitionImpl::getLanguage
SrcLangExt getLanguage() const
Definition: definition.cpp:1814
QCString::str
std::string str() const
Definition: qcstring.h:442
DefinitionImpl::IMPL::referencesMembers
MemberVector referencesMembers
Definition: definition.cpp:89
DocInfo::file
QCString file
Definition: definition.h:50
Definition::isHidden
virtual bool isHidden() const =0
DefinitionImpl::IMPL::partOfGroups
GroupList partOfGroups
Definition: definition.cpp:55
Definition::TypeGroup
@ TypeGroup
Definition: definition.h:91
matchExcludedSymbols
static bool matchExcludedSymbols(const QCString &name)
Definition: definition.cpp:148
err
void err(const char *fmt,...)
Definition: message.cpp:203
SectionRefs::end
const_iterator end() const
Definition: section.h:120
DefinitionImpl::IMPL::outerScope
Definition * outerScope
Definition: definition.cpp:73
QCString::at
char & at(size_t i)
Returns a reference to the character at index i.
Definition: qcstring.h:477
QCString::find
int find(char c, int index=0, bool cs=TRUE) const
Definition: qcstring.cpp:38
Translator::trRTFTableOfContents
virtual QCString trRTFTableOfContents()=0
Definition::pathFragment
virtual QCString pathFragment() const =0
SectionInfo::generated
bool generated() const
Definition: section.h:71
DefinitionImpl::getSourceFileBase
QCString getSourceFileBase() const
Definition: definition.cpp:859
abbreviate
static QCString abbreviate(const QCString &s, const QCString &name)
Definition: definition.cpp:1592
SectionType
SectionType
enum representing the various types of sections and entities that can be referred to.
Definition: section.h:28
DefinitionImpl::_setBriefDescription
void _setBriefDescription(const QCString &b, const QCString &briefFile, int briefLine)
Definition: definition.cpp:489
DefinitionImpl::_setInbodyDocumentation
void _setInbodyDocumentation(const QCString &d, const QCString &docFile, int docLine)
Definition: definition.cpp:552
MemberDef::getReference
virtual QCString getReference() const =0
SectionInfo::setDefinition
void setDefinition(Definition *d)
Definition: section.h:79
SectionInfo::label
QCString label() const
Definition: section.h:65
SectionInfo::ref
QCString ref() const
Definition: section.h:68
MemberDef::isObjCMethod
virtual bool isObjCMethod() const =0
BodyInfo
Data associated with description found in the body.
Definition: definition.h:63
BriefInfo::doc
QCString doc
Definition: definition.h:56
DefinitionImpl::localName
QCString localName() const
Definition: definition.cpp:1241
end
DirIterator end(const DirIterator &) noexcept
Definition: dir.cpp:128
SectionRefs::empty
bool empty() const
Definition: section.h:121
toPageDef
PageDef * toPageDef(Definition *d)
Definition: pagedef.cpp:408
MemberDef::isLinkable
virtual bool isLinkable() const =0
DocInfo::line
int line
Definition: definition.h:49
uint
unsigned uint
Definition: qcstring.h:40
MemberDef::anchor
virtual QCString anchor() const =0
Definition::getBodyDef
virtual const FileDef * getBodyDef() const =0
Definition::qualifiedName
virtual QCString qualifiedName() const =0
addHtmlExtensionIfMissing
QCString addHtmlExtensionIfMissing(const QCString &fName)
Definition: util.cpp:5275
MemberDef
A model of a class/file/namespace member symbol.
Definition: memberdef.h:45
OutputGenerator::Latex
@ Latex
Definition: outputgen.h:333
DocInfo
Data associated with a detailed description.
Definition: definition.h:46
DefinitionImpl::IMPL
Private data associated with a Symbol DefinitionImpl object.
Definition: definition.cpp:41
DefinitionImpl::getOuterScope
Definition * getOuterScope() const
Definition: definition.cpp:1753
DefinitionImpl::IMPL::name
QCString name
Definition: definition.cpp:83
QCString::stripWhiteSpace
QCString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
Definition: qcstring.h:243
DefinitionImpl::_setDocumentation
void _setDocumentation(const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace, bool atTop)
Definition: definition.cpp:437
uchar
unsigned char uchar
Definition: qcstring.h:38
QCString::left
QCString left(size_t len) const
Definition: qcstring.h:212
MemberVector::empty
bool empty() const
Definition: memberlist.h:47
FileDef::name
virtual QCString name() const =0
IndexList::addContentsItem
void addContentsItem(bool isDir, const QCString &name, const QCString &ref, const QCString &file, const QCString &anchor, bool separateIndex=FALSE, bool addToNavIndex=FALSE, const Definition *def=0)
Definition: index.h:97
SectionRefs::begin
const_iterator begin() const
Definition: section.h:119
BriefInfo::tooltip
QCString tooltip
Definition: definition.h:57
Doxygen::parserManager
static ParserManager * parserManager
Definition: doxygen.h:111
DefinitionImpl::IMPL::sectionRefs
SectionRefs sectionRefs
Definition: definition.cpp:50
DefinitionImpl::name
QCString name() const
Definition: definition.cpp:1878
Definition::TypeFile
@ TypeFile
Definition: definition.h:88
DefinitionImpl::_writeSourceRefList
void _writeSourceRefList(OutputList &ol, const QCString &scopeName, const QCString &text, const std::unordered_map< std::string, const MemberDef * > &members, bool) const
Definition: definition.cpp:1027
Translator::trReferences
virtual QCString trReferences()=0
DefinitionImpl
Definition: definitionimpl.h:26
BriefInfo
Data associated with a brief description.
Definition: definition.h:54
MemberDef::isSlot
virtual bool isSlot() const =0
DefinitionImpl::IMPL::xrefListItems
RefItemVector xrefListItems
Definition: definition.cpp:54
QCString::simplifyWhiteSpace
QCString simplifyWhiteSpace() const
return a copy of this string with leading and trailing whitespace removed and multiple whitespace cha...
Definition: qcstring.cpp:180
DefinitionImpl::_docsAlreadyAdded
bool _docsAlreadyAdded(const QCString &doc, QCString &sigList)
Definition: definition.cpp:415
theTranslator
Translator * theTranslator
Definition: language.cpp:156
Definition::displayName
virtual QCString displayName(bool includeScope=TRUE) const =0
Definition::name
virtual QCString name() const =0
DefinitionImpl::docFile
QCString docFile() const
Definition: definition.cpp:1572
SectionManager
singleton class that owns the list of all sections
Definition: section.h:130
parseCommentAsText
QCString parseCommentAsText(const Definition *scope, const MemberDef *md, const QCString &doc, const QCString &fileName, int lineNr)
Definition: util.cpp:5738
IndexList::incContentsDepth
void incContentsDepth()
Definition: index.h:93
lastUTF8CharIsMultibyte
bool lastUTF8CharIsMultibyte(const std::string &input)
Returns true iff the last character in input is a multibyte character.
Definition: utf8.cpp:212
DefinitionImpl::IMPL::isAnonymous
bool isAnonymous
Definition: definition.cpp:71
DefinitionImpl::IMPL::inbodyDocs
DocInfo * inbodyDocs
Definition: definition.cpp:58
addToMap
static void addToMap(const QCString &name, Definition *d)
Definition: definition.cpp:203
DefinitionImpl::IMPL::init
void init(const QCString &df, const QCString &n)
Definition: definition.cpp:112
DefinitionImpl::IMPL::ref
QCString ref
Definition: definition.cpp:67
getLanguageSpecificSeparator
QCString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope)
Returns the scope separator to use given the programming language lang
Definition: util.cpp:6545
MemberDef::isFunction
virtual bool isFunction() const =0
OutputList::endParagraph
void endParagraph()
Definition: outputlist.h:109
readCodeFragment
bool readCodeFragment(const QCString &fileName, int &startLine, int &endLine, QCString &result)
Reads a fragment from file fileName starting with line startLine and ending with line endLine.
Definition: definition.cpp:719
SectionInfo::fileName
QCString fileName() const
Definition: section.h:70
ParserManager::getCodeParser
std::unique_ptr< CodeParserInterface > getCodeParser(const QCString &extension)
Gets the interface to the parser associated with a given extension.
Definition: parserintf.h:217
TRUE
#define TRUE
Definition: qcstring.h:36
Definition::getOutputFileBase
virtual QCString getOutputFileBase() const =0
RefList::listName
QCString listName() const
Definition: reflist.h:100
Definition::getStartBodyLine
virtual int getStartBodyLine() const =0
BodyInfo::endLine
int endLine
line number of the end of the definition's body
Definition: definition.h:67
PageDef::hasTitle
virtual bool hasTitle() const =0
DefinitionImpl::briefFile
QCString briefFile() const
Definition: definition.cpp:1654
DefinitionImpl::IMPL::details
DocInfo * details
Definition: definition.cpp:57
Definition::navigationPathAsString
virtual QCString navigationPathAsString() const =0
DefinitionImpl::getSourceAnchor
QCString getSourceAnchor() const
Definition: definition.cpp:872
OutputGenerator::Html
@ Html
Definition: outputgen.h:333
LinkedMap::find
const T * find(const std::string &key) const
Find an object given the key.
Definition: linkedmap.h:60
DefinitionImpl::IMPL::id
QCString id
Definition: definition.cpp:81
BodyInfo::startLine
int startLine
line number of the start of the definition's body
Definition: definition.h:66
DefinitionImpl::IMPL::lang
SrcLangExt lang
Definition: definition.cpp:79
SectionInfo::title
QCString title() const
Definition: section.h:66
Translator::trReferencedBy
virtual QCString trReferencedBy()=0
OutputList::writeNavigationPath
void writeNavigationPath(const QCString &s)
Definition: outputlist.h:353
SectionManager::add
SectionInfo * add(const SectionInfo &si)
Add a new section given the data of an existing section.
Definition: section.h:135
Definition::TypeClass
@ TypeClass
Definition: definition.h:87
Definition::definitionType
virtual DefType definitionType() const =0
DefinitionImpl::partOfGroups
const GroupList & partOfGroups() const
Definition: definition.cpp:1739
OutputList::popGeneratorState
void popGeneratorState()
Definition: outputlist.cpp:134
OutputGenerator::Docbook
@ Docbook
Definition: outputgen.h:333
DefinitionImpl::IMPL::body
BodyInfo * body
Definition: definition.cpp:60
OutputList::startCodeFragment
void startCodeFragment(const QCString &style)
Definition: outputlist.h:241
BriefInfo::line
int line
Definition: definition.h:58
QCString::mid
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
Definition: qcstring.h:224
MemberDef::getOutputFileBase
virtual QCString getOutputFileBase() const =0
DefinitionImpl::setName
void setName(const QCString &name)
Definition: definition.cpp:281
DefinitionImpl::IMPL::defFileName
QCString defFileName
Definition: definition.cpp:76
Definition::anchor
virtual QCString anchor() const =0
Config_getBool
#define Config_getBool(name)
Definition: config.h:33
DefinitionImpl::IMPL::sourceRefsDict
std::unordered_map< std::string, const MemberDef * > sourceRefsDict
Definition: definition.cpp:53
SectionRefs::find
const SectionInfo * find(const QCString &label) const
Returns a constant pointer to the section info given a section label or nullptr if no section with th...
Definition: section.h:106
MemberDef::getScopeString
virtual QCString getScopeString() const =0
SectionManager::instance
static SectionManager & instance()
returns a reference to the singleton
Definition: section.h:172
DefinitionImpl::IMPL::defLine
int defLine
Definition: definition.cpp:86
RefItem::list
RefList * list() const
Definition: reflist.h:52
Definition::getOuterScope
virtual Definition * getOuterScope() const =0
QCString::startsWith
bool startsWith(const char *s) const
Definition: qcstring.h:408
OutputList::parseText
void parseText(const QCString &textStr)
Definition: outputlist.cpp:179
FileDef::absFilePath
virtual QCString absFilePath() const =0
DefinitionImpl::IMPL::qualifiedName
QCString qualifiedName
Definition: definition.cpp:66
DefinitionImpl::briefLine
int briefLine() const
Definition: definition.cpp:1649
DefinitionImpl::IMPL::localName
QCString localName
Definition: definition.cpp:64
stripLeadingAndTrailingEmptyLines
QCString stripLeadingAndTrailingEmptyLines(const QCString &s, int &docLine)
Special version of QCString::stripWhiteSpace() that only strips completely blank lines.
Definition: util.cpp:5394
DefinitionImpl::navigationPathAsString
QCString navigationPathAsString() const
Definition: definition.cpp:1337
isSection
constexpr bool isSection(SectionType type)
return true if type is a section, and false if it is a page, anchor or table.
Definition: section.h:40
SectionInfo
class that provide information about a section.
Definition: section.h:49
convertToDocBook
QCString convertToDocBook(const QCString &s)
Definition: util.cpp:3999
ASSERT
#define ASSERT(x)
Definition: qcstring.h:44
OutputList::pushGeneratorState
void pushGeneratorState()
Definition: outputlist.cpp:126
QCString::data
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string
Definition: qcstring.h:153
DefinitionImpl::IMPL::defFileExt
QCString defFileExt
Definition: definition.cpp:77
convertToXML
QCString convertToXML(const QCString &s, bool keepEntities)
Definition: util.cpp:3948
PageDef::title
virtual QCString title() const =0
toFileDef
FileDef * toFileDef(Definition *d)
Definition: filedef.cpp:1778
DefinitionImpl::hasSources
bool hasSources() const
Definition: definition.cpp:956
DefinitionImpl::id
QCString id() const
Definition: definition.cpp:301
DefinitionImpl::IMPL::def
Definition * def
Definition: definition.cpp:48
Definition::isLinkableInProject
virtual bool isLinkableInProject() const =0
OutputList::writeObjectLink
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
Definition: outputlist.h:141
Definition::xrefListItems
virtual const RefItemVector & xrefListItems() const =0
DefinitionImpl::IMPL::sourceRefByDict
std::unordered_map< std::string, const MemberDef * > sourceRefByDict
Definition: definition.cpp:52
FileDef::getDirDef
virtual DirDef * getDirDef() const =0
RefItem::id
int id() const
Definition: reflist.h:51
SectionInfo::type
SectionType type() const
Definition: section.h:67
BodyInfo::defLine
int defLine
line number of the start of the definition
Definition: definition.h:65
DefinitionImpl::IMPL::brief
BriefInfo * brief
Definition: definition.cpp:59
DefinitionImpl::IMPL::hidden
bool hidden
Definition: definition.cpp:69
QCString::right
QCString right(size_t len) const
Definition: qcstring.h:217
OutputList::endCodeFragment
void endCodeFragment(const QCString &style)
Definition: outputlist.h:243
QCString::prepend
QCString & prepend(const char *s)
Definition: qcstring.h:339
QCString::resize
bool resize(size_t newlen)
Resizes the string to hold newlen characters (this value should also count the 0-terminator).
Definition: qcstring.h:164
QCString::sprintf
QCString & sprintf(const char *format,...)
Definition: qcstring.cpp:24
convertToHtml
QCString convertToHtml(const QCString &s, bool keepEntities)
Definition: util.cpp:4063
refMapToVector
static MemberVector refMapToVector(const std::unordered_map< std::string, const MemberDef * > &map)
Definition: definition.cpp:1009
Doxygen::clangUsrMap
static ClangUsrMap * clangUsrMap
Definition: doxygen.h:107
OutputList::startParagraph
void startParagraph(const QCString &classDef=QCString())
Definition: outputlist.h:107
Translator::trWriteList
virtual QCString trWriteList(int numEntries)=0
FALSE
#define FALSE
Definition: qcstring.h:33
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108