Doxygen
Loading...
Searching...
No Matches
NamespaceDefImpl Class Reference
Inheritance diagram for NamespaceDefImpl:
Collaboration diagram for NamespaceDefImpl:

Public Member Functions

 NamespaceDefImpl (const QCString &defFileName, int defLine, int defColumn, const QCString &name, const QCString &ref=QCString(), const QCString &refFile=QCString(), const QCString &type=QCString(), bool isPublished=false)
 ~NamespaceDefImpl () override
DefType definitionType () const override
CodeSymbolType codeSymbolType () const override
QCString getOutputFileBase () const override
QCString anchor () const override
void insertUsedFile (FileDef *fd) override
void writeDocumentation (OutputList &ol) override
void writeMemberPages (OutputList &ol) override
void writeQuickMemberLinks (OutputList &ol, const MemberDef *currentMd) const override
void writeTagFile (TextStream &) override
void insertClass (ClassDef *cd) override
void insertConcept (ConceptDef *cd) override
void insertNamespace (NamespaceDef *nd) override
void insertMember (MemberDef *md) override
void computeAnchors () override
void countMembers () override
int numDocMembers () const override
void addUsingDirective (NamespaceDef *nd) override
const LinkedRefMap< NamespaceDef > & getUsedNamespaces () const override
void addUsingDeclaration (const Definition *cd) override
const LinkedRefMap< const Definition > & getUsedDefinitions () const override
void combineUsingRelations (NamespaceDefSet &visitedNamespace) override
QCString displayName (bool=TRUE) const override
void setInline (bool isInline) override
bool isConstantGroup () const override
bool isModule () const override
bool isLibrary () const override
bool isInline () const override
bool isLinkableInProject () const override
bool isLinkable () const override
bool isVisibleInHierarchy () const override
bool hasDetailedDescription () const override
void addMembersToMemberGroup () override
void distributeMemberGroupDocumentation () override
void findSectionsInDocumentation () override
void sortMemberLists () override
const DefinitionfindInnerCompound (const QCString &name) const override
void addInnerCompound (Definition *d) override
void addListReferences () override
void addRequirementReferences () override
void setFileName (const QCString &fn) override
bool subGrouping () const override
MemberListgetMemberList (MemberListType lt) const override
const MemberListsgetMemberLists () const override
const MemberDefgetMemberByName (const QCString &) const override
const MemberGroupListgetMemberGroups () const override
ClassLinkedRefMap getClasses () const override
ClassLinkedRefMap getInterfaces () const override
ClassLinkedRefMap getStructs () const override
ClassLinkedRefMap getExceptions () const override
NamespaceLinkedRefMap getNamespaces () const override
ConceptLinkedRefMap getConcepts () const override
void setName (const QCString &name) override
QCString title () const override
QCString compoundTypeString () const override
void setMetaData (const QCString &m) override
int countVisibleMembers () const override
void writeSummaryLinks (OutputList &ol) const override
void writePageNavigation (OutputList &ol) const override
Public Member Functions inherited from DefinitionMixin< NamespaceDefMutable >
 DefinitionMixin (const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
DefinitionMixinoperator= (const DefinitionMixin &other)
 ~DefinitionMixin () override=default
bool isAlias () const override
const QCStringname () const override
bool isAnonymous () const override
const QCStringlocalName () const override
QCString qualifiedName () const override
QCString symbolName () const override
QCString getSourceFileBase () const override
QCString getSourceAnchor () const override
QCString documentation () const override
int docLine () const override
QCString docFile () const override
QCString briefDescription (bool abbreviate=FALSE) const override
QCString briefDescriptionAsTooltip () const override
int briefLine () const override
QCString inbodyDocumentation () const override
QCString inbodyFile () const override
int inbodyLine () const override
QCString briefFile () const override
QCString getDefFileName () const override
QCString getDefFileExtension () const override
int getDefLine () const override
int getDefColumn () const override
bool hasDocumentation () const override
bool hasUserDocumentation () const override
bool isVisibleInProject () const override
bool isVisible () const override
bool isHidden () const override
bool isArtificial () const override
bool isExported () const override
QCString getReference () const override
bool isReference () const override
QCString externalReference (const QCString &relPath) const override
int getStartDefLine () const override
int getStartBodyLine () const override
int getEndBodyLine () const override
const FileDefgetBodyDef () const override
SrcLangExt getLanguage () const override
const GroupListpartOfGroups () const override
bool isLinkableViaGroup () const override
const RefItemVectorxrefListItems () const override
const RequirementRefsrequirementReferences () const override
DefinitiongetOuterScope () const override
const MemberVectorgetReferencesMembers () const override
const MemberVectorgetReferencedByMembers () const override
bool hasSections () const override
bool hasSources () const override
bool hasBriefDescription () const override
QCString id () const override
const SectionRefsgetSectionRefs () const override
void setId (const QCString &name) override
void setDefFile (const QCString &df, int defLine, int defColumn) override
void setDocumentation (const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE) override
void setBriefDescription (const QCString &brief, const QCString &briefFile, int briefLine) override
void setInbodyDocumentation (const QCString &doc, const QCString &docFile, int docLine) override
void setReference (const QCString &r) override
void addSectionsToDefinition (const std::vector< const SectionInfo * > &anchorList) override
void setBodySegment (int defLine, int bls, int ble) override
void setBodyDef (const FileDef *fd) override
void addSourceReferencedBy (MemberDef *md, const QCString &sourceRefName) override
void addSourceReferences (MemberDef *md, const QCString &sourceRefName) override
void setRefItems (const RefItemVector &sli) override
void setRequirementReferences (const RequirementRefs &rqli) override
void mergeRefItems (Definition *def) override
void mergeReferences (const Definition *other) override
void mergeReferencedBy (const Definition *other) override
void setOuterScope (Definition *def) override
void setHidden (bool b) override
void setArtificial (bool b) override
void setExported (bool b) override
void setLanguage (SrcLangExt lang) override
void writeSourceDef (OutputList &ol) const override
void writeInlineCode (OutputList &ol, const QCString &scopeName) const override
bool hasSourceRefs () const override
bool hasSourceReffedBy () const override
void writeSourceRefs (OutputList &ol, const QCString &scopeName) const override
void writeSourceReffedBy (OutputList &ol, const QCString &scopeName) const override
bool hasRequirementRefs () const override
void writeRequirementRefs (OutputList &ol) const override
void makePartOfGroup (GroupDef *gd) override
void writeNavigationPath (OutputList &ol) const override
QCString navigationPathAsString () const override
QCString pathFragment () const override
void writeDocAnchorsToTagFile (TextStream &fs) const override
void setLocalName (const QCString &name) override
void writeToc (OutputList &ol, const LocalToc &lt) const override
void computeTooltip () override
void _setSymbolName (const QCString &name) override
QCString _symbolName () const override

Private Types

enum  { NAMESPACE , MODULE , CONSTANT_GROUP , LIBRARY }

Private Member Functions

void addMemberToList (MemberListType lt, MemberDef *md)
void writeMemberDeclarations (OutputList &ol, MemberListType lt, const QCString &title)
void writeMemberDocumentation (OutputList &ol, MemberListType lt, const QCString &title)
void writeDetailedDescription (OutputList &ol, const QCString &title)
void writeBriefDescription (OutputList &ol)
void startMemberDeclarations (OutputList &ol)
void endMemberDeclarations (OutputList &ol)
void writeClassDeclarations (OutputList &ol, const QCString &title, const ClassLinkedRefMap &d)
void writeConcepts (OutputList &ol, const QCString &title)
void writeInlineClasses (OutputList &ol)
void writeMemberGroups (OutputList &ol)
void writeAuthorSection (OutputList &ol)
void startMemberDocumentation (OutputList &ol)
void endMemberDocumentation (OutputList &ol)
void addNamespaceAttributes (OutputList &ol)
void writeClassesToTagFile (TextStream &, const ClassLinkedRefMap &d)
void writeConceptsToTagFile (TextStream &)
void setFileNameLocal (const QCString &fn)
void writeNamespaceDeclarations (OutputList &ol, const QCString &title, bool isConstantGroup=false)
void updateLocalName ()

Private Attributes

QCString fileName
FileList files
LinkedRefMap< NamespaceDefm_usingDirList
LinkedRefMap< const Definitionm_usingDeclList
LinkedRefMap< const Definitionm_innerCompounds
MemberLinkedRefMap m_allMembers
MemberLists m_memberLists
MemberGroupList m_memberGroups
ClassLinkedRefMap m_classes
ClassLinkedRefMap m_interfaces
ClassLinkedRefMap m_structs
ClassLinkedRefMap m_exceptions
ConceptLinkedRefMap m_concepts
NamespaceLinkedRefMap m_namespaces
bool m_subGrouping = false
enum NamespaceDefImpl:: { ... }  m_type
bool m_isPublished = false
QCString metaData
bool m_inline = false

Additional Inherited Members

Public Types inherited from Definition
enum  DefType {
  TypeClass = 0 , TypeFile = 1 , TypeNamespace = 2 , TypeModule = 3 ,
  TypeMember = 4 , TypeGroup = 5 , TypePackage = 6 , TypePage = 7 ,
  TypeDir = 8 , TypeConcept = 9
}

Detailed Description

Definition at line 54 of file namespacedef.cpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
NAMESPACE 
MODULE 
CONSTANT_GROUP 
LIBRARY 

Definition at line 167 of file namespacedef.cpp.

enum NamespaceDefImpl::@152056333015234071026257214045103374127312105332 m_type

Constructor & Destructor Documentation

◆ NamespaceDefImpl()

NamespaceDefImpl::NamespaceDefImpl ( const QCString & defFileName,
int defLine,
int defColumn,
const QCString & name,
const QCString & ref = QCString(),
const QCString & refFile = QCString(),
const QCString & type = QCString(),
bool isPublished = false )

Definition at line 272 of file namespacedef.cpp.

275 :
276 DefinitionMixin(df,dl,dc,name)
277 ,m_isPublished(isPublished)
278{
279 if (!fName.isEmpty())
280 {
281 if (!lref.isEmpty())
282 {
283 fileName = stripExtension(fName);
284 }
285 else
286 {
288 }
289 }
290 else
291 {
293 }
294 setReference(lref);
296 m_subGrouping=Config_getBool(SUBGROUPING);
297 if (type=="module")
298 {
299 m_type = MODULE;
300 }
301 else if (type=="constants")
302 {
304 }
305 else if (type=="library")
306 {
307 m_type = LIBRARY;
308 }
309 else
310 {
312 }
313
315}
virtual const QCString & name() const =0
void setReference(const QCString &r) override
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
void setFileNameLocal(const QCString &fn)
#define Config_getBool(name)
Definition config.h:33
#define FALSE
Definition qcstring.h:34
QCString stripExtension(const QCString &fName)
Definition util.cpp:4924
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:3485

References DefinitionMixin< NamespaceDefMutable >::DefinitionMixin(), QCString::isEmpty(), m_isPublished, and DefinitionMixin< NamespaceDefMutable >::name().

◆ ~NamespaceDefImpl()

NamespaceDefImpl::~NamespaceDefImpl ( )
override

Definition at line 334 of file namespacedef.cpp.

335{
336}

Member Function Documentation

◆ addInnerCompound()

void NamespaceDefImpl::addInnerCompound ( Definition * d)
overridevirtual

Reimplemented from DefinitionMixin< NamespaceDefMutable >.

Definition at line 391 of file namespacedef.cpp.

392{
393 //printf("%s:NamespaceDefImpl::addInnerCompound(%s)\n",qPrint(name()),qPrint(d->name()));
394 m_innerCompounds.add(d->localName(),d);
396 {
398 }
400 {
402 }
404 {
406 }
407}
virtual const QCString & localName() const =0
virtual DefType definitionType() const =0
void insertNamespace(NamespaceDef *nd) override
void insertClass(ClassDef *cd) override
void insertConcept(ConceptDef *cd) override
LinkedRefMap< const Definition > m_innerCompounds
ClassDef * toClassDef(Definition *d)
ConceptDef * toConceptDef(Definition *d)
NamespaceDef * toNamespaceDef(Definition *d)

References Definition::definitionType(), insertClass(), insertConcept(), insertNamespace(), Definition::localName(), m_innerCompounds, toClassDef(), toConceptDef(), toNamespaceDef(), Definition::TypeClass, Definition::TypeConcept, and Definition::TypeNamespace.

◆ addListReferences()

void NamespaceDefImpl::addListReferences ( )
overridevirtual

Implements NamespaceDefMutable.

Definition at line 1268 of file namespacedef.cpp.

1269{
1271 qualifiedName(),
1272 getLanguage()==SrcLangExt::Fortran ?
1276 QCString(),
1277 this
1278 );
1279 for (const auto &mg : m_memberGroups)
1280 {
1281 mg->addListReferences(this);
1282 }
1283 for (auto &ml : m_memberLists)
1284 {
1285 if (ml->listType().isDocumentation())
1286 {
1287 ml->addListReferences(this);
1288 }
1289 }
1290}
QCString qualifiedName() const override
const RefItemVector & xrefListItems() const override
SrcLangExt getLanguage() const override
MemberGroupList m_memberGroups
QCString getOutputFileBase() const override
QCString displayName(bool=TRUE) const override
MemberLists m_memberLists
virtual QCString trNamespace(bool first_capital, bool singular)=0
virtual QCString trModule(bool first_capital, bool singular)=0
Translator * theTranslator
Definition language.cpp:71
#define TRUE
Definition qcstring.h:37
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
Definition util.cpp:4805

