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

Public Member Functions

 ModuleDefImpl (const QCString &fileName, int startLine, int startColom, const QCString &name, Type type, const QCString &partitionName)
DefType definitionType () const override
CodeSymbolType codeSymbolType () const override
QCString displayName (bool=TRUE) const override
QCString getOutputFileBase () const override
QCString anchor () const override
bool isLinkableInProject () const override
bool isLinkable () const override
QCString qualifiedName () const override
void writeSummaryLinks (OutputList &ol) const override
Type moduleType () const override
QCString partitionName () const override
void writeDocumentation (OutputList &ol) override
bool isPrimaryInterface () const override
MemberListgetMemberList (MemberListType lt) const override
const MemberListsgetMemberLists () const override
const MemberGroupListgetMemberGroups () const override
const ClassLinkedRefMapgetClasses () const override
const ConceptLinkedRefMapgetConcepts () const override
int countVisibleMembers () const override
FileDefgetFileDef () const override
const ImportInfoMapgetImports () const override
const ImportInfoMapgetExports () const override
const ModuleMappartitions () const override
void writeTagFile (TextStream &t) const override
FileList getUsedFiles () const override
void writeExports (OutputList &ol, const QCString &title)
void writeClassDeclarations (OutputList &ol, const QCString &title)
void writeConcepts (OutputList &ol, const QCString &title)
void writeFiles (OutputList &ol, const QCString &title)
void startMemberDeclarations (OutputList &ol)
void endMemberDeclarations (OutputList &ol)
void startMemberDocumentation (OutputList &ol)
void endMemberDocumentation (OutputList &ol)
void writeDetailedDescription (OutputList &ol, const QCString &title)
void writeBriefDescription (OutputList &ol)
void writeMemberGroups (OutputList &ol)
void writeMemberDeclarations (OutputList &ol, MemberListType lt, const QCString &title)
void writeMemberDocumentation (OutputList &ol, MemberListType lt, const QCString &title)
void writeAuthorSection (OutputList &ol)
void writeDeclarationLink (OutputList &ol, bool &found, const QCString &header, bool localNames) const
void addHeader (int line, const QCString &headerName, bool isSystem)
void addImport (int line, const QCString &moduleName, const QCString &partitionName, bool isExported)
void addClassToModule (const Entry *root, ClassDef *cd)
void addConceptToModule (const Entry *root, ConceptDef *cd)
void addMemberToModule (const Entry *root, MemberDef *md)
void addPartition (ModuleDefImpl *mod)
void addContributingModule (ModuleDefImpl *mod)
void setPrimaryInterface (const ModuleDef *mod)
void setFileDef (FileDef *fd)
void addMemberToList (MemberListType lt, MemberDef *md)
void addExportedModule (const QCString &moduleName, const ImportInfo &info)
void addListReferences ()
void addMembersToMemberGroup ()
void distributeMemberGroupDocumentation ()
void findSectionsInDocumentation ()
void sortMemberLists ()
void mergeSymbolsFrom (ModuleDefImpl *other)
bool hasDetailedDescription () const
void countMembers ()
Public Member Functions inherited from DefinitionMixin< ModuleDef >
 DefinitionMixin (const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
 DefinitionMixin (const DefinitionMixin &other)
 DefinitionMixin (DefinitionMixin &&)=delete
DefinitionMixinoperator= (const DefinitionMixin &other)
DefinitionMixinoperator= (DefinitionMixin &&)=delete
 ~DefinitionMixin () override=default
bool isAlias () const override
const QCStringname () const override
bool isAnonymous () const override
const QCStringlocalName () 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 DefinitionfindInnerCompound (const QCString &name) 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 setName (const QCString &name) 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 mergeRefItems (Definition *def) override
void mergeReferences (const Definition *other) override
void mergeReferencedBy (const Definition *other) override
void addInnerCompound (Definition *def) 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
void makePartOfGroup (GroupDef *gd) override
void writeNavigationPath (OutputList &ol) const override
QCString navigationPathAsString () const override
void writeQuickMemberLinks (OutputList &ol, const MemberDef *md) 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 Attributes

Type m_type
QCString m_partitionName
ImportInfoMap m_imports
ImportInfoMap m_exportedModules
ClassLinkedRefMap m_classes
ConceptLinkedRefMap m_concepts
MemberLists m_memberLists
ModuleMap m_partitions
ModuleList m_contributing
MemberGroupList m_memberGroups
const ModuleDefm_primaryInterface = nullptr
FileDefm_fileDef = nullptr

Additional Inherited Members

Public Types inherited from ModuleDef
enum class  Type { Interface , Implementation }
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 48 of file moduledef.cpp.

Constructor & Destructor Documentation

◆ ModuleDefImpl()

ModuleDefImpl::ModuleDefImpl ( const QCString & fileName,
int startLine,
int startColom,
const QCString & name,
Type type,
const QCString & partitionName )
inline

Definition at line 51 of file moduledef.cpp.

53 : DefinitionMixin<ModuleDef>(fileName,startLine,startColom,name,nullptr,nullptr,true),
virtual const QCString & name() const =0
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
QCString partitionName() const override
Definition moduledef.cpp:73
QCString m_partitionName

References DefinitionMixin< ModuleDef >::DefinitionMixin(), m_partitionName, m_type, DefinitionMixin< ModuleDef >::name(), and partitionName().

Referenced by addContributingModule(), addPartition(), and mergeSymbolsFrom().

Member Function Documentation

◆ addClassToModule()

void ModuleDefImpl::addClassToModule ( const Entry * root,
ClassDef * cd )

Definition at line 201 of file moduledef.cpp.

202{
203 QCString className = cd->qualifiedName();
204 AUTO_TRACE("{}:{} class {} of module {} exported={}",
205 root->fileName,root->startLine, className, name(), root->exported);
206 bool isExported = m_classes.find(className)!=nullptr;
207 if (root->exported && !isExported)
208 {
209 m_classes.add(className,cd);
210 }
211 auto cdm = toClassDefMutable(cd);
212 if (cdm && root->exported && !cd->isExported())
213 {
214 cdm->setExported(true);
215 }
216}
virtual bool isExported() const =0
virtual QCString qualifiedName() const =0
bool exported
is the symbol exported from a C++20 module
Definition entry.h:189
QCString fileName
file this entry was extracted from
Definition entry.h:223
int startLine
start line of entry in the source
Definition entry.h:224
ClassLinkedRefMap m_classes
ClassDefMutable * toClassDefMutable(Definition *d)
#define AUTO_TRACE(...)
Definition docnode.cpp:46

References AUTO_TRACE, Entry::exported, Entry::fileName, Definition::isExported(), DefinitionMixin< ModuleDef >::isExported(), m_classes, DefinitionMixin< ModuleDef >::name(), Definition::qualifiedName(), Entry::startLine, and toClassDefMutable().

Referenced by ModuleManager::addClassToModule().

◆ addConceptToModule()

void ModuleDefImpl::addConceptToModule ( const Entry * root,
ConceptDef * cd )

Definition at line 218 of file moduledef.cpp.

219{
220 QCString conceptName = cd->qualifiedName();
221 AUTO_TRACE("{}:{} concept {} of module {} exported={}",
222 root->fileName,root->startLine,
223 cd->qualifiedName(),name(),
224 root->exported);
225 bool isExported = m_classes.find(conceptName)!=nullptr;
226 if (root->exported && !isExported)
227 {
228 m_concepts.add(conceptName,cd);
229 }
230 auto cdm = toConceptDefMutable(cd);
231 if (cdm && root->exported && !cd->isExported())
232 {
233 cdm->setExported(true);
234 }
235}
ConceptLinkedRefMap m_concepts
ConceptDefMutable * toConceptDefMutable(Definition *d)

References AUTO_TRACE, Entry::exported, Entry::fileName, Definition::isExported(), DefinitionMixin< ModuleDef >::isExported(), m_classes, m_concepts, DefinitionMixin< ModuleDef >::name(), Definition::qualifiedName(), Entry::startLine, and toConceptDefMutable().

Referenced by ModuleManager::addConceptToModule().

◆ addContributingModule()

void ModuleDefImpl::addContributingModule ( ModuleDefImpl * mod)

Definition at line 166 of file moduledef.cpp.

167{
168 if (std::find(m_contributing.begin(),m_contributing.end(),mod)==m_contributing.end())
169 {
170 m_contributing.push_back(mod);
171 }
172}
ModuleList m_contributing

References m_contributing, and ModuleDefImpl().

Referenced by ModuleManager::collectExportedSymbols().

◆ addExportedModule()

void ModuleDefImpl::addExportedModule ( const QCString & moduleName,
const ImportInfo & info )

Definition at line 195 of file moduledef.cpp.

196{
197 AUTO_TRACE("name={}:moduleName={},import={}",name(),moduleName,info.importName);
198 m_exportedModules[moduleName.str()].push_back(info);
199}
const QCString & name() const override
ImportInfoMap m_exportedModules
const std::string & str() const
Definition qcstring.h:537
QCString importName
Definition moduledef.h:44

References AUTO_TRACE, ImportInfo::importName, m_exportedModules, DefinitionMixin< ModuleDef >::name(), and QCString::str().

Referenced by ModuleManager::resolvePartitions(), and ModuleManager::resolvePartitionsRecursively().

◆ addHeader()

void ModuleDefImpl::addHeader ( int line,
const QCString & headerName,
bool isSystem )

Definition at line 184 of file moduledef.cpp.

185{
186 AUTO_TRACE("name={}:line={},header={},isSystem={}",name(),line,headerName,isSystem);
187}

References AUTO_TRACE, and DefinitionMixin< ModuleDef >::name().

Referenced by ModuleManager::addHeader().

◆ addImport()

void ModuleDefImpl::addImport ( int line,
const QCString & moduleName,
const QCString & partitionName,
bool isExported )

Definition at line 189 of file moduledef.cpp.

190{
191 AUTO_TRACE("name={}:line={},module={},partition={}",name(),line,moduleName,partitionName);
192 m_imports[getDefFileName().str()+":"+std::to_string(line)].push_back(ImportInfo(this,moduleName,line,partitionName,isExported));
193}
QCString getDefFileName() const override
ImportInfoMap m_imports

References AUTO_TRACE, DefinitionMixin< ModuleDef >::getDefFileName(), DefinitionMixin< ModuleDef >::isExported(), m_imports, DefinitionMixin< ModuleDef >::name(), partitionName(), and QCString::str().

Referenced by ModuleManager::addImport().

◆ addListReferences()

void ModuleDefImpl::addListReferences ( )

Definition at line 659 of file moduledef.cpp.

660{
661 const RefItemVector &xrefItems = xrefListItems();
662 addRefItem(xrefItems,
664 getLanguage()==SrcLangExt::Fortran ?
668 QCString(),
669 this
670 );
671 for (const auto &mg : m_memberGroups)
672 {
673 mg->addListReferences(this);
674 }
675 for (auto &ml : m_memberLists)
676 {
677 if (ml->listType().isDocumentation())
678 {
679 ml->addListReferences(this);
680 }
681 }
682}
const RefItemVector & xrefListItems() const override
SrcLangExt getLanguage() const override
QCString getOutputFileBase() const override
QCString qualifiedName() const override
MemberLists m_memberLists
QCString displayName(bool=TRUE) const override
Definition moduledef.cpp:59
MemberGroupList m_memberGroups
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
std::vector< RefItem * > RefItemVector
Definition reflist.h:133
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:5311

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

Referenced by ModuleManager::addListReferences().

◆ addMembersToMemberGroup()

void ModuleDefImpl::addMembersToMemberGroup ( )

Definition at line 684 of file moduledef.cpp.

685{
686 for (auto &ml : m_memberLists)
687 {
688 if (ml->listType().isDeclaration())
689 {
691 }
692 }
693
694 // add members inside sections to their groups
695 for (const auto &mg : m_memberGroups)
696 {
697 if (mg->allMembersInSameSection() && Config_getBool(SUBGROUPING))
698 {
699 //printf("----> addToDeclarationSection(%s)\n",qPrint(mg->header()));
700 mg->addToDeclarationSection();
701 }
702 }
703}
void addMembersToMemberGroup()
#define Config_getBool(name)
Definition config.h:33

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

Referenced by addMembersToMemberGroup(), and ModuleManager::addMembersToMemberGroup().

◆ addMemberToList()

void ModuleDefImpl::addMemberToList ( MemberListType lt,
MemberDef * md )

Definition at line 249 of file moduledef.cpp.

250{
251 bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS);
252 bool sortMemberDocs = Config_getBool(SORT_MEMBER_DOCS);
254 ml->setNeedsSorting(
255 (ml->listType().isDeclaration() && sortBriefDocs) ||
256 (ml->listType().isDocumentation() && sortMemberDocs));
257 ml->push_back(md);
258 if (ml->listType().isDeclaration())
259 {
260 MemberDefMutable *mdm = toMemberDefMutable(md);
261 if (mdm)
262 {
263 mdm->setSectionList(this,ml.get());
264 }
265 }
266}
virtual void setSectionList(const Definition *container, const MemberList *sl)=0
MemberDefMutable * toMemberDefMutable(Definition *d)

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

