60using ModuleMap = std::unordered_map<std::string,ModuleDef *>;
148 std::unique_ptr<Private>
p;
A abstract class representing of a compound symbol.
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
The common base class of all entity definitions found in the sources.
Represents an unstructured piece of information, about an entity found in the sources.
A model of a file symbol.
Container class representing a vector of objects with keys.
Container class representing a vector of objects with keys.
A model of a class/file/namespace member symbol.
A list of MemberDef objects as shown in documentation sections.
Wrapper class for the MemberListType type.
virtual DString partitionName() const =0
virtual const ImportInfoMap & getImports() const =0
virtual MemberList * getMemberList(MemberListType lt) const =0
virtual const MemberGroupList & getMemberGroups() const =0
virtual int countVisibleMembers() const =0
virtual const ModuleMap & partitions() const =0
virtual bool isPrimaryInterface() const =0
virtual Type moduleType() const =0
virtual const MemberLists & getMemberLists() const =0
virtual void writeDocumentation(OutputList &ol)=0
virtual FileList getUsedFiles() const =0
virtual const ImportInfoMap & getExports() const =0
virtual const ConceptLinkedRefMap & getConcepts() const =0
virtual const ClassLinkedRefMap & getClasses() const =0
virtual FileDef * getFileDef() const =0
virtual void writeTagFile(TextStream &tagFile) const =0
void writeDeclaration(OutputList &ol, const DString &header, bool localNames) const
int numDocumentedModules() const
void createModuleDef(const DString &fileName, int line, size_t column, bool exported, const DString &moduleName, const DString &partitionName=DString())
static ModuleManager & instance()
void addDocs(const Entry *root)
void collectExportedSymbolsRecursively(ModuleDef *intfMod, ModuleDef *mod)
void addConceptToModule(const Entry *root, ConceptDef *cd)
ModuleLinkedMap & modules()
void addClassToModule(const Entry *root, ClassDef *cd)
void addMemberToModule(const Entry *root, MemberDef *md)
void writeDocumentation(OutputList &ol)
void addMembersToMemberGroup()
std::unique_ptr< Private > p
void addImport(const DString &moduleFile, int line, const DString &importName, bool isExported, const DString &partitionName=DString())
void addRequirementReferences()
void addHeader(const DString &moduleFile, int line, const DString &headerName, bool isSystem)
void findSectionsInDocumentation()
void collectExportedSymbols()
void resolvePartitionsRecursively(ModuleDef *intfMod, ModuleDef *mod)
ModuleDef * getPrimaryInterface(const DString &moduleName) const
void addTagInfo(const DString &moduleFile, const DString &tagName, const DString &clangId)
void distributeMemberGroupDocumentation()
An abstract interface of a namespace symbol.
Class representing a list of output generators that are written to in parallel.
Text streaming class that buffers data.
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
#define ABSTRACT_BASE_CLASS(cls)
Macro to implement rule of 5 for an abstract base class.
ModuleDef * toModuleDef(Definition *d)
std::unordered_map< std::string, ModuleDef * > ModuleMap
std::vector< ImportInfo > ImportInfoList
std::unordered_map< std::string, ImportInfoList > ImportInfoMap
ImportInfo(ModuleDef *def, const DString &name, int l, const DString &pName, bool isExported=false)
DString qualifiedName() const