References addRefItem(), displayName(), DefinitionMixin< NamespaceDefMutable >::getLanguage(), getOutputFileBase(), m_memberGroups, m_memberLists, DefinitionMixin< NamespaceDefMutable >::qualifiedName(), theTranslator, TRUE, and DefinitionMixin< NamespaceDefMutable >::xrefListItems().

◆ addMembersToMemberGroup()

void NamespaceDefImpl::addMembersToMemberGroup ( )
overridevirtual

Implements NamespaceDefMutable.

Definition at line 443 of file namespacedef.cpp.

444{
445 for (auto &ml : m_memberLists)
446 {
447 if (ml->listType().isDeclaration())
448 {
450 }
451 }
452
453 // add members inside sections to their groups
454 for (const auto &mg : m_memberGroups)
455 {
456 if (mg->allMembersInSameSection() && m_subGrouping)
457 {
458 //printf("----> addToDeclarationSection(%s)\n",qPrint(mg->header()));
459 mg->addToDeclarationSection();
460 }
461 }
462}
void addMembersToMemberGroup() override

References addMembersToMemberGroup(), m_memberGroups, m_memberLists, and m_subGrouping.

Referenced by addMembersToMemberGroup().

◆ addMemberToList()

void NamespaceDefImpl::addMemberToList ( MemberListType lt,
MemberDef * md )
private

Definition at line 1460 of file namespacedef.cpp.

1461{
1462 bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS);
1463 bool sortMemberDocs = Config_getBool(SORT_MEMBER_DOCS);
1464 const auto &ml = m_memberLists.get(lt,MemberListContainer::Namespace);
1465 ml->setNeedsSorting(
1466 (ml->listType().isDeclaration() && sortBriefDocs) ||
1467 (ml->listType().isDocumentation() && sortMemberDocs));
1468 ml->push_back(md);
1469
1470 if (ml->listType().isDeclaration())
1471 {
1472 MemberDefMutable *mdm = toMemberDefMutable(md);
1473 if (mdm)
1474 {
1475 mdm->setSectionList(this,ml.get());
1476 }
1477 }
1478}
virtual void setSectionList(const Definition *container, const MemberList *sl)=0
MemberDefMutable * toMemberDefMutable(Definition *d)

References Config_getBool, m_memberLists, Namespace, MemberDefMutable::setSectionList(), and toMemberDefMutable().

Referenced by insertMember().

◆ addNamespaceAttributes()

void NamespaceDefImpl::addNamespaceAttributes ( OutputList & ol)
private

Definition at line 944 of file namespacedef.cpp.

945{
946 // UNO IDL constant groups may be published
947 if (getLanguage()==SrcLangExt::IDL && isConstantGroup() && m_isPublished)
948 {
951 ol.startLabels();
952 ol.writeLabel("published",false);
953 ol.endLabels();
955 }
956 else if (isExported())
957 {
960 ol.startLabels();
961 ol.writeLabel("export",false);
962 ol.endLabels();
964 }
965}
bool isConstantGroup() const override
void pushGeneratorState()
void disableAllBut(OutputType o)
void popGeneratorState()
void endLabels()
Definition outputlist.h:742
void writeLabel(const QCString &l, bool isLast)
Definition outputlist.h:740
void startLabels()
Definition outputlist.h:738

References OutputList::disableAllBut(), OutputList::endLabels(), DefinitionMixin< NamespaceDefMutable >::getLanguage(), Html, isConstantGroup(), DefinitionMixin< NamespaceDefMutable >::isExported(), m_isPublished, OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startLabels(), and OutputList::writeLabel().

Referenced by writeDocumentation().

◆ addRequirementReferences()

void NamespaceDefImpl::addRequirementReferences ( )
overridevirtual

Implements NamespaceDefMutable.

Definition at line 1292 of file namespacedef.cpp.

1293{
1295 for (const auto &mg : m_memberGroups)
1296 {
1297 mg->addRequirementReferences(this);
1298 }
1299 for (auto &ml : m_memberLists)
1300 {
1301 if (ml->listType().isDocumentation())
1302 {
1303 ml->addRequirementReferences(this);
1304 }
1305 }
1306}
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)

References RequirementManager::addRequirementRefsForSymbol(), RequirementManager::instance(), m_memberGroups, and m_memberLists.

◆ addUsingDeclaration()

void NamespaceDefImpl::addUsingDeclaration ( const Definition * cd)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 1240 of file namespacedef.cpp.

1241{
1242 m_usingDeclList.add(d->qualifiedName(),d);
1243}
LinkedRefMap< const Definition > m_usingDeclList

References m_usingDeclList, and Definition::qualifiedName().

Referenced by combineUsingRelations().

◆ addUsingDirective()

void NamespaceDefImpl::addUsingDirective ( NamespaceDef * nd)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 1234 of file namespacedef.cpp.

1235{
1236 m_usingDirList.add(nd->qualifiedName(),nd);
1237 //printf("%s: NamespaceDefImpl::addUsingDirective: %s:%zu\n",qPrint(name()),qPrint(nd->qualifiedName()),m_usingDirList.size());
1238}
virtual QCString qualifiedName() const =0
LinkedRefMap< NamespaceDef > m_usingDirList

References m_usingDirList, and Definition::qualifiedName().

Referenced by combineUsingRelations().

◆ anchor()

QCString NamespaceDefImpl::anchor ( ) const
inlineoverridevirtual

Returns the anchor within a page where this item can be found

Implements Definition.

Definition at line 68 of file namespacedef.cpp.

68{ return QCString(); }

◆ codeSymbolType()

CodeSymbolType NamespaceDefImpl::codeSymbolType ( ) const
inlineoverridevirtual

Used for syntax highlighting symbol class

Implements Definition.

Definition at line 65 of file namespacedef.cpp.

66 { return getLanguage()==SrcLangExt::Java ? CodeSymbolType::Package : CodeSymbolType::Namespace; }

References DefinitionMixin< NamespaceDefMutable >::getLanguage(), Namespace, and Package.

◆ combineUsingRelations()

void NamespaceDefImpl::combineUsingRelations ( NamespaceDefSet & visitedNamespace)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 1313 of file namespacedef.cpp.

1314{
1315 if (visitedNamespaces.find(this)!=visitedNamespaces.end()) return; // already processed
1316 visitedNamespaces.insert(this);
1317
1318 LinkedRefMap<NamespaceDef> usingDirList = m_usingDirList;
1319 for (auto &nd : usingDirList)
1320 {
1321 NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
1322 if (ndm)
1323 {
1324 ndm->combineUsingRelations(visitedNamespaces);
1325 }
1326 }
1327
1328 for (auto &nd : usingDirList)
1329 {
1330 // add used namespaces of namespace nd to this namespace
1331 for (const auto &und : nd->getUsedNamespaces())
1332 {
1333 addUsingDirective(und);
1334 }
1335 // add used classes of namespace nd to this namespace
1336 for (const auto &ud : nd->getUsedDefinitions())
1337 {
1339 }
1340 }
1341}
void addUsingDirective(NamespaceDef *nd) override
void addUsingDeclaration(const Definition *cd) override
virtual void combineUsingRelations(NamespaceDefSet &visitedNamespace)=0
NamespaceDefMutable * toNamespaceDefMutable(Definition *d)

References addUsingDeclaration(), addUsingDirective(), NamespaceDefMutable::combineUsingRelations(), m_usingDirList, and toNamespaceDefMutable().

◆ compoundTypeString()

QCString NamespaceDefImpl::compoundTypeString ( ) const
overridevirtual

Implements NamespaceDef.

Definition at line 1637 of file namespacedef.cpp.

1638{
1639 SrcLangExt lang = getLanguage();
1640 if (lang==SrcLangExt::Java)
1641 {
1642 return "package";
1643 }
1644 else if(lang==SrcLangExt::CSharp)
1645 {
1646 return "namespace";
1647 }
1648 else if (lang==SrcLangExt::Fortran)
1649 {
1650 return "module";
1651 }
1652 else if (lang==SrcLangExt::IDL)
1653 {
1654 if (isModule())
1655 {
1656 return "module";
1657 }
1658 else if (isConstantGroup())
1659 {
1660 return "constants";
1661 }
1662 else if (isLibrary())
1663 {
1664 return "library";
1665 }
1666 else
1667 {
1668 err_full(getDefFileName(),getDefLine(),"Internal inconsistency: namespace in IDL not module, library or constant group");
1669 }
1670 }
1671 return "namespace";
1672}
QCString getDefFileName() const override
bool isLibrary() const override
bool isModule() const override
#define err_full(file, line, fmt,...)
Definition message.h:132
SrcLangExt
Definition types.h:207