Referenced by addMemberToModule().

◆ addMemberToModule()

void ModuleDefImpl::addMemberToModule ( const Entry * root,
MemberDef * md )

Definition at line 268 of file moduledef.cpp.

269{
270 AUTO_TRACE("{}:{} member {} of module {} exported={}",
271 qPrint(root->fileName),root->startLine,
273 root->exported);
274 MemberList *allMemberList = getMemberList(MemberListType::AllMembersList());
275 if (allMemberList==nullptr)
276 {
277 m_memberLists.emplace_back(std::make_unique<MemberList>(MemberListType::AllMembersList(),MemberListContainer::Module));
278 allMemberList = m_memberLists.back().get();
279 }
280 if (allMemberList->contains(md))
281 {
282 return;
283 }
284 allMemberList->push_back(md);
285 switch (md->memberType())
286 {
288 addMemberToList(MemberListType::DecVarMembers(),md);
289 break;
291 addMemberToList(MemberListType::DecFuncMembers(),md);
292 break;
294 addMemberToList(MemberListType::DecTypedefMembers(),md);
295 break;
297 addMemberToList(MemberListType::DecEnumMembers(),md);
298 break;
299 default:
300 break;
301 }
302 auto mdm = toMemberDefMutable(md);
303 if (mdm && root->exported && !md->isExported())
304 {
305 mdm->setExported(true);
306 }
307}
virtual MemberType memberType() const =0
bool contains(const MemberDef *md) const
Definition memberlist.h:89
void push_back(const T &value)
Definition memberlist.h:48
MemberList * getMemberList(MemberListType lt) const override
void addMemberToList(MemberListType lt, MemberDef *md)
const char * qPrint(const char *s)
Definition qcstring.h:672
@ Enumeration
Definition types.h:557
@ Variable
Definition types.h:555
@ Typedef
Definition types.h:556
@ Function
Definition types.h:554

References addMemberToList(), AUTO_TRACE, MemberVector::contains(), Enumeration, Entry::exported, Entry::fileName, Function, getMemberList(), Definition::isExported(), m_memberLists, MemberDef::memberType(), Module, DefinitionMixin< ModuleDef >::name(), MemberVector::push_back(), qPrint(), Definition::qualifiedName(), Entry::startLine, toMemberDefMutable(), Typedef, and Variable.

Referenced by ModuleManager::addMemberToModule().

◆ addPartition()

void ModuleDefImpl::addPartition ( ModuleDefImpl * mod)

Definition at line 157 of file moduledef.cpp.

158{
159 std::string qName = mod->qualifiedName().str();
160 if (m_partitions.find(qName)==m_partitions.end())
161 {
162 m_partitions.emplace(qName,mod);
163 }
164}
ModuleMap m_partitions

References m_partitions, ModuleDefImpl(), qualifiedName(), and QCString::str().

Referenced by ModuleManager::resolvePartitionsRecursively().

◆ anchor()

QCString ModuleDefImpl::anchor ( ) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 61 of file moduledef.cpp.

61{ return ""; }

Referenced by writeDeclarationLink().

◆ codeSymbolType()

CodeSymbolType ModuleDefImpl::codeSymbolType ( ) const
inlineoverridevirtual

Used for syntax highlighting symbol class

Implements Definition.

Definition at line 58 of file moduledef.cpp.

References Module.

◆ countMembers()

void ModuleDefImpl::countMembers ( )

Definition at line 645 of file moduledef.cpp.

646{
647 for (auto &ml : m_memberLists)
648 {
649 ml->countDecMembers();
650 ml->countDocMembers();
651 }
652 for (const auto &mg : m_memberGroups)
653 {
654 mg->countDecMembers();
655 mg->countDocMembers();
656 }
657}

References m_memberGroups, and m_memberLists.

Referenced by ModuleManager::countMembers().

◆ countVisibleMembers()

int ModuleDefImpl::countVisibleMembers ( ) const
overridevirtual

Implements ModuleDef.

Definition at line 994 of file moduledef.cpp.

995{
996 int count=0;
997 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Module))
998 {
999 if (lde->kind()==LayoutDocEntry::MemberDecl)
1000 {
1001 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
1002 if (lmd)
1003 {
1004 MemberList *ml = getMemberList(lmd->type);
1005 if (ml)
1006 {
1007 for (const auto &md : *ml)
1008 {
1009 if (md->visibleInIndex())
1010 {
1011 count++;
1012 }
1013 }
1014 }
1015 }
1016 }
1017 else if (lde->kind()==LayoutDocEntry::ModuleClasses)
1018 {
1019 for (const auto &cd : getClasses())
1020 {
1021 if (cd->isLinkableInProject())
1022 {
1023 count++;
1024 }
1025 }
1026 }
1027 else if (lde->kind()==LayoutDocEntry::ModuleConcepts)
1028 {
1029 for (const auto &cd : getConcepts())
1030 {
1031 if (cd->isLinkableInProject())
1032 {
1033 count++;
1034 }
1035 }
1036 }
1037 }
1038 return count;
1039}
static LayoutDocManager & instance()
Returns a reference to this singleton.
Definition layout.cpp:1435
const ClassLinkedRefMap & getClasses() const override
Definition moduledef.cpp:79
const ConceptLinkedRefMap & getConcepts() const override
Definition moduledef.cpp:80
MemberListType type
Definition layout.h:118

References getClasses(), getConcepts(), getMemberList(), LayoutDocManager::instance(), and LayoutDocEntryMemberDecl::type.

◆ definitionType()

DefType ModuleDefImpl::definitionType ( ) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 57 of file moduledef.cpp.

57{ return TypeModule; }

References Definition::TypeModule.

◆ displayName()

QCString ModuleDefImpl::displayName ( bool includeScope = TRUE) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 59 of file moduledef.cpp.

59{ return name(); }

References DefinitionMixin< ModuleDef >::name(), and TRUE.

Referenced by addListReferences(), writeDeclarationLink(), and writeDocumentation().

◆ distributeMemberGroupDocumentation()

void ModuleDefImpl::distributeMemberGroupDocumentation ( )

Definition at line 705 of file moduledef.cpp.

706{
707 for (const auto &mg : m_memberGroups)
708 {
709 mg->distributeMemberGroupDocumentation();
710 }
711}

References m_memberGroups.

Referenced by ModuleManager::distributeMemberGroupDocumentation().

◆ endMemberDeclarations()

void ModuleDefImpl::endMemberDeclarations ( OutputList & ol)

Definition at line 505 of file moduledef.cpp.

506{
508}
void endMemberSections()
Definition outputlist.h:464

References OutputList::endMemberSections().

Referenced by writeDocumentation().

◆ endMemberDocumentation()

void ModuleDefImpl::endMemberDocumentation ( OutputList & ol)

Definition at line 519 of file moduledef.cpp.

520{
521 if (Config_getBool(SEPARATE_MEMBER_PAGES))
522 {
525 }
526}
static bool suppressDocWarnings
Definition doxygen.h:132
void enable(OutputType o)
#define FALSE
Definition qcstring.h:34

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

Referenced by writeDocumentation().

◆ findSectionsInDocumentation()

void ModuleDefImpl::findSectionsInDocumentation ( )

Definition at line 713 of file moduledef.cpp.

714{
718 for (const auto &mg : m_memberGroups)
719 {
720 mg->findSectionsInDocumentation(this);
721 }
722 for (auto &ml : m_memberLists)
723 {
724 if (ml->listType().isDeclaration())
725 {
726 ml->findSectionsInDocumentation(this);
727 }
728 }
729}
QCString docFile() const override
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< ModuleDef >::briefDescription(), DefinitionMixin< ModuleDef >::docFile(), docFindSections(), DefinitionMixin< ModuleDef >::documentation(), DefinitionMixin< ModuleDef >::inbodyDocumentation(), m_memberGroups, and m_memberLists.

Referenced by ModuleManager::findSectionsInDocumentation().

◆ getClasses()

const ClassLinkedRefMap & ModuleDefImpl::getClasses ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 79 of file moduledef.cpp.

79{ return m_classes; }

References m_classes.

Referenced by countVisibleMembers(), and mergeSymbolsFrom().

◆ getConcepts()

const ConceptLinkedRefMap & ModuleDefImpl::getConcepts ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 80 of file moduledef.cpp.

80{ return m_concepts; }

References m_concepts.

Referenced by countVisibleMembers(), and mergeSymbolsFrom().

◆ getExports()

const ImportInfoMap & ModuleDefImpl::getExports ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 84 of file moduledef.cpp.

84{ return m_exportedModules; }

References m_exportedModules.

◆ getFileDef()

FileDef * ModuleDefImpl::getFileDef ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 82 of file moduledef.cpp.

82{ return m_fileDef; }
FileDef * m_fileDef

References m_fileDef.

Referenced by writeTagFile().

◆ getImports()

const ImportInfoMap & ModuleDefImpl::getImports ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 83 of file moduledef.cpp.

83{ return m_imports; }

References m_imports.

◆ getMemberGroups()

const MemberGroupList & ModuleDefImpl::getMemberGroups ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 78 of file moduledef.cpp.

78{ return m_memberGroups; }

References m_memberGroups.

◆ getMemberList()

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

Implements ModuleDef.

Definition at line 237 of file moduledef.cpp.

238{
239 for (auto &ml : m_memberLists)
240 {
241 if (ml->listType()==lt)
242 {
243 return ml.get();
244 }
245 }
246 return nullptr;
247}

References m_memberLists.

Referenced by addMemberToModule(), countVisibleMembers(), mergeSymbolsFrom(), writeMemberDeclarations(), writeMemberDocumentation(), writeSummaryLinks(), and writeTagFile().

◆ getMemberLists()

const MemberLists & ModuleDefImpl::getMemberLists ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 77 of file moduledef.cpp.

77{ return m_memberLists; }

References m_memberLists.

◆ getOutputFileBase()

QCString ModuleDefImpl::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 142 of file moduledef.cpp.

143{
144 return convertNameToFile("module_" + name());
145}
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:4013

References convertNameToFile(), and DefinitionMixin< ModuleDef >::name().

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

◆ getUsedFiles()