References err_full, DefinitionMixin< NamespaceDefMutable >::getDefFileName(), DefinitionMixin< NamespaceDefMutable >::getDefLine(), DefinitionMixin< NamespaceDefMutable >::getLanguage(), isConstantGroup(), isLibrary(), and isModule().

◆ computeAnchors()

void NamespaceDefImpl::computeAnchors ( )
overridevirtual

Implements NamespaceDefMutable.

Definition at line 587 of file namespacedef.cpp.

588{
589 MemberList *allMemberList = getMemberList(MemberListType::AllMembersList());
590 if (allMemberList) allMemberList->setAnchors();
591}
void setAnchors()
MemberList * getMemberList(MemberListType lt) const override

References getMemberList(), and MemberList::setAnchors().

◆ countMembers()

void NamespaceDefImpl::countMembers ( )
overridevirtual

Implements NamespaceDefMutable.

Definition at line 1214 of file namespacedef.cpp.

1215{
1216 for (auto &ml : m_memberLists)
1217 {
1218 ml->countDecMembers();
1219 ml->countDocMembers();
1220 }
1221 for (const auto &mg : m_memberGroups)
1222 {
1223 mg->countDecMembers();
1224 mg->countDocMembers();
1225 }
1226}

References m_memberGroups, and m_memberLists.

◆ countVisibleMembers()

int NamespaceDefImpl::countVisibleMembers ( ) const
overridevirtual

Implements NamespaceDef.

Definition at line 1343 of file namespacedef.cpp.

1344{
1345 int count=0;
1346 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Namespace))
1347 {
1348 if (lde->kind()==LayoutDocEntry::MemberDef)
1349 {
1350 const LayoutDocEntryMemberDef *lmd = dynamic_cast<const LayoutDocEntryMemberDef*>(lde.get());
1351 if (lmd)
1352 {
1353 MemberList *ml = getMemberList(lmd->type);
1354 if (ml)
1355 {
1356 for (const auto &md : *ml)
1357 {
1358 if (md->visibleInIndex())
1359 {
1360 count++;
1361 }
1362 }
1363 }
1364 }
1365 }
1366 }
1367 return count;
1368}
static LayoutDocManager & instance()
Returns a reference to this singleton.
Definition layout.cpp:1437
MemberListType type
Definition layout.h:137

References getMemberList(), LayoutDocManager::instance(), and LayoutDocEntryMemberDef::type.

◆ definitionType()

DefType NamespaceDefImpl::definitionType ( ) const
inlineoverridevirtual

Use this for dynamic inspection of the type of the derived class

Implements Definition.

Definition at line 64 of file namespacedef.cpp.

64{ return TypeNamespace; }

References definitionType(), and Definition::TypeNamespace.

Referenced by definitionType().

◆ displayName()

QCString NamespaceDefImpl::displayName ( bool includeScope = TRUE) const
overridevirtual

Returns the name of the definition as it appears in the output

Implements Definition.

Definition at line 1308 of file namespacedef.cpp.

1309{
1310 return makeDisplayName(this,includeScope);
1311}
static QCString makeDisplayName(const NamespaceDef *nd, bool includeScope)

References makeDisplayName().

Referenced by addListReferences(), title(), writeDocumentation(), writeMemberDocumentation(), and writeMemberPages().

◆ distributeMemberGroupDocumentation()

void NamespaceDefImpl::distributeMemberGroupDocumentation ( )
overridevirtual

Implements NamespaceDefMutable.

Definition at line 355 of file namespacedef.cpp.

356{
357 for (const auto &mg : m_memberGroups)
358 {
359 mg->distributeMemberGroupDocumentation();
360 }
361}

References m_memberGroups.

◆ endMemberDeclarations()

void NamespaceDefImpl::endMemberDeclarations ( OutputList & ol)
private

Definition at line 799 of file namespacedef.cpp.

800{
802}
void endMemberSections()
Definition outputlist.h:463

References OutputList::endMemberSections().

Referenced by writeDocumentation().

◆ endMemberDocumentation()

void NamespaceDefImpl::endMemberDocumentation ( OutputList & ol)
private

Definition at line 813 of file namespacedef.cpp.

814{
815 if (Config_getBool(SEPARATE_MEMBER_PAGES))
816 {
819 }
820}
static bool suppressDocWarnings
Definition doxygen.h:131
void enable(OutputType o)

References Config_getBool, OutputList::enable(), FALSE, Html, and Doxygen::suppressDocWarnings.

Referenced by writeDocumentation().

◆ findInnerCompound()

const Definition * NamespaceDefImpl::findInnerCompound ( const QCString & name) const
overridevirtual

Reimplemented from DefinitionMixin< NamespaceDefMutable >.

Definition at line 1250 of file namespacedef.cpp.

1251{
1252 if (n==nullptr) return nullptr;
1253 const Definition *d = m_innerCompounds.find(n);
1254 if (d==nullptr)
1255 {
1256 if (!m_usingDirList.empty())
1257 {
1258 d = m_usingDirList.find(n);
1259 }
1260 if (d==nullptr && !m_usingDeclList.empty())
1261 {
1262 d = m_usingDeclList.find(n);
1263 }
1264 }
1265 return d;
1266}

References m_innerCompounds, m_usingDeclList, and m_usingDirList.

◆ findSectionsInDocumentation()

void NamespaceDefImpl::findSectionsInDocumentation ( )
overridevirtual

Implements NamespaceDefMutable.

Definition at line 363 of file namespacedef.cpp.

364{
368 for (const auto &mg : m_memberGroups)
369 {
370 mg->findSectionsInDocumentation(this);
371 }
372 for (auto &ml : m_memberLists)
373 {
374 if (ml->listType().isDeclaration())
375 {
376 ml->findSectionsInDocumentation(this);
377 }
378 }
379}
QCString briefDescription(bool abbreviate=FALSE) const override
QCString inbodyDocumentation() const override
QCString documentation() const override
void docFindSections(const QCString &input, const Definition *d, const QCString &fileName)

References DefinitionMixin< NamespaceDefMutable >::briefDescription(), DefinitionMixin< NamespaceDefMutable >::docFile(), docFindSections(), DefinitionMixin< NamespaceDefMutable >::documentation(), DefinitionMixin< NamespaceDefMutable >::inbodyDocumentation(), m_memberGroups, and m_memberLists.

◆ getClasses()

ClassLinkedRefMap NamespaceDefImpl::getClasses ( ) const
inlineoverridevirtual

Returns the classes contained in this namespace

Implements NamespaceDef.

Definition at line 110 of file namespacedef.cpp.

110{ return m_classes; }
ClassLinkedRefMap m_classes

References m_classes.

◆ getConcepts()

ConceptLinkedRefMap NamespaceDefImpl::getConcepts ( ) const
inlineoverridevirtual

Returns the concepts contained in this namespace

Implements NamespaceDef.

Definition at line 115 of file namespacedef.cpp.

115{ return m_concepts; }
ConceptLinkedRefMap m_concepts

References m_concepts.

◆ getExceptions()

ClassLinkedRefMap NamespaceDefImpl::getExceptions ( ) const
inlineoverridevirtual

Returns the Slice exceptions contained in this namespace

Implements NamespaceDef.

Definition at line 113 of file namespacedef.cpp.

113{ return m_exceptions; }
ClassLinkedRefMap m_exceptions

References m_exceptions.

◆ getInterfaces()

ClassLinkedRefMap NamespaceDefImpl::getInterfaces ( ) const
inlineoverridevirtual

Returns the Slice interfaces contained in this namespace

Implements NamespaceDef.

Definition at line 111 of file namespacedef.cpp.

111{ return m_interfaces; }
ClassLinkedRefMap m_interfaces

References m_interfaces.

◆ getMemberByName()

const MemberDef * NamespaceDefImpl::getMemberByName ( const QCString & n) const
overridevirtual

Implements NamespaceDef.

Definition at line 1595 of file namespacedef.cpp.

1596{
1597 return m_allMembers.find(n);
1598}
MemberLinkedRefMap m_allMembers

References m_allMembers.

◆ getMemberGroups()

const MemberGroupList & NamespaceDefImpl::getMemberGroups ( ) const
inlineoverridevirtual

Returns the user defined member groups

Implements NamespaceDef.

Definition at line 109 of file namespacedef.cpp.

109{ return m_memberGroups; }

References m_memberGroups.

◆ getMemberList()

MemberList * NamespaceDefImpl::getMemberList ( MemberListType lt) const
overridevirtual

Implements NamespaceDef.

Definition at line 1518 of file namespacedef.cpp.

1519{
1520 for (auto &ml : m_memberLists)
1521 {
1522 if (ml->listType()==lt)
1523 {
1524 return ml.get();
1525 }
1526 }
1527 return nullptr;
1528}

References m_memberLists.

Referenced by computeAnchors(), countVisibleMembers(), insertMember(), numDocMembers(), writeDocumentation(), writeMemberDeclarations(), writeMemberDocumentation(), writeQuickMemberLinks(), writeSummaryLinks(), and writeTagFile().

◆ getMemberLists()

const MemberLists & NamespaceDefImpl::getMemberLists ( ) const
inlineoverridevirtual

Implements NamespaceDef.

Definition at line 107 of file namespacedef.cpp.

107{ return m_memberLists; }

References m_memberLists.

◆ getNamespaces()

NamespaceLinkedRefMap NamespaceDefImpl::getNamespaces ( ) const
inlineoverridevirtual

Returns the namespaces contained in this namespace

Implements NamespaceDef.

Definition at line 114 of file namespacedef.cpp.

114{ return m_namespaces; }
NamespaceLinkedRefMap m_namespaces

References m_namespaces.

◆ getOutputFileBase()

QCString NamespaceDefImpl::getOutputFileBase ( ) const
overridevirtual

Returns the base file name (without extension) of this definition. as it is referenced to/written to disk.

Implements Definition.

Definition at line 1245 of file namespacedef.cpp.

1246{
1247 return fileName;
1248}

References fileName.

Referenced by addListReferences(), writeBriefDescription(), writeDocumentation(), and writeTagFile().

◆ getStructs()

ClassLinkedRefMap NamespaceDefImpl::getStructs ( ) const
inlineoverridevirtual

Returns the Slice structs contained in this namespace

Implements NamespaceDef.

Definition at line 112 of file namespacedef.cpp.

112{ return m_structs; }
ClassLinkedRefMap m_structs

References m_structs.

◆ getUsedDefinitions()

const LinkedRefMap< const Definition > & NamespaceDefImpl::getUsedDefinitions ( ) const
inlineoverridevirtual

Implements NamespaceDef.

Definition at line 84 of file namespacedef.cpp.

84{ return m_usingDeclList; }