FileList ModuleDefImpl::getUsedFiles ( ) const
overridevirtual

Implements ModuleDef.

Definition at line 983 of file moduledef.cpp.

984{
985 FileList result;
986 for (const auto &mod : m_contributing)
987 {
988 FileDef *fd = mod->getFileDef();
989 if (fd) result.push_back(fd);
990 }
991 return result;
992}

References m_contributing.

Referenced by writeTagFile().

◆ hasDetailedDescription()

bool ModuleDefImpl::hasDetailedDescription ( ) const

Definition at line 639 of file moduledef.cpp.

640{
641 bool repeatBrief = Config_getBool(REPEAT_BRIEF);
642 return (!briefDescription().isEmpty() && repeatBrief) || !documentation().isEmpty();
643}
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:150

References DefinitionMixin< ModuleDef >::briefDescription(), Config_getBool, DefinitionMixin< ModuleDef >::documentation(), and QCString::isEmpty().

Referenced by writeBriefDescription(), and writeDetailedDescription().

◆ isLinkable()

bool ModuleDefImpl::isLinkable ( ) const
inlineoverridevirtual

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 65 of file moduledef.cpp.

65 {
66 if (m_primaryInterface) return m_primaryInterface->isLinkable();
67 else return hasDocumentation(); }
bool hasDocumentation() const override
const ModuleDef * m_primaryInterface

References DefinitionMixin< ModuleDef >::hasDocumentation(), and m_primaryInterface.

Referenced by isLinkableInProject(), and writeDeclarationLink().

◆ isLinkableInProject()

bool ModuleDefImpl::isLinkableInProject ( ) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 62 of file moduledef.cpp.

62 {
63 if (m_primaryInterface) return m_primaryInterface->isLinkableInProject();
64 else return isLinkable() && !isHidden() && !isReference(); }
bool isReference() const override
bool isHidden() const override
bool isLinkable() const override
Definition moduledef.cpp:65

References DefinitionMixin< ModuleDef >::isHidden(), isLinkable(), DefinitionMixin< ModuleDef >::isReference(), and m_primaryInterface.

Referenced by writeTagFile().

◆ isPrimaryInterface()

bool ModuleDefImpl::isPrimaryInterface ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 75 of file moduledef.cpp.

75{ return m_type==Type::Interface && m_partitionName.isEmpty(); }

References ModuleDef::Interface, m_partitionName, and m_type.

Referenced by writeTagFile().

◆ mergeSymbolsFrom()

void ModuleDefImpl::mergeSymbolsFrom ( ModuleDefImpl * other)

Definition at line 309 of file moduledef.cpp.

310{
311 AUTO_TRACE("{} merging symbols of {} ({}:{})",
312 name(),other->qualifiedName(),other->getDefFileName(),other->getDefLine());
313 for (const auto &cd : other->getClasses())
314 {
315 m_classes.add(cd->qualifiedName(),cd);
316 }
317 for (const auto &cd : other->getConcepts())
318 {
319 m_concepts.add(cd->qualifiedName(),cd);
320 }
321 auto mergeMemberList = [this,other](MemberListType lt)
322 {
323 const auto srcMl = other->getMemberList(lt);
324 if (srcMl)
325 {
326 auto &dstMl = m_memberLists.get(lt,srcMl->container());
327 for (const auto &md : *srcMl)
328 {
329 dstMl->push_back(md);
330 }
331 }
332 };
333 mergeMemberList(MemberListType::DecVarMembers());
334 mergeMemberList(MemberListType::DecFuncMembers());
335 mergeMemberList(MemberListType::DecTypedefMembers());
336 mergeMemberList(MemberListType::DecEnumMembers());
337}
int getDefLine() const override

References AUTO_TRACE, getClasses(), getConcepts(), DefinitionMixin< Base >::getDefFileName(), DefinitionMixin< Base >::getDefLine(), getMemberList(), m_classes, m_concepts, m_memberLists, ModuleDefImpl(), DefinitionMixin< ModuleDef >::name(), and qualifiedName().

◆ moduleType()

Type ModuleDefImpl::moduleType ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 72 of file moduledef.cpp.

72{ return m_type; }

References m_type.

◆ partitionName()

QCString ModuleDefImpl::partitionName ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 73 of file moduledef.cpp.

73{ return m_partitionName; }

References m_partitionName.

Referenced by addImport(), and ModuleDefImpl().

◆ partitions()

const ModuleMap & ModuleDefImpl::partitions ( ) const
inlineoverridevirtual

Implements ModuleDef.

Definition at line 85 of file moduledef.cpp.

85{ return m_partitions; }

References m_partitions.

◆ qualifiedName()

QCString ModuleDefImpl::qualifiedName ( ) const
overridevirtual

Returns the fully qualified name of this definition

Reimplemented from DefinitionMixin< ModuleDef >.

Definition at line 147 of file moduledef.cpp.

148{
149 QCString result=name();
150 if (!m_partitionName.isEmpty())
151 {
152 result+=":"+m_partitionName;
153 }
154 return result;
155}

References m_partitionName, and DefinitionMixin< ModuleDef >::name().

Referenced by addListReferences(), addPartition(), and mergeSymbolsFrom().

◆ setFileDef()

void ModuleDefImpl::setFileDef ( FileDef * fd)

Definition at line 179 of file moduledef.cpp.

180{
181 m_fileDef = fd;
182}

References m_fileDef.

Referenced by ModuleManager::resolvePartitions().

◆ setPrimaryInterface()

void ModuleDefImpl::setPrimaryInterface ( const ModuleDef * mod)

Definition at line 174 of file moduledef.cpp.

175{
176 m_primaryInterface = mod;
177}

References m_primaryInterface.

Referenced by ModuleManager::resolvePartitionsRecursively().

◆ sortMemberLists()

void ModuleDefImpl::sortMemberLists ( )

Definition at line 731 of file moduledef.cpp.

732{
733 for (auto &ml : m_memberLists)
734 {
735 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(FALSE); }
736 }
737
738 if (Config_getBool(SORT_BRIEF_DOCS))
739 {
740 auto classComp = [](const ClassLinkedRefMap::Ptr &c1,const ClassLinkedRefMap::Ptr &c2)
741 {
742 return Config_getBool(SORT_BY_SCOPE_NAME) ?
743 qstricmp_sort(c1->name(), c2->name())<0 :
744 qstricmp_sort(c1->className(), c2->className())<0;
745 };
746 std::stable_sort(m_classes.begin(), m_classes.end(), classComp);
747
748 auto conceptComp = [](const ConceptLinkedRefMap::Ptr &c1,const ConceptLinkedRefMap::Ptr &c2)
749 {
750 return Config_getBool(SORT_BY_SCOPE_NAME) ?
751 qstricmp_sort(c1->qualifiedName(), c2->qualifiedName())<0 :
752 qstricmp_sort(c1->name(), c2->name())<0;
753 };
754 std::stable_sort(m_concepts.begin(), m_concepts.end(), conceptComp);
755 }
756
757 static auto contrComp = [](const ModuleDef *m1, const ModuleDef *m2)
758 {
759 FileDef *f1 = m1->getFileDef();
760 FileDef *f2 = m2->getFileDef();
761 QCString fn1 = f1 ? f1->name() : m1->name();
762 QCString fn2 = f2 ? f2->name() : m2->name();
763 static auto typeRank = [](const ModuleDef *m) -> int
764 {
765 if (m->moduleType()==ModuleDef::Type::Interface)
766 {
767 if (m->partitionName().isEmpty()) return 0; // primary interface unit
768 return 1; // partition interface unit
769 }
770 else
771 {
772 if (!m->partitionName().isEmpty()) return 2; // partition implementation unit
773 return 3; // implementation unit
774 }
775 };
776 auto tr1 = typeRank(m1);
777 auto tr2 = typeRank(m2);
778 int diff = qstricmp_sort(fn1,fn2);
779 return tr1<tr2 || (tr1==tr2 && diff<0);
780 };
781
782 std::stable_sort(m_contributing.begin(), m_contributing.end(), contrComp);
783}
virtual QCString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
virtual FileDef * getFileDef() const =0
int qstricmp_sort(const char *str1, const char *str2)
Definition qcstring.h:86

References ClassDef::className(), Config_getBool, FALSE, ModuleDef::getFileDef(), ModuleDef::Interface, m_classes, m_concepts, m_contributing, m_memberLists, Definition::name(), qstricmp_sort(), and Definition::qualifiedName().

Referenced by ModuleManager::sortMemberLists().

◆ startMemberDeclarations()

void ModuleDefImpl::startMemberDeclarations ( OutputList & ol)

Definition at line 500 of file moduledef.cpp.

501{
503}
void startMemberSections()
Definition outputlist.h:462

References OutputList::startMemberSections().

Referenced by writeDocumentation().

◆ startMemberDocumentation()

void ModuleDefImpl::startMemberDocumentation ( OutputList & ol)

Definition at line 510 of file moduledef.cpp.

511{
512 if (Config_getBool(SEPARATE_MEMBER_PAGES))
513 {
516 }
517}
void disable(OutputType o)

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

Referenced by writeDocumentation().

◆ writeAuthorSection()

void ModuleDefImpl::writeAuthorSection ( OutputList & ol)

Definition at line 627 of file moduledef.cpp.

628{
629 // write Author section (Man only)
632 ol.startGroupHeader();
634 ol.endGroupHeader();
637}
void startGroupHeader(int extraLevels=0)
Definition outputlist.h:454
void pushGeneratorState()
void disableAllBut(OutputType o)
void popGeneratorState()
void endGroupHeader(int extraLevels=0)
Definition outputlist.h:456
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 ModuleDefImpl::writeBriefDescription ( OutputList & ol)

Definition at line 571 of file moduledef.cpp.

572{
574 {
575 auto parser { createDocParser() };
576 auto ast { validatingParseDoc(*parser.get(),
577 briefFile(),briefLine(),this,nullptr,
579 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT)) };
580 if (!ast->isEmpty())
581 {
582 ol.startParagraph();
585 ol.writeString(" - ");
587 ol.writeDoc(ast.get(),this,nullptr);
590 ol.writeString(" \n");
592
594 {
596 ol.startTextLink(QCString(),"details");
598 ol.endTextLink();
599 }
601 ol.endParagraph();
602 }
603 }
604 ol.writeSynopsis();
605}
virtual QCString briefFile() const =0
bool hasBriefDescription() const override
int briefLine() const override
bool hasDetailedDescription() const
void writeString(const QCString &text)
Definition outputlist.h:412
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md)
Definition outputlist.h:384
void startParagraph(const QCString &classDef=QCString())
Definition outputlist.h:408
void endParagraph()
Definition outputlist.h:410
void endTextLink()
Definition outputlist.h:445
void writeSynopsis()
Definition outputlist.h:593
void startTextLink(const QCString &file, const QCString &anchor)
Definition outputlist.h:443
virtual QCString trMore()=0
IDocParserPtr createDocParser()
factory function to create a parser
Definition docparser.cpp:55
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)

References DefinitionMixin< ModuleDef >::briefDescription(), DefinitionMixin< ModuleDef >::briefFile(), DefinitionMixin< ModuleDef >::briefLine(), Config_getBool, createDocParser(), OutputList::disable(), OutputList::disableAllBut(), OutputList::enable(), OutputList::endParagraph(), OutputList::endTextLink(), FALSE, DefinitionMixin< ModuleDef >::hasBriefDescription(), hasDetailedDescription(), Html, Man, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, OutputList::startParagraph(), OutputList::startTextLink(), theTranslator, TRUE, validatingParseDoc(), OutputList::writeDoc(), OutputList::writeString(), and OutputList::writeSynopsis().

Referenced by writeDocumentation().

◆ writeClassDeclarations()

void ModuleDefImpl::writeClassDeclarations ( OutputList & ol,
const QCString & title )

Definition at line 490 of file moduledef.cpp.

491{
492 m_classes.writeDeclaration(ol,nullptr,title,FALSE);
493}

References FALSE, and m_classes.

Referenced by writeDocumentation().

◆ writeConcepts()

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

Definition at line 495 of file moduledef.cpp.

496{
497 m_concepts.writeDeclaration(ol,title,FALSE);
498}

References FALSE, and m_concepts.

Referenced by writeDocumentation().

◆ writeDeclarationLink()

void ModuleDefImpl::writeDeclarationLink ( OutputList & ol,
bool & found,
const QCString & header,
bool localNames ) const

Definition at line 833 of file moduledef.cpp.

834{
835 if (isLinkable())
836 {
837 if (!found) // first module
838 {
839 ol.startMemberHeader("modules");
840 if (!header.isEmpty())
841 {
842 ol.parseText(header);
843 }
844 else
845 {
846 theTranslator->trModule(true,false);
847 }
848 ol.endMemberHeader();
849 ol.startMemberList();
850 found=TRUE;
851 }
854 ol.writeString("module ");
855 QCString cname = displayName(!localNames);
857 if (isLinkable())
858 {
861 anchor(),
862 cname
863 );
864 }
865 else
866 {
867 ol.startBold();
868 ol.docify(cname);
869 ol.endBold();
870 }
872 // add the brief description if available
873 if (!briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
874 {
875 auto parser { createDocParser() };
876 auto ast { validatingParseDoc(
877 *parser.get(),briefFile(),briefLine(),this,nullptr,
879 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT)) };
880 if (!ast->isEmpty())
881 {
883 ol.writeDoc(ast.get(),this,nullptr);
885 }
886 }
887 ol.endMemberDeclaration(anchor(),QCString());
888 }
889}
QCString getReference() const override
QCString anchor() const override
Definition moduledef.cpp:61
void startMemberDeclaration()
Definition outputlist.h:570
void endMemberDescription()
Definition outputlist.h:568
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
Definition outputlist.h:440
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
Definition outputlist.h:566
void docify(const QCString &s)
Definition outputlist.h:438
void startMemberList()
Definition outputlist.h:482
void startBold()
Definition outputlist.h:562
void endMemberItem(OutputGenerator::MemberItemType type)
Definition outputlist.h:496
void insertMemberAlign(bool templ=FALSE)
Definition outputlist.h:518
void endBold()
Definition outputlist.h:564
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
Definition outputlist.h:572
void endMemberHeader()
Definition outputlist.h:472
void startMemberItem(const QCString &anchor, OutputGenerator::MemberItemType type, const QCString &id=QCString())
Definition outputlist.h:494
void startMemberHeader(const QCString &anchor, int typ=2)
Definition outputlist.h:470
bool found
Definition util.cpp:984