References m_usingDeclList.

◆ getUsedNamespaces()

const LinkedRefMap< NamespaceDef > & NamespaceDefImpl::getUsedNamespaces ( ) const
inlineoverridevirtual

Implements NamespaceDef.

Definition at line 82 of file namespacedef.cpp.

82{ return m_usingDirList; }

References m_usingDirList.

◆ hasDetailedDescription()

bool NamespaceDefImpl::hasDetailedDescription ( ) const
overridevirtual

Implements NamespaceDef.

Definition at line 593 of file namespacedef.cpp.

594{
595 bool repeatBrief = Config_getBool(REPEAT_BRIEF);
596 return ((!briefDescription().isEmpty() && repeatBrief) ||
597 !documentation().isEmpty());
598}

References DefinitionMixin< NamespaceDefMutable >::briefDescription(), Config_getBool, and DefinitionMixin< NamespaceDefMutable >::documentation().

Referenced by writeBriefDescription(), and writeDetailedDescription().

◆ insertClass()

void NamespaceDefImpl::insertClass ( ClassDef * cd)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 409 of file namespacedef.cpp.

410{
411 ClassLinkedRefMap *d = &m_classes;
412
413 if (Config_getBool(OPTIMIZE_OUTPUT_SLICE))
414 {
416 {
417 d = &m_interfaces;
418 }
419 else if (cd->compoundType()==ClassDef::Struct)
420 {
421 d = &m_structs;
422 }
423 else if (cd->compoundType()==ClassDef::Exception)
424 {
425 d = &m_exceptions;
426 }
427 }
428
429 d->add(cd->name(),cd);
430}
@ Interface
Definition classdef.h:112
@ Exception
Definition classdef.h:115
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e.
bool add(const char *k, T *obj)
Definition linkedmap.h:284

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), ClassDef::compoundType(), Config_getBool, ClassDef::Exception, ClassDef::Interface, m_classes, m_exceptions, m_interfaces, m_structs, Definition::name(), and ClassDef::Struct.

Referenced by addInnerCompound().

◆ insertConcept()

void NamespaceDefImpl::insertConcept ( ConceptDef * cd)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 432 of file namespacedef.cpp.

433{
434 m_concepts.add(cd->name(),cd);
435}

References m_concepts, and Definition::name().

Referenced by addInnerCompound().

◆ insertMember()

void NamespaceDefImpl::insertMember ( MemberDef * md)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 464 of file namespacedef.cpp.

465{
466 //printf("%s::insertMember(%s) isInline=%d hasDocs=%d\n",qPrint(name()),qPrint(md->name()),
467 // isInline(),hasDocumentation());
468 if (md->isHidden()) return;
469 MemberDefMutable *mdm = toMemberDefMutable(md);
470
471 // if this is an inline namespace that is not documented, then insert the
472 // member in the parent scope instead
473 if (isInline() && !hasDocumentation())
474 {
475 Definition *outerScope = getOuterScope();
476 if (outerScope)
477 {
478 if (outerScope->definitionType()==Definition::TypeNamespace)
479 {
480 NamespaceDefMutable *nd = toNamespaceDefMutable(outerScope);
481 if (nd && nd!=Doxygen::globalScope)
482 {
483 nd->insertMember(md);
484 if (mdm)
485 {
486 mdm->setNamespace(nd);
487 }
488 }
489 }
490 else if (outerScope->definitionType()==Definition::TypeFile)
491 {
492 FileDef *fd = toFileDef(outerScope);
493 fd->insertMember(md);
494 if (mdm)
495 {
496 mdm->setFileDef(fd);
497 mdm->setOuterScope(fd);
498 }
499 }
500 }
501 }
502 else // member is a non-inline namespace or a documented inline namespace
503 {
504 MemberList *allMemberList = getMemberList(MemberListType::AllMembersList());
505 if (allMemberList==nullptr)
506 {
507 m_memberLists.emplace_back(std::make_unique<MemberList>(MemberListType::AllMembersList(),MemberListContainer::Namespace));
508 allMemberList = m_memberLists.back().get();
509 }
510 allMemberList->push_back(md);
511 //printf("%s::m_allMembersDict->append(%s)\n",qPrint(name()),qPrint(md->localName()));
512 m_allMembers.add(md->localName(),md);
513 switch(md->memberType())
514 {
516 addMemberToList(MemberListType::DecVarMembers(),md);
517 addMemberToList(MemberListType::DocVarMembers(),md);
518 break;
520 addMemberToList(MemberListType::DecFuncMembers(),md);
521 addMemberToList(MemberListType::DocFuncMembers(),md);
522 break;
524 addMemberToList(MemberListType::DecTypedefMembers(),md);
525 addMemberToList(MemberListType::DocTypedefMembers(),md);
526 break;
528 addMemberToList(MemberListType::DecSequenceMembers(),md);
529 addMemberToList(MemberListType::DocSequenceMembers(),md);
530 break;
532 addMemberToList(MemberListType::DecDictionaryMembers(),md);
533 addMemberToList(MemberListType::DocDictionaryMembers(),md);
534 break;
536 addMemberToList(MemberListType::DecEnumMembers(),md);
537 addMemberToList(MemberListType::DocEnumMembers(),md);
538 break;
540 break;
542 addMemberToList(MemberListType::DecDefineMembers(),md);
543 addMemberToList(MemberListType::DocDefineMembers(),md);
544 break;
546 if (md->getLanguage() == SrcLangExt::Python)
547 {
548 addMemberToList(MemberListType::PropertyMembers(),md);
549 addMemberToList(MemberListType::Properties(),md);
550 break;
551 }
552 // fallthrough, explicitly no break here
553 default:
554 err("NamespaceDefImpl::insertMembers(): "
555 "member '{}' with unexpected type '{}' and class scope '{}' inserted in namespace scope '{}'!\n",
556 md->name(), md->memberTypeName(), md->getClassDef() ? md->getClassDef()->name() : "", name());
557 }
558 // if this is an inline namespace, then insert an alias of this member in the outer scope.
559 if (isInline())
560 {
561 Definition *outerScope = getOuterScope();
562 if (outerScope)
563 {
564 std::unique_ptr<MemberDef> aliasMd = createMemberDefAlias(outerScope,md);
565 if (outerScope->definitionType()==Definition::TypeNamespace)
566 {
567 NamespaceDefMutable *ndm = toNamespaceDefMutable(outerScope);
568 if (ndm)
569 {
570 ndm->insertMember(aliasMd.get());
571 }
572 }
573 else if (outerScope->definitionType()==Definition::TypeFile)
574 {
575 toFileDef(outerScope)->insertMember(aliasMd.get());
576 }
577 if (aliasMd)
578 {
579 MemberName *mn = Doxygen::functionNameLinkedMap->add(md->name());
580 mn->push_back(std::move(aliasMd));
581 }
582 }
583 }
584 }
585}
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual bool isHidden() const =0
Definition * getOuterScope() const override
virtual void setOuterScope(Definition *d)=0
static MemberNameLinkedMap * functionNameLinkedMap
Definition doxygen.h:111
static NamespaceDefMutable * globalScope
Definition doxygen.h:120
virtual void insertMember(MemberDef *md)=0
T * add(const char *k, Args &&... args)
Definition linkedmap.h:90
virtual const ClassDef * getClassDef() const =0
virtual MemberType memberType() const =0
virtual QCString memberTypeName() const =0
virtual void setFileDef(FileDef *fd)=0
virtual void setNamespace(NamespaceDef *nd)=0
void push_back(Ptr &&p)
Definition membername.h:54
void push_back(const T &value)
Definition memberlist.h:48
bool isInline() const override
void addMemberToList(MemberListType lt, MemberDef *md)
virtual void insertMember(MemberDef *md)=0
FileDef * toFileDef(Definition *d)
Definition filedef.cpp:1967
std::unique_ptr< MemberDef > createMemberDefAlias(const Definition *newScope, const MemberDef *aliasMd)
#define err(fmt,...)
Definition message.h:127
@ Enumeration
Definition types.h:557
@ EnumValue
Definition types.h:558
@ Dictionary
Definition types.h:568
@ Sequence
Definition types.h:567
@ Variable
Definition types.h:555
@ Property
Definition types.h:563
@ Typedef
Definition types.h:556
@ Function
Definition types.h:554

References addMemberToList(), createMemberDefAlias(), Define, Definition::definitionType(), Dictionary, Enumeration, EnumValue, err, Function, Doxygen::functionNameLinkedMap, MemberDef::getClassDef(), Definition::getLanguage(), getMemberList(), DefinitionMixin< NamespaceDefMutable >::getOuterScope(), Doxygen::globalScope, DefinitionMixin< NamespaceDefMutable >::hasDocumentation(), FileDef::insertMember(), NamespaceDefMutable::insertMember(), Definition::isHidden(), isInline(), Definition::localName(), m_allMembers, m_memberLists, MemberDef::memberType(), MemberDef::memberTypeName(), Definition::name(), DefinitionMixin< NamespaceDefMutable >::name(), Namespace, Property, MemberName::push_back(), MemberVector::push_back(), Sequence, MemberDefMutable::setFileDef(), MemberDefMutable::setNamespace(), DefinitionMutable::setOuterScope(), toFileDef(), toMemberDefMutable(), toNamespaceDefMutable(), Typedef, Definition::TypeFile, Definition::TypeNamespace, and Variable.

◆ insertNamespace()

void NamespaceDefImpl::insertNamespace ( NamespaceDef * nd)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 437 of file namespacedef.cpp.

438{
439 m_namespaces.add(nd->name(),nd);
440}

References m_namespaces, and Definition::name().

Referenced by addInnerCompound().

◆ insertUsedFile()

void NamespaceDefImpl::insertUsedFile ( FileDef * fd)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 381 of file namespacedef.cpp.

382{
383 if (fd==nullptr) return;
384 auto it = std::find(files.begin(),files.end(),fd);
385 if (it==files.end())
386 {
387 files.push_back(fd);
388 }
389}

References files.

◆ isConstantGroup()

bool NamespaceDefImpl::isConstantGroup ( ) const
inlineoverridevirtual

Implements NamespaceDef.

Definition at line 88 of file namespacedef.cpp.

88{ return CONSTANT_GROUP == m_type; }

References CONSTANT_GROUP, and m_type.

Referenced by addNamespaceAttributes(), compoundTypeString(), title(), and writeNamespaceDeclarations().

◆ isInline()

bool NamespaceDefImpl::isInline ( ) const
inlineoverridevirtual

Implements NamespaceDef.

Definition at line 91 of file namespacedef.cpp.

91{ return m_inline; }

References m_inline.

Referenced by insertMember(), and setInline().

◆ isLibrary()

bool NamespaceDefImpl::isLibrary ( ) const
inlineoverridevirtual

Implements NamespaceDef.

Definition at line 90 of file namespacedef.cpp.

90{ return LIBRARY == m_type; }

References LIBRARY, and m_type.

Referenced by compoundTypeString().

◆ isLinkable()

bool NamespaceDefImpl::isLinkable ( ) const
overridevirtual

Returns TRUE iff it is possible to link to this item. This can be a link to another project imported via a tag file.

Implements Definition.

Definition at line 1590 of file namespacedef.cpp.

1591{
1592 return isLinkableInProject() || isReference();
1593}
bool isLinkableInProject() const override

References isLinkableInProject(), and DefinitionMixin< NamespaceDefMutable >::isReference().

Referenced by isVisibleInHierarchy().

◆ isLinkableInProject()

bool NamespaceDefImpl::isLinkableInProject ( ) const
overridevirtual

Returns TRUE iff it is possible to link to this item within this project.

Implements Definition.

Definition at line 1571 of file namespacedef.cpp.

1572{
1573 int i = name().findRev("::");
1574 if (i==-1) i=0; else i+=2;
1575 bool extractAnonNs = Config_getBool(EXTRACT_ANON_NSPACES);
1576 bool hideUndoc = Config_getBool(HIDE_UNDOC_NAMESPACES);
1577 if (extractAnonNs && // extract anonymous ns
1578 name().mid(i,20)=="anonymous_namespace{" // correct prefix
1579 ) // not disabled by config
1580 {
1581 return TRUE;
1582 }
1583 return !name().isEmpty() && name().at(i)!='@' && // not anonymous
1584 (hasDocumentation() || !hideUndoc || getLanguage()==SrcLangExt::CSharp) && // documented
1585 !isReference() && // not an external reference
1586 !isHidden() && // not hidden
1587 !isArtificial(); // or artificial
1588}
const QCString & name() const override
char & at(size_t i)
Returns a reference to the character at index i.
Definition qcstring.h:593
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:163
int findRev(char c, int index=-1, bool cs=TRUE) const
Definition qcstring.cpp:96

References QCString::at(), Config_getBool, QCString::findRev(), DefinitionMixin< NamespaceDefMutable >::getLanguage(), DefinitionMixin< NamespaceDefMutable >::hasDocumentation(), DefinitionMixin< NamespaceDefMutable >::isArtificial(), QCString::isEmpty(), DefinitionMixin< NamespaceDefMutable >::isHidden(), DefinitionMixin< NamespaceDefMutable >::isReference(), DefinitionMixin< NamespaceDefMutable >::name(), and TRUE.

Referenced by isLinkable().

◆ isModule()

bool NamespaceDefImpl::isModule ( ) const
inlineoverridevirtual

Implements NamespaceDef.

Definition at line 89 of file namespacedef.cpp.

89{ return NAMESPACE == m_type || MODULE == m_type; }

References m_type, MODULE, and NAMESPACE.

Referenced by compoundTypeString().

◆ isVisibleInHierarchy()

bool NamespaceDefImpl::isVisibleInHierarchy ( ) const
overridevirtual

Implements NamespaceDef.

Definition at line 1565 of file namespacedef.cpp.

1566{
1567 bool allExternals = Config_getBool(ALLEXTERNALS);
1568 return allExternals || hasNonReferenceNestedNamespaceRec(this,0) || isLinkable();
1569}
bool isLinkable() const override
static bool hasNonReferenceNestedNamespaceRec(const NamespaceDef *nd, int level)

References Config_getBool, hasNonReferenceNestedNamespaceRec(), and isLinkable().

◆ numDocMembers()

int NamespaceDefImpl::numDocMembers ( ) const
overridevirtual

Implements NamespaceDef.

Definition at line 1228 of file namespacedef.cpp.

1229{
1230 MemberList *allMemberList = getMemberList(MemberListType::AllMembersList());
1231 return (allMemberList ? allMemberList->numDocMembers() : 0) + static_cast<int>(m_innerCompounds.size());
1232}
int numDocMembers() const
Definition memberlist.h:138

References getMemberList(), m_innerCompounds, and MemberList::numDocMembers().

◆ setFileName()

void NamespaceDefImpl::setFileName ( const QCString & fn)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 350 of file namespacedef.cpp.

351{
353}

References setFileNameLocal().

◆ setFileNameLocal()

void NamespaceDefImpl::setFileNameLocal ( const QCString & fn)
private

Definition at line 338 of file namespacedef.cpp.

339{
340 if (isReference())
341 {
342 fileName = "namespace"+fn;
343 }
344 else
345 {
346 fileName = convertNameToFile("namespace"+fn);
347 }
348}

References convertNameToFile(), fileName, and DefinitionMixin< NamespaceDefMutable >::isReference().

Referenced by setFileName().

◆ setInline()

void NamespaceDefImpl::setInline ( bool isInline)
inlineoverridevirtual

Implements NamespaceDefMutable.

Definition at line 87 of file namespacedef.cpp.

87{ m_inline = isInline; }

References isInline(), and m_inline.

◆ setMetaData()

void NamespaceDefImpl::setMetaData ( const QCString & m)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 1674 of file namespacedef.cpp.

1675{
1676 metaData = m;
1677}

References metaData.

◆ setName()

void NamespaceDefImpl::setName ( const QCString & name)
overridevirtual

Sets a new name for the definition

Reimplemented from DefinitionMixin< NamespaceDefMutable >.

Definition at line 328 of file namespacedef.cpp.

329{
332}
void setName(const QCString &name) override

References DefinitionMixin< NamespaceDefMutable >::name(), DefinitionMixin< Base >::setName(), and updateLocalName().

◆ sortMemberLists()

void NamespaceDefImpl::sortMemberLists ( )
overridevirtual

Implements NamespaceDefMutable.

Definition at line 1480 of file namespacedef.cpp.

1481{
1482 for (auto &ml : m_memberLists)
1483 {
1484 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(FALSE); }
1485 }
1486
1487 if (Config_getBool(SORT_BRIEF_DOCS))
1488 {
1489 auto classComp = [](const ClassLinkedRefMap::Ptr &c1,const ClassLinkedRefMap::Ptr &c2)
1490 {
1491 return Config_getBool(SORT_BY_SCOPE_NAME) ?
1492 qstricmp_sort(c1->name(), c2->name())<0 :
1493 qstricmp_sort(c1->className(), c2->className())<0;
1494 };
1495
1496 std::stable_sort(m_classes.begin(), m_classes.end(), classComp);
1497 std::stable_sort(m_interfaces.begin(),m_interfaces.end(),classComp);
1498 std::stable_sort(m_structs.begin(), m_structs.end(), classComp);
1499 std::stable_sort(m_exceptions.begin(),m_exceptions.end(),classComp);
1500
1501 auto conceptComp = [](const ConceptLinkedRefMap::Ptr &c1,const ConceptLinkedRefMap::Ptr &c2)
1502 {
1503 return qstricmp_sort(c1->name(),c2->name())<0;
1504 };
1505
1506 std::stable_sort(m_concepts.begin(), m_concepts.end(), conceptComp);
1507
1508 auto namespaceComp = [](const NamespaceLinkedRefMap::Ptr &n1,const NamespaceLinkedRefMap::Ptr &n2)
1509 {
1510 return qstricmp_sort(n1->name(),n2->name())<0;
1511 };
1512
1513 std::stable_sort(m_namespaces.begin(),m_namespaces.end(),namespaceComp);
1514 }
1515
1516}
virtual QCString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
int qstricmp_sort(const char *str1, const char *str2)
Definition qcstring.h:86

References ClassDef::className(), Config_getBool, FALSE, m_classes, m_concepts, m_exceptions, m_interfaces, m_memberLists, m_namespaces, m_structs, Definition::name(), and qstricmp_sort().

◆ startMemberDeclarations()

void NamespaceDefImpl::startMemberDeclarations ( OutputList & ol)
private

Definition at line 794 of file namespacedef.cpp.

795{
797}
void startMemberSections()
Definition outputlist.h:461

References OutputList::startMemberSections().

Referenced by writeDocumentation().

◆ startMemberDocumentation()

void NamespaceDefImpl::startMemberDocumentation ( OutputList & ol)
private

Definition at line 804 of file namespacedef.cpp.

805{
806 if (Config_getBool(SEPARATE_MEMBER_PAGES))
807 {
810 }
811}
void disable(OutputType o)

References Config_getBool, OutputList::disable(), Html, Doxygen::suppressDocWarnings, and TRUE.

Referenced by writeDocumentation().

◆ subGrouping()

bool NamespaceDefImpl::subGrouping ( ) const
inlineoverridevirtual

Implements NamespaceDef.

Definition at line 105 of file namespacedef.cpp.

105{ return m_subGrouping; }

References m_subGrouping.

◆ title()

QCString NamespaceDefImpl::title ( ) const
overridevirtual

Implements NamespaceDef.

Definition at line 1600 of file namespacedef.cpp.

1601{
1602 QCString pageTitle;
1603 SrcLangExt lang = getLanguage();
1604
1605 auto getReferenceTitle = [this](std::function<QCString()> translateFunc) -> QCString
1606 {
1607 return Config_getBool(HIDE_COMPOUND_REFERENCE) ? displayName() : translateFunc();
1608 };
1609
1610 if (lang==SrcLangExt::Java)
1611 {
1612 pageTitle = theTranslator->trPackage(displayName());
1613 }
1614 else if (lang==SrcLangExt::Fortran || lang==SrcLangExt::Slice)
1615 {
1616 pageTitle = getReferenceTitle([this](){
1618 });
1619 }
1620 else if (lang==SrcLangExt::IDL)
1621 {
1622 pageTitle = getReferenceTitle([this](){
1623 return isConstantGroup()
1626 });
1627 }
1628 else
1629 {
1630 pageTitle = getReferenceTitle([this](){
1632 });
1633 }
1634 return pageTitle;
1635}
virtual QCString trPackage(const QCString &name)=0
virtual QCString trNamespaceReference(const QCString &namespaceName)=0
virtual QCString trConstantGroupReference(const QCString &namespaceName)=0
virtual QCString trModuleReference(const QCString &namespaceName)=0

References Config_getBool, displayName(), DefinitionMixin< NamespaceDefMutable >::getLanguage(), isConstantGroup(), and theTranslator.

Referenced by writeClassDeclarations(), writeConcepts(), writeDetailedDescription(), writeDocumentation(), writeMemberDeclarations(), writeMemberDocumentation(), and writeNamespaceDeclarations().

◆ updateLocalName()

void NamespaceDefImpl::updateLocalName ( )
private

Definition at line 317 of file namespacedef.cpp.

318{
319 QCString locName=name();
320 int i=locName.findRev("::");
321 if (i!=-1)
322 {
323 locName=locName.mid(i+2);
324 }
325 setLocalName(locName);
326}
void setLocalName(const QCString &name) override
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
Definition qcstring.h:241

References QCString::findRev(), QCString::mid(), DefinitionMixin< NamespaceDefMutable >::name(), and DefinitionMixin< NamespaceDefMutable >::setLocalName().

Referenced by setName().

◆ writeAuthorSection()