References anchor(), DefinitionMixin< ModuleDef >::briefDescription(), DefinitionMixin< ModuleDef >::briefFile(), DefinitionMixin< ModuleDef >::briefLine(), Config_getBool, createDocParser(), displayName(), OutputList::docify(), OutputList::endBold(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberHeader(), OutputList::endMemberItem(), FALSE, found, getOutputFileBase(), DefinitionMixin< ModuleDef >::getReference(), OutputList::insertMemberAlign(), QCString::isEmpty(), isLinkable(), OutputGenerator::Normal, OutputList::parseText(), OutputList::startBold(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberHeader(), OutputList::startMemberItem(), OutputList::startMemberList(), theTranslator, TRUE, validatingParseDoc(), OutputList::writeDoc(), OutputList::writeObjectLink(), and OutputList::writeString().

Referenced by ModuleLinkedRefMap::writeDeclaration().

◆ writeDetailedDescription()

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

Definition at line 528 of file moduledef.cpp.

529{
531 {
534 ol.writeRuler();
538 ol.writeAnchor(QCString(),"details");
540 ol.startGroupHeader();
541 ol.parseText(title);
542 ol.endGroupHeader();
543
544 ol.startTextBlock();
545 if (!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF))
546 {
548 QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
549 }
550 if (!briefDescription().isEmpty() && Config_getBool(REPEAT_BRIEF) &&
551 !documentation().isEmpty())
552 {
556 ol.enableAll();
559 ol.writeString("\n\n");
561 }
562 if (!documentation().isEmpty())
563 {
564 ol.generateDoc(docFile(),docLine(),this,nullptr,documentation()+"\n",TRUE,FALSE,
565 QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
566 }
567 ol.endTextBlock();
568 }
569}
QCString briefFile() const override
int docLine() const override
void endTextBlock(bool paraBreak=FALSE)
Definition outputlist.h:671
void writeRuler()
Definition outputlist.h:522
void startTextBlock(bool dense=FALSE)
Definition outputlist.h:669
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
void writeAnchor(const QCString &fileName, const QCString &name)
Definition outputlist.h:524
void enableAll()

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

Referenced by writeDocumentation().

◆ writeDocumentation()

void ModuleDefImpl::writeDocumentation ( OutputList & ol)
overridevirtual

Implements ModuleDef.

Definition at line 339 of file moduledef.cpp.

340{
341 if (isReference()) return;
343 AUTO_TRACE("%s file=%s",name(),getDefFileName());
344 SrcLangExt lang = getLanguage();
345 QCString pageTitle;
346 if (Config_getBool(HIDE_COMPOUND_REFERENCE))
347 {
348 pageTitle = displayName();
349 }
350 else
351 {
353 }
354 startFile(ol,getOutputFileBase(),name(),pageTitle,HighlightedItem::ModuleVisible,false,QCString(),0);
355
356 // ---- title part
360
363 ol.parseText(pageTitle);
365
366 addGroupListToTitle(ol,this);
367
370 ol.endTitleHead(getOutputFileBase(),pageTitle);
372
376 ol.writeString(" - ");
377 ol.parseText(pageTitle);
379
380 ol.endHeaderSection();
381 ol.startContents();
382
383 //---------------------------------------- start flexible part -------------------------------
384 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Module))
385 {
386 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
387 switch (lde->kind())
388 {
389 case LayoutDocEntry::BriefDesc:
391 break;
392 case LayoutDocEntry::MemberDeclStart:
394 break;
395 case LayoutDocEntry::ModuleClasses:
396 if (ls) writeClassDeclarations(ol,ls->title(lang));
397 break;
398 case LayoutDocEntry::ModuleConcepts:
399 if (ls) writeConcepts(ol,ls->title(lang));
400 break;
401 case LayoutDocEntry::ModuleExports:
402 if (ls) writeExports(ol,ls->title(lang));
403 break;
404 case LayoutDocEntry::ModuleUsedFiles:
405 if (ls) writeFiles(ol,ls->title(lang));
406 break;
407 case LayoutDocEntry::MemberGroups:
409 break;
410 case LayoutDocEntry::MemberDecl:
411 {
412 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
413 if (lmd) writeMemberDeclarations(ol,lmd->type,lmd->title(lang));
414 }
415 break;
416 case LayoutDocEntry::MemberDeclEnd:
418 break;
419 case LayoutDocEntry::DetailedDesc:
420 if (ls) writeDetailedDescription(ol,ls->title(lang));
421 break;
422 case LayoutDocEntry::MemberDefStart:
424 break;
425 case LayoutDocEntry::MemberDef:
426 {
427 const LayoutDocEntryMemberDef *lmd = dynamic_cast<const LayoutDocEntryMemberDef*>(lde.get());
428 if (lmd) writeMemberDocumentation(ol,lmd->type,lmd->title(lang));
429 }
430 break;
431 case LayoutDocEntry::MemberDefEnd:
433 break;
434 case LayoutDocEntry::AuthorSection:
436 break;
437 case LayoutDocEntry::ClassIncludes:
438 case LayoutDocEntry::ClassInheritanceGraph:
439 case LayoutDocEntry::ClassNestedClasses:
440 case LayoutDocEntry::ClassCollaborationGraph:
441 case LayoutDocEntry::ClassAllMembersLink:
442 case LayoutDocEntry::ClassUsedFiles:
443 case LayoutDocEntry::ClassInlineClasses:
444 case LayoutDocEntry::FileClasses:
445 case LayoutDocEntry::FileConcepts:
446 case LayoutDocEntry::FileInterfaces:
447 case LayoutDocEntry::FileStructs:
448 case LayoutDocEntry::FileExceptions:
449 case LayoutDocEntry::FileNamespaces:
450 case LayoutDocEntry::FileConstantGroups:
451 case LayoutDocEntry::FileIncludes:
452 case LayoutDocEntry::FileIncludeGraph:
453 case LayoutDocEntry::FileIncludedByGraph:
454 case LayoutDocEntry::FileInlineClasses:
455 case LayoutDocEntry::FileSourceLink:
456 case LayoutDocEntry::NamespaceNestedNamespaces:
457 case LayoutDocEntry::NamespaceNestedConstantGroups:
458 case LayoutDocEntry::NamespaceClasses:
459 case LayoutDocEntry::NamespaceConcepts:
460 case LayoutDocEntry::NamespaceInterfaces:
461 case LayoutDocEntry::NamespaceStructs:
462 case LayoutDocEntry::NamespaceExceptions:
463 case LayoutDocEntry::NamespaceInlineClasses:
464 case LayoutDocEntry::ConceptDefinition:
465 case LayoutDocEntry::GroupClasses:
466 case LayoutDocEntry::GroupConcepts:
467 case LayoutDocEntry::GroupModules:
468 case LayoutDocEntry::GroupInlineClasses:
469 case LayoutDocEntry::GroupNamespaces:
470 case LayoutDocEntry::GroupDirs:
471 case LayoutDocEntry::GroupNestedGroups:
472 case LayoutDocEntry::GroupFiles:
473 case LayoutDocEntry::GroupGraph:
474 case LayoutDocEntry::GroupPageDocs:
475 case LayoutDocEntry::DirSubDirs:
476 case LayoutDocEntry::DirFiles:
477 case LayoutDocEntry::DirGraph:
478 err("Internal inconsistency: member '{}' should not be part of "
479 "LayoutDocManager::Module entry list\n",lde->entryToString());
480 break;
481 }
482 }
483
484 //---------------------------------------- end flexible part -------------------------------
485 endFile(ol);
486
488}
void startMemberDeclarations(OutputList &ol)
void endMemberDeclarations(OutputList &ol)
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const QCString &title)
void writeMemberGroups(OutputList &ol)
void startMemberDocumentation(OutputList &ol)
void writeAuthorSection(OutputList &ol)
void writeClassDeclarations(OutputList &ol, const QCString &title)
void writeExports(OutputList &ol, const QCString &title)
void writeFiles(OutputList &ol, const QCString &title)
void endMemberDocumentation(OutputList &ol)
void writeDetailedDescription(OutputList &ol, const QCString &title)
void writeBriefDescription(OutputList &ol)
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const QCString &title)
void writeSummaryLinks(OutputList &ol) const override
void writeConcepts(OutputList &ol, const QCString &title)
void endTitleHead(const QCString &fileName, const QCString &name)
Definition outputlist.h:406
void startTitleHead(const QCString &fileName)
Definition outputlist.h:404
void endHeaderSection()
Definition outputlist.h:468
void startHeaderSection()
Definition outputlist.h:466
void startContents()
Definition outputlist.h:617
virtual QCString trModuleReference(const QCString &namespaceName)=0
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const QCString &navPath)
Definition index.cpp:426
void startFile(OutputList &ol, const QCString &name, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel)
Definition index.cpp:400
#define err(fmt,...)
Definition message.h:127
QCString title(SrcLangExt lang) const
Definition layout.cpp:1786
MemberListType type
Definition layout.h:137
QCString title(SrcLangExt lang) const
Definition layout.cpp:1798
QCString title(SrcLangExt lang) const
Definition layout.cpp:1779
SrcLangExt
Definition types.h:207
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:5398

References addGroupListToTitle(), AUTO_TRACE, Config_getBool, OutputList::disable(), OutputList::disableAllBut(), displayName(), endFile(), OutputList::endHeaderSection(), endMemberDeclarations(), endMemberDocumentation(), OutputList::endTitleHead(), err, DefinitionMixin< ModuleDef >::getDefFileName(), DefinitionMixin< ModuleDef >::getLanguage(), getOutputFileBase(), LayoutDocManager::instance(), DefinitionMixin< ModuleDef >::isReference(), Man, ModuleVisible, DefinitionMixin< ModuleDef >::name(), OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startContents(), startFile(), OutputList::startHeaderSection(), startMemberDeclarations(), startMemberDocumentation(), OutputList::startTitleHead(), theTranslator, LayoutDocEntryMemberDecl::title(), LayoutDocEntryMemberDef::title(), LayoutDocEntrySection::title(), LayoutDocEntryMemberDecl::type, LayoutDocEntryMemberDef::type, writeAuthorSection(), writeBriefDescription(), writeClassDeclarations(), writeConcepts(), writeDetailedDescription(), writeExports(), writeFiles(), writeMemberDeclarations(), writeMemberDocumentation(), writeMemberGroups(), OutputList::writeString(), and writeSummaryLinks().

◆ writeExports()

void ModuleDefImpl::writeExports ( OutputList & ol,
const QCString & title )

Definition at line 892 of file moduledef.cpp.