void NamespaceDefImpl::writeAuthorSection ( OutputList & ol)
private

Definition at line 855 of file namespacedef.cpp.

856{
857 // write Author section (Man only)
860 ol.startGroupHeader();
862 ol.endGroupHeader();
865}
void startGroupHeader(const QCString &id=QCString(), int extraLevels=0)
Definition outputlist.h:453
void endGroupHeader(int extraLevels=0)
Definition outputlist.h:455
void parseText(const QCString &textStr)
virtual QCString trGeneratedAutomatically(const QCString &s)=0
virtual QCString trAuthor(bool first_capital, bool singular)=0
#define Config_getString(name)
Definition config.h:32

References Config_getString, OutputList::disableAllBut(), OutputList::endGroupHeader(), Man, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startGroupHeader(), theTranslator, and TRUE.

Referenced by writeDocumentation().

◆ writeBriefDescription()

void NamespaceDefImpl::writeBriefDescription ( OutputList & ol)
private

Definition at line 734 of file namespacedef.cpp.

735{
737 {
738 auto parser { createDocParser() };
739 auto ast { validatingParseDoc(*parser.get(),
740 briefFile(),
741 briefLine(),
742 this,
743 nullptr,
745 DocOptions()
746 .setIndexWords(true)
747 .setSingleLine(true))
748 };
749 if (!ast->isEmpty())
750 {
751 ol.startParagraph();
754 ol.writeString(" - ");
756 ol.writeDoc(ast.get(),this,nullptr);
759 ol.writeString(" \n");
761
763 {
765 ol.startTextLink(getOutputFileBase(),"details");
767 ol.endTextLink();
768 }
770 ol.endParagraph();
771 }
772 }
773
774 // Write a summary of the Slice definition including metadata.
775 if (getLanguage() == SrcLangExt::Slice)
776 {
777 ol.startParagraph();
778 ol.startTypewriter();
779 if (!metaData.isEmpty())
780 {
781 ol.docify(metaData);
782 ol.lineBreak();
783 }
784 ol.docify("module ");
785 ol.docify(stripScope(name()));
786 ol.docify(" { ... }");
787 ol.endTypewriter();
788 ol.endParagraph();
789 }
790
791 ol.writeSynopsis();
792}
virtual QCString briefFile() const =0
bool hasDetailedDescription() const override
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
Definition outputlist.h:383
void writeString(const QCString &text)
Definition outputlist.h:411
void docify(const QCString &s)
Definition outputlist.h:437
void startParagraph(const QCString &classDef=QCString())
Definition outputlist.h:407
void endParagraph()
Definition outputlist.h:409
void endTextLink()
Definition outputlist.h:444
void writeSynopsis()
Definition outputlist.h:592
void startTypewriter()
Definition outputlist.h:449
void endTypewriter()
Definition outputlist.h:451
void lineBreak(const QCString &style=QCString())
Definition outputlist.h:559
void startTextLink(const QCString &file, const QCString &anchor)
Definition outputlist.h:442
virtual QCString trMore()=0
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, const DocOptions &options)
IDocParserPtr createDocParser()
factory function to create a parser
Definition docparser.cpp:55
QCString stripScope(const QCString &name)
Definition util.cpp:3760

References DefinitionMixin< NamespaceDefMutable >::briefDescription(), DefinitionMixin< NamespaceDefMutable >::briefFile(), DefinitionMixin< NamespaceDefMutable >::briefLine(), createDocParser(), OutputList::disable(), OutputList::disableAllBut(), OutputList::docify(), OutputList::enable(), OutputList::endParagraph(), OutputList::endTextLink(), OutputList::endTypewriter(), DefinitionMixin< NamespaceDefMutable >::getLanguage(), getOutputFileBase(), DefinitionMixin< NamespaceDefMutable >::hasBriefDescription(), hasDetailedDescription(), Html, OutputList::lineBreak(), Man, metaData, DefinitionMixin< NamespaceDefMutable >::name(), OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, OutputList::startParagraph(), OutputList::startTextLink(), OutputList::startTypewriter(), stripScope(), theTranslator, validatingParseDoc(), OutputList::writeDoc(), OutputList::writeString(), and OutputList::writeSynopsis().

Referenced by writeDocumentation().

◆ writeClassDeclarations()

void NamespaceDefImpl::writeClassDeclarations ( OutputList & ol,
const QCString & title,
const ClassLinkedRefMap & d )
private

Definition at line 822 of file namespacedef.cpp.

823{
824 d.writeDeclaration(ol,nullptr,title,TRUE);
825}
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const QCString &header, bool localNames) const
Definition classlist.cpp:53
QCString title() const override

References title(), TRUE, and ClassLinkedRefMap::writeDeclaration().

Referenced by writeDocumentation().

◆ writeClassesToTagFile()

void NamespaceDefImpl::writeClassesToTagFile ( TextStream & tagFile,
const ClassLinkedRefMap & d )
private

Definition at line 967 of file namespacedef.cpp.

968{
969 for (const auto &cd : list)
970 {
971 if (cd->isLinkableInProject())
972 {
973 tagFile << " <class kind=\"" << cd->compoundTypeString()
974 << "\">" << convertToXML(cd->name()) << "</class>\n";
975 }
976 }
977}
QCString convertToXML(const QCString &s, bool keepEntities)
Definition util.cpp:3893

References convertToXML().

Referenced by writeTagFile().

◆ writeConcepts()

void NamespaceDefImpl::writeConcepts ( OutputList & ol,
const QCString & title )
private

Definition at line 827 of file namespacedef.cpp.

828{
829 m_concepts.writeDeclaration(ol,title,TRUE);
830}

References m_concepts, title(), and TRUE.

Referenced by writeDocumentation().

◆ writeConceptsToTagFile()

void NamespaceDefImpl::writeConceptsToTagFile ( TextStream & tagFile)
private

Definition at line 979 of file namespacedef.cpp.

980{
981 for (const auto &cd : m_concepts)
982 {
983 if (cd->isLinkableInProject())
984 {
985 tagFile << " <concept>" << convertToXML(cd->name()) << "</concept>\n";
986 }
987 }
988}

References convertToXML(), and m_concepts.

Referenced by writeTagFile().

◆ writeDetailedDescription()

void NamespaceDefImpl::writeDetailedDescription ( OutputList & ol,
const QCString & title )
private

Definition at line 681 of file namespacedef.cpp.

682{
684 {
687 ol.writeRuler();
691 ol.writeAnchor(QCString(),"details");
693 ol.startGroupHeader("details");
694 ol.parseText(title);
695 ol.endGroupHeader();
696
697 ol.startTextBlock();
698 if (!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF))
699 {
701 briefLine(),
702 this,
703 nullptr,
705 DocOptions());
706 }
707 if (!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF) &&
708 !documentation().isEmpty())
709 {
713 ol.enableAll();
716 ol.writeString("\n\n");
718 }
719 if (!documentation().isEmpty())
720 {
721 ol.generateDoc(docFile(),
722 docLine(),
723 this,
724 nullptr,
725 documentation()+"\n",
726 DocOptions()
727 .setIndexWords(true));
728 }
730 ol.endTextBlock();
731 }
732}
QCString briefFile() const override
void writeRequirementRefs(OutputList &ol) const override
void endTextBlock(bool paraBreak=FALSE)
Definition outputlist.h:672
void writeRuler()
Definition outputlist.h:521
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, const DocOptions &options)
void startTextBlock(bool dense=FALSE)
Definition outputlist.h:670
void writeAnchor(const QCString &fileName, const QCString &name)
Definition outputlist.h:523
void enableAll()

References DefinitionMixin< NamespaceDefMutable >::briefDescription(), DefinitionMixin< NamespaceDefMutable >::briefFile(), DefinitionMixin< NamespaceDefMutable >::briefLine(), Config_getBool, OutputList::disable(), OutputList::disableAllBut(), DefinitionMixin< NamespaceDefMutable >::docFile(), DefinitionMixin< NamespaceDefMutable >::docLine(), DefinitionMixin< NamespaceDefMutable >::documentation(), OutputList::enable(), OutputList::enableAll(), OutputList::endGroupHeader(), OutputList::endTextBlock(), OutputList::generateDoc(), hasDetailedDescription(), DefinitionMixin< NamespaceDefMutable >::hasRequirementRefs(), Html, Latex, Man, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, OutputList::startGroupHeader(), OutputList::startTextBlock(), title(), OutputList::writeAnchor(), DefinitionMixin< NamespaceDefMutable >::writeRequirementRefs(), OutputList::writeRuler(), and OutputList::writeString().

Referenced by writeDocumentation().

◆ writeDocumentation()

void NamespaceDefImpl::writeDocumentation ( OutputList & ol)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 990 of file namespacedef.cpp.

991{
992 bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
993 //bool outputJava = Config_getBool(OPTIMIZE_OUTPUT_JAVA);
994 //bool fortranOpt = Config_getBool(OPTIMIZE_FOR_FORTRAN);
995
996 QCString pageTitle = title();
997 startFile(ol,getOutputFileBase(),false,name(),pageTitle,HighlightedItem::NamespaceVisible,!generateTreeView);
998
999 if (!generateTreeView)
1000 {
1002 {
1004 }
1005 ol.endQuickIndices();
1006 }
1007
1008 startTitle(ol,getOutputFileBase(),this);
1009 ol.parseText(pageTitle);
1010 addGroupListToTitle(ol,this);
1013 ol.startContents();
1014
1015 //---------------------------------------- start flexible part -------------------------------
1016
1017 SrcLangExt lang = getLanguage();
1018 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Namespace))
1019 {
1020 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
1021 switch (lde->kind())
1022 {
1023 case LayoutDocEntry::BriefDesc:
1025 break;
1026 case LayoutDocEntry::MemberDeclStart:
1028 break;
1029 case LayoutDocEntry::NamespaceClasses:
1030 {
1031 if (ls) writeClassDeclarations(ol,ls->title(lang),m_classes);
1032 }
1033 break;
1034 case LayoutDocEntry::NamespaceInterfaces:
1035 {
1036 if (ls) writeClassDeclarations(ol,ls->title(lang),m_interfaces);
1037 }
1038 break;
1039 case LayoutDocEntry::NamespaceStructs:
1040 {
1041 if (ls) writeClassDeclarations(ol,ls->title(lang),m_structs);
1042 }
1043 break;
1044 case LayoutDocEntry::NamespaceExceptions:
1045 {
1046 if (ls) writeClassDeclarations(ol,ls->title(lang),m_exceptions);
1047 }
1048 break;
1049 case LayoutDocEntry::NamespaceConcepts:
1050 {
1051 if (ls) writeConcepts(ol,ls->title(lang));
1052 }
1053 break;
1054 case LayoutDocEntry::NamespaceNestedNamespaces:
1055 {
1056 if (ls) writeNamespaceDeclarations(ol,ls->title(lang),false);
1057 }
1058 break;
1059 case LayoutDocEntry::NamespaceNestedConstantGroups:
1060 {
1061 if (ls) writeNamespaceDeclarations(ol,ls->title(lang),true);
1062 }
1063 break;
1064 case LayoutDocEntry::MemberGroups:
1066 break;
1067 case LayoutDocEntry::MemberDecl:
1068 {
1069 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
1070 if (lmd) writeMemberDeclarations(ol,lmd->type,lmd->title(lang));
1071 }
1072 break;
1073 case LayoutDocEntry::MemberDeclEnd:
1075 break;
1076 case LayoutDocEntry::DetailedDesc:
1077 {
1078 if (ls) writeDetailedDescription(ol,ls->title(lang));
1079 }
1080 break;
1081 case LayoutDocEntry::MemberDefStart:
1083 break;
1084 case LayoutDocEntry::NamespaceInlineClasses:
1086 break;
1087 case LayoutDocEntry::MemberDef:
1088 {
1089 const LayoutDocEntryMemberDef *lmd = dynamic_cast<const LayoutDocEntryMemberDef*>(lde.get());
1090 if (lmd) writeMemberDocumentation(ol,lmd->type,lmd->title(lang));
1091 }
1092 break;
1093 case LayoutDocEntry::MemberDefEnd:
1095 break;
1096 case LayoutDocEntry::AuthorSection:
1098 break;
1099 case LayoutDocEntry::ClassIncludes:
1100 case LayoutDocEntry::ClassInheritanceGraph:
1101 case LayoutDocEntry::ClassNestedClasses:
1102 case LayoutDocEntry::ClassCollaborationGraph:
1103 case LayoutDocEntry::ClassAllMembersLink:
1104 case LayoutDocEntry::ClassUsedFiles:
1105 case LayoutDocEntry::ClassInlineClasses:
1106 case LayoutDocEntry::ConceptDefinition:
1107 case LayoutDocEntry::FileClasses:
1108 case LayoutDocEntry::FileConcepts:
1109 case LayoutDocEntry::FileInterfaces:
1110 case LayoutDocEntry::FileStructs:
1111 case LayoutDocEntry::FileExceptions:
1112 case LayoutDocEntry::FileNamespaces:
1113 case LayoutDocEntry::FileConstantGroups:
1114 case LayoutDocEntry::FileIncludes:
1115 case LayoutDocEntry::FileIncludeGraph:
1116 case LayoutDocEntry::FileIncludedByGraph:
1117 case LayoutDocEntry::FileSourceLink:
1118 case LayoutDocEntry::FileInlineClasses:
1119 case LayoutDocEntry::GroupClasses:
1120 case LayoutDocEntry::GroupConcepts:
1121 case LayoutDocEntry::GroupModules:
1122 case LayoutDocEntry::GroupInlineClasses:
1123 case LayoutDocEntry::GroupNamespaces:
1124 case LayoutDocEntry::GroupDirs:
1125 case LayoutDocEntry::GroupNestedGroups:
1126 case LayoutDocEntry::GroupFiles:
1127 case LayoutDocEntry::GroupGraph:
1128 case LayoutDocEntry::GroupPageDocs:
1129 case LayoutDocEntry::ModuleExports:
1130 case LayoutDocEntry::ModuleClasses:
1131 case LayoutDocEntry::ModuleConcepts:
1132 case LayoutDocEntry::ModuleUsedFiles:
1133 case LayoutDocEntry::DirSubDirs:
1134 case LayoutDocEntry::DirFiles:
1135 case LayoutDocEntry::DirGraph:
1136 err("Internal inconsistency: member '{}' should not be part of "
1137 "LayoutDocManager::Namespace entry list\n",lde->entryToString());
1138 break;
1139 }
1140 }
1141
1142 //---------------------------------------- end flexible part -------------------------------
1143
1144 ol.endContents();
1145
1146 endFileWithNavPath(ol,this);
1147
1148 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1149 {
1150 MemberList *allMemberList = getMemberList(MemberListType::AllMembersList());
1151 if (allMemberList) allMemberList->sort();
1152 writeMemberPages(ol);
1153 }
1154}
void writeNavigationPath(OutputList &ol) const override
void sort()
Definition memberlist.h:76
void writeMemberPages(OutputList &ol) override
void writeMemberGroups(OutputList &ol)
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const QCString &title)
void startMemberDeclarations(OutputList &ol)
void writeAuthorSection(OutputList &ol)
void writeClassDeclarations(OutputList &ol, const QCString &title, const ClassLinkedRefMap &d)
void endMemberDocumentation(OutputList &ol)
void writeInlineClasses(OutputList &ol)
void writeBriefDescription(OutputList &ol)
void startMemberDocumentation(OutputList &ol)
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const QCString &title)
void endMemberDeclarations(OutputList &ol)
void writeConcepts(OutputList &ol, const QCString &title)
void addNamespaceAttributes(OutputList &ol)
void writeNamespaceDeclarations(OutputList &ol, const QCString &title, bool isConstantGroup=false)
void writeDetailedDescription(OutputList &ol, const QCString &title)
void endContents()
Definition outputlist.h:620
void endQuickIndices()
Definition outputlist.h:604
void startContents()
Definition outputlist.h:618
void startTitle(OutputList &ol, const QCString &fileName, const DefinitionMutable *def)
Definition index.cpp:384
void endTitle(OutputList &ol, const QCString &fileName, const QCString &name)
Definition index.cpp:394
void startFile(OutputList &ol, const QCString &name, bool isSource, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel, const QCString &allMembersFile)
Definition index.cpp:401
void endFileWithNavPath(OutputList &ol, const DefinitionMutable *d, bool showPageNavigation)
Definition index.cpp:448
@ NamespaceVisible
Definition index.h:92
QCString title(SrcLangExt lang) const
Definition layout.cpp:1788
MemberListType type
Definition layout.h:118
QCString title(SrcLangExt lang) const
Definition layout.cpp:1800
QCString title(SrcLangExt lang) const
Definition layout.cpp:1781
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:4892

References addGroupListToTitle(), addNamespaceAttributes(), Config_getBool, displayName(), OutputList::endContents(), endFileWithNavPath(), endMemberDeclarations(), endMemberDocumentation(), OutputList::endQuickIndices(), endTitle(), err, DefinitionMixin< NamespaceDefMutable >::getLanguage(), getMemberList(), DefinitionMixin< NamespaceDefMutable >::getOuterScope(), getOutputFileBase(), Doxygen::globalScope, LayoutDocManager::instance(), m_classes, m_exceptions, m_interfaces, m_structs, DefinitionMixin< NamespaceDefMutable >::name(), NamespaceVisible, OutputList::parseText(), MemberVector::sort(), OutputList::startContents(), startFile(), startMemberDeclarations(), startMemberDocumentation(), startTitle(), LayoutDocEntryMemberDecl::title(), LayoutDocEntryMemberDef::title(), LayoutDocEntrySection::title(), title(), LayoutDocEntryMemberDecl::type, LayoutDocEntryMemberDef::type, writeAuthorSection(), writeBriefDescription(), writeClassDeclarations(), writeConcepts(), writeDetailedDescription(), writeInlineClasses(), writeMemberDeclarations(), writeMemberDocumentation(), writeMemberGroups(), writeMemberPages(), writeNamespaceDeclarations(), and DefinitionMixin< NamespaceDefMutable >::writeNavigationPath().

◆ writeInlineClasses()

void NamespaceDefImpl::writeInlineClasses ( OutputList & ol)
private

Definition at line 832 of file namespacedef.cpp.

833{
834 m_classes.writeDocumentation(ol,this);
835}

References m_classes.

Referenced by writeDocumentation().

◆ writeMemberDeclarations()

void NamespaceDefImpl::writeMemberDeclarations ( OutputList & ol,
MemberListType lt,
const QCString & title )
private

Definition at line 1530 of file namespacedef.cpp.

1531{
1532 MemberList * ml = getMemberList(lt);
1533 if (ml) ml->writeDeclarations(ol,nullptr,this,nullptr,nullptr,nullptr,title,QCString());
1534}
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, const QCString &title, const QCString &subtitle, bool showEnumValues=FALSE, bool showInline=FALSE, const ClassDef *inheritedFrom=nullptr, MemberListType lt=MemberListType::PubMethods(), bool showSectionTitle=true) const
Writes the list of members to the output.

References getMemberList(), title(), and MemberList::writeDeclarations().

Referenced by writeDocumentation().

◆ writeMemberDocumentation()

void NamespaceDefImpl::writeMemberDocumentation ( OutputList & ol,
MemberListType lt,
const QCString & title )
private

Definition at line 1536 of file namespacedef.cpp.

1537{
1538 MemberList * ml = getMemberList(lt);
1539 if (ml) ml->writeDocumentation(ol,displayName(),this,title,ml->listType().toLabel());
1540}
MemberListType listType() const
Definition memberlist.h:130
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, const QCString &anchor, bool showEnumValues=FALSE, bool showInline=FALSE) const
constexpr const char * toLabel() const noexcept
Definition types.h:402

References displayName(), getMemberList(), MemberList::listType(), title(), MemberListType::toLabel(), and MemberList::writeDocumentation().

Referenced by writeDocumentation().

◆ writeMemberGroups()

void NamespaceDefImpl::writeMemberGroups ( OutputList & ol)
private

Definition at line 843 of file namespacedef.cpp.

844{
845 /* write user defined member groups */
846 for (const auto &mg : m_memberGroups)
847 {
848 if (!mg->allMembersInSameSection() || !m_subGrouping)
849 {
850 mg->writeDeclarations(ol,nullptr,this,nullptr,nullptr,nullptr);
851 }
852 }
853}

References m_memberGroups, and m_subGrouping.

Referenced by writeDocumentation().

◆ writeMemberPages()

void NamespaceDefImpl::writeMemberPages ( OutputList & ol)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 1156 of file namespacedef.cpp.

1157{
1158 ol.pushGeneratorState();
1160
1161 for (const auto &ml : m_memberLists)
1162 {
1163 if (ml->listType().isDocumentation())
1164 {
1165 ml->writeDocumentationPage(ol,displayName(),this);
1166 }
1167 }
1168 ol.popGeneratorState();
1169}

References OutputList::disableAllBut(), displayName(), Html, m_memberLists, OutputList::popGeneratorState(), and OutputList::pushGeneratorState().

Referenced by writeDocumentation().

◆ writeNamespaceDeclarations()

void NamespaceDefImpl::writeNamespaceDeclarations ( OutputList & ol,
const QCString & title,
bool isConstantGroup = false )
private

Definition at line 837 of file namespacedef.cpp.

839{
840 m_namespaces.writeDeclaration(ol,title,isConstantGroup,TRUE);
841}

References isConstantGroup(), m_namespaces, title(), and TRUE.

Referenced by writeDocumentation().

◆ writePageNavigation()

void NamespaceDefImpl::writePageNavigation ( OutputList & ol) const
overridevirtual

Reimplemented from DefinitionMixin< NamespaceDefMutable >.

Definition at line 939 of file namespacedef.cpp.