893{
894 AUTO_TRACE("name={} count={}",name(),m_exportedModules.size());
895 if (!m_exportedModules.empty())
896 {
897 ol.startMemberHeader("exports");
898 ol.parseText(title);
899 ol.endMemberHeader();
900 ol.startMemberList();
901 for (const auto &[moduleName,importInfoList] : m_exportedModules)
902 {
903 for (const auto &importInfo : importInfoList)
904 {
905 ModuleDef *mod = ModuleManager::instance().getPrimaryInterface(importInfo.importName);
910 if (mod && mod->isLinkable())
911 {
912 ol.writeObjectLink(mod->getReference(),mod->getOutputFileBase(),QCString(),mod->displayName());
913 }
914 else
915 {
916 ol.startBold();
917 ol.docify(importInfo.importName);
918 ol.endBold();
919 }
921 if (mod && !mod->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
922 {
924 ol.generateDoc(briefFile(),briefLine(),mod,nullptr,mod->briefDescription(),FALSE,FALSE,
925 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
927 }
928 ol.endMemberDeclaration(QCString(),QCString());
929 }
930 }
931 ol.endMemberList();
932 }
933}
virtual bool isLinkable() const =0
virtual QCString briefDescription(bool abbreviate=FALSE) const =0
virtual QCString getReference() const =0
virtual QCString displayName(bool includeScope=TRUE) const =0
virtual QCString getOutputFileBase() const =0
static ModuleManager & instance()
ModuleDef * getPrimaryInterface(const QCString &moduleName) const
void endMemberList()
Definition outputlist.h:484

References AUTO_TRACE, Definition::briefDescription(), DefinitionMixin< ModuleDef >::briefFile(), DefinitionMixin< ModuleDef >::briefLine(), Config_getBool, Definition::displayName(), OutputList::docify(), OutputList::endBold(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberHeader(), OutputList::endMemberItem(), OutputList::endMemberList(), FALSE, OutputList::generateDoc(), Definition::getOutputFileBase(), ModuleManager::getPrimaryInterface(), Definition::getReference(), OutputList::insertMemberAlign(), ModuleManager::instance(), QCString::isEmpty(), Definition::isLinkable(), m_exportedModules, DefinitionMixin< ModuleDef >::name(), OutputGenerator::Normal, OutputList::parseText(), OutputList::startBold(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberHeader(), OutputList::startMemberItem(), OutputList::startMemberList(), theTranslator, TRUE, and OutputList::writeObjectLink().

Referenced by writeDocumentation().

◆ writeFiles()

void ModuleDefImpl::writeFiles ( OutputList & ol,
const QCString & title )

Definition at line 935 of file moduledef.cpp.

936{
937 AUTO_TRACE("{} count={}",name(),m_contributing.size());
938 if (!m_contributing.empty())
939 {
940 ol.startMemberHeader("files");
941 ol.parseText(title);
942 ol.endMemberHeader();
943 ol.startMemberList();
944 for (const auto &mod : m_contributing)
945 {
946 FileDef *fd = mod->getFileDef();
947 if (fd)
948 {
953 QCString path=fd->getPath();
954 if (Config_getBool(FULL_PATH_NAMES))
955 {
956 ol.docify(stripFromPath(path));
957 }
958 if (fd->isLinkable())
959 {
960 ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),QCString(),fd->displayName());
961 }
962 else
963 {
964 ol.startBold();
965 ol.docify(fd->displayName());
966 ol.endBold();
967 }
969 if (!fd->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
970 {
973 QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
975 }
976 ol.endMemberDeclaration(QCString(),QCString());
977 }
978 }
979 ol.endMemberList();
980 }
981}
virtual QCString anchor() const =0
virtual QCString getPath() const =0
virtual QCString trFile(bool first_capital, bool singular)=0
static QCString stripFromPath(const QCString &p, const StringVector &l)
Definition util.cpp:309

References Definition::anchor(), AUTO_TRACE, Definition::briefDescription(), DefinitionMixin< ModuleDef >::briefFile(), DefinitionMixin< ModuleDef >::briefLine(), Config_getBool, Definition::displayName(), OutputList::docify(), OutputList::endBold(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberHeader(), OutputList::endMemberItem(), OutputList::endMemberList(), FALSE, OutputList::generateDoc(), Definition::getOutputFileBase(), FileDef::getPath(), Definition::getReference(), OutputList::insertMemberAlign(), QCString::isEmpty(), Definition::isLinkable(), m_contributing, DefinitionMixin< ModuleDef >::name(), OutputGenerator::Normal, OutputList::parseText(), OutputList::startBold(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberHeader(), OutputList::startMemberItem(), OutputList::startMemberList(), stripFromPath(), theTranslator, TRUE, and OutputList::writeObjectLink().

Referenced by writeDocumentation().

◆ writeMemberDeclarations()

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

Definition at line 615 of file moduledef.cpp.

616{
617 MemberList * ml = getMemberList(lt);
618 if (ml) ml->writeDeclarations(ol,nullptr,nullptr,nullptr,nullptr,this,title,QCString());
619}
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(), and MemberList::writeDeclarations().

Referenced by writeDocumentation().

◆ writeMemberDocumentation()

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

Definition at line 621 of file moduledef.cpp.

622{
623 MemberList * ml = getMemberList(lt);
624 if (ml) ml->writeDocumentation(ol,name(),this,title);
625}
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, bool showEnumValues=FALSE, bool showInline=FALSE) const

References getMemberList(), DefinitionMixin< ModuleDef >::name(), and MemberList::writeDocumentation().

Referenced by writeDocumentation().

◆ writeMemberGroups()

void ModuleDefImpl::writeMemberGroups ( OutputList & ol)

Definition at line 607 of file moduledef.cpp.

608{
609 for (const auto &mg : m_memberGroups)
610 {
611 mg->writeDeclarations(ol,nullptr,nullptr,nullptr,nullptr,this);
612 }
613}

References m_memberGroups.

Referenced by writeDocumentation().

◆ writeSummaryLinks()

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

Reimplemented from DefinitionMixin< ModuleDef >.

Definition at line 785 of file moduledef.cpp.

786{
789 bool first=TRUE;
790 SrcLangExt lang=getLanguage();
791 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Module))
792 {
793 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
794 if (lde->kind()==LayoutDocEntry::ModuleClasses && m_classes.declVisible() && ls)
795 {
796 QCString label = "classes";
797 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
798 first=FALSE;
799 }
800 else if (lde->kind()==LayoutDocEntry::ModuleConcepts && m_concepts.declVisible() && ls)
801 {
802 QCString label = "concepts";
803 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
804 first=FALSE;
805 }
806 else if (lde->kind()==LayoutDocEntry::ModuleUsedFiles && ls)
807 {
808 QCString label = "files";
809 ol.writeSummaryLink(QCString(),label,ls->title(lang),first);
810 first=FALSE;
811 }
812 else if (lde->kind()==LayoutDocEntry::MemberDecl)
813 {
814 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
815 if (lmd)
816 {
817 MemberList * ml = getMemberList(lmd->type);
818 if (ml && ml->declVisible())
819 {
820 ol.writeSummaryLink(QCString(),ml->listType().toLabel(),lmd->title(lang),first);
821 first=FALSE;
822 }
823 }
824 }
825 }
826 if (!first)
827 {
828 ol.writeString(" </div>\n");
829 }
831}
MemberListType listType() const
Definition memberlist.h:114
bool declVisible() const
constexpr const char * toLabel() const
Definition types.h:402
void writeSummaryLink(const QCString &file, const QCString &anchor, const QCString &title, bool first)
Definition outputlist.h:615

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

Referenced by writeDocumentation().

◆ writeTagFile()

void ModuleDefImpl::writeTagFile ( TextStream & t) const
overridevirtual

Implements ModuleDef.

Definition at line 1041 of file moduledef.cpp.

1042{
1043 if (!isPrimaryInterface() || !isLinkableInProject()) return;
1044 tagFile << " <compound kind=\"module\">\n";
1045 tagFile << " <name>" << convertToXML(name()) << "</name>\n";
1046 const FileDef *fd = getFileDef();
1047 QCString fn = fd ? fd->getOutputFileBase() : getOutputFileBase();
1049 tagFile << " <filename>" << convertToXML(fn) << "</filename>\n";
1050#if 0 // at the moment we do not export the members of a module to a tag file.
1051 // We let the project using a tag file directly link to the implementation of the
1052 // symbols (which have the same scope).
1053 //
1054 // When we support linking to a module's interface instead we need to
1055 // export the module's members as well. Then we probably need a way to
1056 // disambiguate/prioritize a link to a module over a link to the implementation,
1057 // for instance by hiding non-exported symbols from the tag file.
1058 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::Group))
1059 {
1060 switch (lde->kind())
1061 {
1062 case LayoutDocEntry::ModuleExports:
1063 {
1064 for (const auto &[modName,importInfo] : m_exportedModules)
1065 {
1066 tagFile << " <export>" << convertToXML(importInfo.importName) << "</export>\n";
1067 }
1068 }
1069 break;
1070 case LayoutDocEntry::ModuleClasses:
1071 {
1072 for (const auto &cd : m_classes)
1073 {
1074 if (cd->isLinkableInProject())
1075 {
1076 tagFile << " <class kind=\"" << cd->compoundTypeString()
1077 << "\">" << convertToXML(cd->name()) << "</class>\n";
1078 }
1079 }
1080 }
1081 break;
1082 case LayoutDocEntry::ModuleConcepts:
1083 {
1084 for (const auto &cd : m_concepts)
1085 {
1086 if (cd->isLinkableInProject())
1087 {
1088 tagFile << " <concept>" << convertToXML(cd->name())
1089 << "</concept>\n";
1090 }
1091 }
1092 }
1093 break;
1094 case LayoutDocEntry::ModuleUsedFiles:
1095 {
1096 for (const auto &usedFd : getUsedFiles())
1097 {
1098 if (usedFd->isLinkableInProject())
1099 {
1100 tagFile << " <file>" << convertToXML(usedFd->name()) << "</file>\n";
1101 }
1102 }
1103 }
1104 break;
1105 case LayoutDocEntry::MemberDecl:
1106 {
1107 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
1108 if (lmd && lmd->visible())
1109 {
1110 MemberList * ml = getMemberList(lmd->type);
1111 if (ml)
1112 {
1113 ml->writeTagFile(tagFile,true);
1114 }
1115 }
1116 }
1117 break;
1118 default:
1119 break;
1120 }
1121 }
1122#endif
1123 QCString idStr = id();
1124 if (!idStr.isEmpty())
1125 {
1126 tagFile << " <clangid>" << convertToXML(idStr) << "</clangid>\n";
1127 }
1128 writeDocAnchorsToTagFile(tagFile);
1129 tagFile << " </compound>\n";
1130}
QCString id() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
void writeTagFile(TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
FileList getUsedFiles() const override
bool isPrimaryInterface() const override
Definition moduledef.cpp:75
FileDef * getFileDef() const override
Definition moduledef.cpp:82
bool isLinkableInProject() const override
Definition moduledef.cpp:62
bool visible() const override
Definition layout.h:121
QCString convertToXML(const QCString &s, bool keepEntities)
Definition util.cpp:4421
void addHtmlExtensionIfMissing(QCString &fName)
Definition util.cpp:5408

References addHtmlExtensionIfMissing(), convertToXML(), getFileDef(), getMemberList(), Definition::getOutputFileBase(), getOutputFileBase(), getUsedFiles(), DefinitionMixin< ModuleDef >::id(), LayoutDocManager::instance(), QCString::isEmpty(), isLinkableInProject(), isPrimaryInterface(), m_classes, m_concepts, m_exportedModules, DefinitionMixin< ModuleDef >::name(), LayoutDocEntryMemberDecl::type, LayoutDocEntryMemberDecl::visible(), DefinitionMixin< ModuleDef >::writeDocAnchorsToTagFile(), and MemberList::writeTagFile().

Member Data Documentation

◆ m_classes

◆ m_concepts

◆ m_contributing

ModuleList ModuleDefImpl::m_contributing
private

Definition at line 136 of file moduledef.cpp.

Referenced by addContributingModule(), getUsedFiles(), sortMemberLists(), and writeFiles().

◆ m_exportedModules

ImportInfoMap ModuleDefImpl::m_exportedModules
private

Definition at line 131 of file moduledef.cpp.

Referenced by addExportedModule(), getExports(), writeExports(), and writeTagFile().

◆ m_fileDef

FileDef* ModuleDefImpl::m_fileDef = nullptr
private

Definition at line 139 of file moduledef.cpp.

Referenced by getFileDef(), and setFileDef().

◆ m_imports

ImportInfoMap ModuleDefImpl::m_imports
private

Definition at line 130 of file moduledef.cpp.

Referenced by addImport(), and getImports().

◆ m_memberGroups

◆ m_memberLists

◆ m_partitionName

QCString ModuleDefImpl::m_partitionName
private

Definition at line 129 of file moduledef.cpp.

Referenced by isPrimaryInterface(), ModuleDefImpl(), partitionName(), and qualifiedName().

◆ m_partitions

ModuleMap ModuleDefImpl::m_partitions
private

Definition at line 135 of file moduledef.cpp.

Referenced by addPartition(), and partitions().

◆ m_primaryInterface

const ModuleDef* ModuleDefImpl::m_primaryInterface = nullptr
private

Definition at line 138 of file moduledef.cpp.

Referenced by isLinkable(), isLinkableInProject(), and setPrimaryInterface().

◆ m_type

Type ModuleDefImpl::m_type
private

Definition at line 128 of file moduledef.cpp.

Referenced by isPrimaryInterface(), ModuleDefImpl(), and moduleType().


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