940{
941 ol.writePageOutline();
942}
void writePageOutline()
Definition outputlist.h:616

References OutputList::writePageOutline().

◆ writeQuickMemberLinks()

void NamespaceDefImpl::writeQuickMemberLinks ( OutputList & ol,
const MemberDef * currentMd ) const
overridevirtual

Reimplemented from DefinitionMixin< NamespaceDefMutable >.

Definition at line 1171 of file namespacedef.cpp.

1172{
1173 bool createSubDirs=Config_getBool(CREATE_SUBDIRS);
1174
1175 ol.writeString(" <div class=\"navtab\">\n");
1176 ol.writeString(" <table>\n");
1177
1178 MemberList *allMemberList = getMemberList(MemberListType::AllMembersList());
1179 if (allMemberList)
1180 {
1181 for (const auto &md : *allMemberList)
1182 {
1183 if (md->getNamespaceDef()==this && md->isLinkable() && !md->isEnumValue())
1184 {
1185 if (md->isLinkableInProject())
1186 {
1187 QCString fn = md->getOutputFileBase();
1189 if (md==currentMd) // selected item => highlight
1190 {
1191 ol.writeString(" <tr><td class=\"navtabHL\">");
1192 }
1193 else
1194 {
1195 ol.writeString(" <tr><td class=\"navtab\">");
1196 }
1197 ol.writeString("<span class=\"label\"><a ");
1198 ol.writeString("href=\"");
1199 if (createSubDirs) ol.writeString("../../");
1200 ol.writeString(fn+"#"+md->anchor());
1201 ol.writeString("\">");
1202 ol.writeString(convertToHtml(md->localName()));
1203 ol.writeString("</a></span>");
1204 ol.writeString("</td></tr>\n");
1205 }
1206 }
1207 }
1208 }
1209
1210 ol.writeString(" </table>\n");
1211 ol.writeString(" </div>\n");
1212}
QCString convertToHtml(const QCString &s, bool keepEntities)
Definition util.cpp:3944
void createSubDirs(const Dir &d)
Definition util.cpp:3621
void addHtmlExtensionIfMissing(QCString &fName)
Definition util.cpp:4902

References addHtmlExtensionIfMissing(), Config_getBool, convertToHtml(), createSubDirs(), getMemberList(), and OutputList::writeString().

◆ writeSummaryLinks()

void NamespaceDefImpl::writeSummaryLinks ( OutputList & ol) const
overridevirtual

Reimplemented from DefinitionMixin< NamespaceDefMutable >.

Definition at line 867 of file namespacedef.cpp.

868{
871 bool first=TRUE;
872 SrcLangExt lang = getLanguage();
873 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Namespace))
874 {
875 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
876 if (lde->kind()==LayoutDocEntry::NamespaceClasses && m_classes.declVisible() && ls)
877 {
878 QCString label = "nested-classes";
879 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
880 first=FALSE;
881 }
882 else if (lde->kind()==LayoutDocEntry::NamespaceInterfaces && m_interfaces.declVisible() && ls)
883 {
884 QCString label = "interfaces";
885 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
886 first=FALSE;
887 }
888 else if (lde->kind()==LayoutDocEntry::NamespaceStructs && m_structs.declVisible() && ls)
889 {
890 QCString label = "structs";
891 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
892 first=FALSE;
893 }
894 else if (lde->kind()==LayoutDocEntry::NamespaceExceptions && m_exceptions.declVisible() && ls)
895 {
896 QCString label = "exceptions";
897 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
898 first=FALSE;
899 }
900 else if (lde->kind()==LayoutDocEntry::NamespaceNestedNamespaces && m_namespaces.declVisible(false) && ls)
901 {
902 QCString label = "namespaces";
903 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
904 first=FALSE;
905 }
906 else if (lde->kind()==LayoutDocEntry::NamespaceNestedConstantGroups && m_namespaces.declVisible(true) && ls)
907 {
908 QCString label = "constantgroups";
909 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
910 first=FALSE;
911 }
912 else if (lde->kind()==LayoutDocEntry::NamespaceConcepts && m_concepts.declVisible() && ls)
913 {
914 QCString label = "concepts";
915 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
916 first=FALSE;
917 }
918 else if (lde->kind()== LayoutDocEntry::MemberDecl)
919 {
920 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
921 if (lmd)
922 {
923 MemberList * ml = getMemberList(lmd->type);
924 if (ml && ml->declVisible())
925 {
926 ol.writeSummaryLink(QCString(),ml->listType().toLabel(),lmd->title(lang),first);
927 first=FALSE;
928 }
929 }
930 }
931 }
932 if (!first)
933 {
934 ol.writeString(" </div>\n");
935 }
937}
bool declVisible() const
void writeSummaryLink(const QCString &file, const QCString &anchor, const QCString &title, bool first)
Definition outputlist.h:614

References MemberList::declVisible(), OutputList::disableAllBut(), FALSE, DefinitionMixin< NamespaceDefMutable >::getLanguage(), getMemberList(), Html, LayoutDocManager::instance(), MemberList::listType(), m_classes, m_concepts, m_exceptions, m_interfaces, m_namespaces, m_structs, OutputList::popGeneratorState(), OutputList::pushGeneratorState(), LayoutDocEntryMemberDecl::title(), LayoutDocEntrySection::title(), MemberListType::toLabel(), TRUE, LayoutDocEntryMemberDecl::type, OutputList::writeString(), and OutputList::writeSummaryLink().

◆ writeTagFile()

void NamespaceDefImpl::writeTagFile ( TextStream & tagFile)
overridevirtual

Implements NamespaceDefMutable.

Definition at line 600 of file namespacedef.cpp.

601{
602 QCString fn = getOutputFileBase();
604 tagFile << " <compound kind=\"namespace\">\n";
605 tagFile << " <name>" << convertToXML(name()) << "</name>\n";
606 tagFile << " <filename>" << fn << "</filename>\n";
607 QCString idStr = id();
608 if (!idStr.isEmpty())
609 {
610 tagFile << " <clangid>" << convertToXML(idStr) << "</clangid>\n";
611 }
612 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Namespace))
613 {
614 switch (lde->kind())
615 {
616 case LayoutDocEntry::NamespaceNestedNamespaces:
617 {
618 for (const auto &nd : m_namespaces)
619 {
620 if (nd->isLinkableInProject())
621 {
622 tagFile << " <namespace>" << convertToXML(nd->name()) << "</namespace>\n";
623 }
624 }
625 }
626 break;
627 case LayoutDocEntry::NamespaceClasses:
628 {
630 }
631 break;
632 case LayoutDocEntry::NamespaceInterfaces:
633 {
635 }
636 break;
637 case LayoutDocEntry::NamespaceStructs:
638 {
640 }
641 break;
642 case LayoutDocEntry::NamespaceExceptions:
643 {
645 }
646 break;
647 case LayoutDocEntry::NamespaceConcepts:
648 {
649 writeConceptsToTagFile(tagFile);
650 }
651 break;
652 case LayoutDocEntry::MemberDecl:
653 {
654 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
655 if (lmd)
656 {
657 MemberList * ml = getMemberList(lmd->type);
658 if (ml)
659 {
660 ml->writeTagFile(tagFile);
661 }
662 }
663 }
664 break;
665 case LayoutDocEntry::MemberGroups:
666 {
667 for (const auto &mg : m_memberGroups)
668 {
669 mg->writeTagFile(tagFile);
670 }
671 }
672 break;
673 default:
674 break;
675 }
676 }
678 tagFile << " </compound>\n";
679}
void writeDocAnchorsToTagFile(TextStream &fs) const override
void writeTagFile(TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
void writeConceptsToTagFile(TextStream &)
void writeClassesToTagFile(TextStream &, const ClassLinkedRefMap &d)

References addHtmlExtensionIfMissing(), convertToXML(), getMemberList(), getOutputFileBase(), DefinitionMixin< NamespaceDefMutable >::id(), LayoutDocManager::instance(), QCString::isEmpty(), m_classes, m_exceptions, m_interfaces, m_memberGroups, m_namespaces, m_structs, DefinitionMixin< NamespaceDefMutable >::name(), LayoutDocEntryMemberDecl::type, writeClassesToTagFile(), writeConceptsToTagFile(), DefinitionMixin< NamespaceDefMutable >::writeDocAnchorsToTagFile(), and MemberList::writeTagFile().

Member Data Documentation

◆ fileName

QCString NamespaceDefImpl::fileName
private

Definition at line 150 of file namespacedef.cpp.

Referenced by getOutputFileBase(), and setFileNameLocal().

◆ files

FileList NamespaceDefImpl::files
private

Definition at line 151 of file namespacedef.cpp.

Referenced by insertUsedFile().

◆ m_allMembers

MemberLinkedRefMap NamespaceDefImpl::m_allMembers
private

Definition at line 157 of file namespacedef.cpp.

Referenced by getMemberByName(), and insertMember().

◆ m_classes

◆ m_concepts

ConceptLinkedRefMap NamespaceDefImpl::m_concepts
private

◆ m_exceptions

ClassLinkedRefMap NamespaceDefImpl::m_exceptions
private

◆ m_inline

bool NamespaceDefImpl::m_inline = false
private

Definition at line 170 of file namespacedef.cpp.

Referenced by isInline(), and setInline().

◆ m_innerCompounds

LinkedRefMap<const Definition> NamespaceDefImpl::m_innerCompounds
private

Definition at line 155 of file namespacedef.cpp.

Referenced by addInnerCompound(), findInnerCompound(), and numDocMembers().

◆ m_interfaces

ClassLinkedRefMap NamespaceDefImpl::m_interfaces
private

◆ m_isPublished

bool NamespaceDefImpl::m_isPublished = false
private

Definition at line 168 of file namespacedef.cpp.

Referenced by addNamespaceAttributes(), and NamespaceDefImpl().

◆ m_memberGroups

◆ m_memberLists

◆ m_namespaces

NamespaceLinkedRefMap NamespaceDefImpl::m_namespaces
private

◆ m_structs

ClassLinkedRefMap NamespaceDefImpl::m_structs
private

◆ m_subGrouping

bool NamespaceDefImpl::m_subGrouping = false
private

Definition at line 166 of file namespacedef.cpp.

Referenced by addMembersToMemberGroup(), subGrouping(), and writeMemberGroups().

◆ []

enum { ... } NamespaceDefImpl::m_type

◆ m_usingDeclList

LinkedRefMap<const Definition> NamespaceDefImpl::m_usingDeclList
private

Definition at line 154 of file namespacedef.cpp.

Referenced by addUsingDeclaration(), findInnerCompound(), and getUsedDefinitions().

◆ m_usingDirList

LinkedRefMap<NamespaceDef> NamespaceDefImpl::m_usingDirList
private

◆ metaData

QCString NamespaceDefImpl::metaData
private

Definition at line 169 of file namespacedef.cpp.

Referenced by setMetaData(), and writeBriefDescription().


The documentation for this class was generated from the following file: