Doxygen
Loading...
Searching...
No Matches
doxygen.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2015 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef DOXYGEN_H
17#define DOXYGEN_H
18
19#include <mutex>
20
21#include "containers.h"
22#include "membergroup.h"
23#include "dirdef.h"
24#include "memberlist.h"
25#include "define.h"
26#include "cache.h"
27#include "symbolmap.h"
28#include "searchindex.h"
29
30#define THREAD_LOCAL thread_local
31#define AtomicInt std::atomic_int
32
33class RefList;
34class PageLinkedMap;
35class PageDef;
36class ParserManager;
37class BufStr;
38class MemberDef;
39class GroupDef;
40class GroupLinkedMap;
41class FileDef;
42class ClassDef;
43class ClassLinkedMap;
48class NamespaceDef;
50class IndexList;
51class Preprocessor;
52struct MemberGroupInfo;
54
56{
57 LookupInfo() = default;
58 LookupInfo(const Definition *d,const MemberDef *td,const QCString &ts,const QCString &rt)
59 : definition(d), typeDef(td), templSpec(ts), resolvedType(rt) {}
60 const Definition *definition = nullptr;
61 const MemberDef *typeDef = nullptr;
62 QCString templSpec;
63 QCString resolvedType;
64};
65
67{
69 InputFileEncoding(const QCString &pat, const QCString &enc) : pattern(pat), encoding(enc) {}
70 QCString pattern;
71 QCString encoding;
72};
73
75{
76 NamespaceAliasInfo(const std::string &a,const std::string &ctx=std::string()) : alias(a), context(ctx) {}
77 std::string alias;
78 std::string context;
79};
80
81using InputFileEncodingList = std::vector<InputFileEncoding>;
82
83using ClangUsrMap = std::unordered_map<std::string,const Definition *>;
84
85using StaticInitMap = std::unordered_map<std::string,BodyInfo>;
86
87using NamespaceAliasInfoMap = std::unordered_map<std::string,NamespaceAliasInfo>;
88
89/*! \brief This class serves as a namespace for global variables used by doxygen.
90 *
91 * All fields in this class are public and static, so they can be used directly.
92 */
94{
95 public:
96 static ClassLinkedMap *classLinkedMap;
97 static ClassLinkedMap *hiddenClassLinkedMap;
98 static ConceptLinkedMap *conceptLinkedMap;
99 static PageLinkedMap *exampleLinkedMap;
100 static PageLinkedMap *pageLinkedMap;
101 static std::unique_ptr<PageDef> mainPage;
102 static FileNameLinkedMap *includeNameLinkedMap;
103 static FileNameLinkedMap *exampleNameLinkedMap;
105 static FileNameLinkedMap *inputNameLinkedMap;
106 static FileNameLinkedMap *imageNameLinkedMap;
107 static FileNameLinkedMap *dotFileNameLinkedMap;
108 static FileNameLinkedMap *mscFileNameLinkedMap;
109 static FileNameLinkedMap *diaFileNameLinkedMap;
110 static FileNameLinkedMap *plantUmlFileNameLinkedMap;
111 static MemberNameLinkedMap *memberNameLinkedMap;
112 static MemberNameLinkedMap *functionNameLinkedMap;
114 static GroupLinkedMap *groupLinkedMap;
115 static NamespaceLinkedMap *namespaceLinkedMap;
120 static std::unique_ptr<NamespaceDef> globalNamespaceDef;
121 static NamespaceDefMutable *globalScope;
122 static QCString htmlFileExtension;
124 static SearchIndexIntf searchIndex;
125 static SymbolMap<Definition> *symbolMap;
127 static Cache<std::string,LookupInfo> *typeLookupCache;
128 static Cache<std::string,LookupInfo> *symbolLookupCache;
129 static DirLinkedMap *dirLinkedMap;
130 static DirRelationLinkedMap dirRelations;
131 static ParserManager *parserManager;
133 static QCString filterDBFileName;
134 static IndexList *indexList;
135 static QCString spaces;
139 static QCString verifiedDotPath;
141 static std::mutex countFlowKeywordsMutex;
142 static std::mutex addExampleMutex;
144};
145
146void initDoxygen();
147void readConfiguration(int argc, char **argv);
148void checkConfiguration();
150void parseInput();
151void generateOutput();
152void cleanUpDoxygen();
153void readFileOrDirectory(const QCString &s,
154 FileNameLinkedMap *fnDict,
155 StringUnorderedSet *exclSet,
156 const StringVector *patList,
157 const StringVector *exclPatList,
158 StringVector *resultList,
159 StringUnorderedSet *resultSet,
160 bool recursive,
161 bool errorIfNotExist=TRUE,
162 StringUnorderedSet *killSet = nullptr,
163 StringUnorderedSet *paths = nullptr
164 );
165
166#endif
A abstract class representing of a compound symbol.
Definition classdef.h:104
This class serves as a namespace for global variables used by doxygen.
Definition doxygen.h:94
static NamespaceLinkedMap * namespaceLinkedMap
Definition doxygen.h:115
static ConceptLinkedMap * conceptLinkedMap
Definition doxygen.h:98
static bool suppressDocWarnings
Definition doxygen.h:132
static FileNameLinkedMap * plantUmlFileNameLinkedMap
Definition doxygen.h:110
static bool parseSourcesNeeded
Definition doxygen.h:123
static StringUnorderedSet inputPaths
Definition doxygen.h:104
static std::unique_ptr< PageDef > mainPage
Definition doxygen.h:101
static bool clangAssistedParsing
Definition doxygen.h:138
static StringUnorderedSet expandAsDefinedSet
Definition doxygen.h:119
static FileNameLinkedMap * inputNameLinkedMap
Definition doxygen.h:105
static ParserManager * parserManager
Definition doxygen.h:131
static Cache< std::string, LookupInfo > * typeLookupCache
Definition doxygen.h:127
static InputFileEncodingList inputFileEncodingList
Definition doxygen.h:140
static ClassLinkedMap * classLinkedMap
Definition doxygen.h:96
static MemberNameLinkedMap * functionNameLinkedMap
Definition doxygen.h:112
static PageLinkedMap * exampleLinkedMap
Definition doxygen.h:99
static FileNameLinkedMap * dotFileNameLinkedMap
Definition doxygen.h:107
static NamespaceDefMutable * globalScope
Definition doxygen.h:121
static FileNameLinkedMap * imageNameLinkedMap
Definition doxygen.h:106
static FileNameLinkedMap * mscFileNameLinkedMap
Definition doxygen.h:108
static QCString verifiedDotPath
Definition doxygen.h:139
static MemberGroupInfoMap memberGroupInfoMap
Definition doxygen.h:118
static QCString spaces
Definition doxygen.h:135
static IndexList * indexList
Definition doxygen.h:134
static StaticInitMap staticInitMap
Definition doxygen.h:143
static Cache< std::string, LookupInfo > * symbolLookupCache
Definition doxygen.h:128
static StringMap tagDestinationMap
Definition doxygen.h:116
static std::mutex countFlowKeywordsMutex
Definition doxygen.h:141
static ClassLinkedMap * hiddenClassLinkedMap
Definition doxygen.h:97
static FileNameLinkedMap * diaFileNameLinkedMap
Definition doxygen.h:109
static QCString htmlFileExtension
Definition doxygen.h:122
static QCString filterDBFileName
Definition doxygen.h:133
static PageLinkedMap * pageLinkedMap
Definition doxygen.h:100
static bool generatingXmlOutput
Definition doxygen.h:136
static std::unique_ptr< NamespaceDef > globalNamespaceDef
Definition doxygen.h:120
static DefinesPerFileList macroDefinitions
Definition doxygen.h:137
static DirLinkedMap * dirLinkedMap
Definition doxygen.h:129
static NamespaceAliasInfoMap namespaceAliasMap
Definition doxygen.h:113
static MemberNameLinkedMap * memberNameLinkedMap
Definition doxygen.h:111
static SymbolMap< Definition > * symbolMap
Definition doxygen.h:125
static StringUnorderedSet tagFileSet
Definition doxygen.h:117
static FileNameLinkedMap * includeNameLinkedMap
Definition doxygen.h:102
static FileNameLinkedMap * exampleNameLinkedMap
Definition doxygen.h:103
static SearchIndexIntf searchIndex
Definition doxygen.h:124
static DirRelationLinkedMap dirRelations
Definition doxygen.h:130
static std::mutex addExampleMutex
Definition doxygen.h:142
static ClangUsrMap * clangUsrMap
Definition doxygen.h:126
static GroupLinkedMap * groupLinkedMap
Definition doxygen.h:114
A model of a file symbol.
Definition filedef.h:99
Ordered dictionary of FileName objects.
Definition filename.h:73
A model of a group of symbols.
Definition groupdef.h:52
A list of index interfaces.
Definition indexlist.h:63
A model of a class/file/namespace member symbol.
Definition memberdef.h:48
Ordered dictionary of MemberName objects.
Definition membername.h:63
An abstract interface of a namespace symbol.
A model of a page symbol.
Definition pagedef.h:26
Manages programming language parsers.
Definition parserintf.h:147
This is an alternative implementation of QCString.
Definition qcstring.h:101
List of cross-referenced items.
Definition reflist.h:80
std::unordered_set< std::string > StringUnorderedSet
Definition containers.h:29
std::map< std::string, std::string > StringMap
Definition containers.h:30
std::vector< std::string > StringVector
Definition containers.h:33
std::unordered_map< std::string, DefineList > DefinesPerFileList
Definition define.h:50
void adjustConfiguration()
adjust globals that depend on configuration settings.
void initDoxygen()
void checkConfiguration()
check and resolve config options
std::vector< InputFileEncoding > InputFileEncodingList
Definition doxygen.h:81
void generateOutput()
void parseInput()
std::unordered_map< std::string, BodyInfo > StaticInitMap
Definition doxygen.h:85
std::unordered_map< std::string, NamespaceAliasInfo > NamespaceAliasInfoMap
Definition doxygen.h:87
std::unordered_map< std::string, const Definition * > ClangUsrMap
Definition doxygen.h:83
void readConfiguration(int argc, char **argv)
void cleanUpDoxygen()
void readFileOrDirectory(const QCString &s, FileNameLinkedMap *fnDict, StringUnorderedSet *exclSet, const StringVector *patList, const StringVector *exclPatList, StringVector *resultList, StringUnorderedSet *resultSet, bool recursive, bool errorIfNotExist=TRUE, StringUnorderedSet *killSet=nullptr, StringUnorderedSet *paths=nullptr)
std::unordered_map< int, std::unique_ptr< MemberGroupInfo > > MemberGroupInfoMap
#define TRUE
Definition qcstring.h:37
Web server based search engine.
QCString encoding
Definition doxygen.h:71
InputFileEncoding(const QCString &pat, const QCString &enc)
Definition doxygen.h:69
QCString pattern
Definition doxygen.h:70
QCString resolvedType
Definition doxygen.h:63
const Definition * definition
Definition doxygen.h:60
QCString templSpec
Definition doxygen.h:62
const MemberDef * typeDef
Definition doxygen.h:61
LookupInfo(const Definition *d, const MemberDef *td, const QCString &ts, const QCString &rt)
Definition doxygen.h:58
LookupInfo()=default
Data collected for a member group.
std::string context
Definition doxygen.h:78
NamespaceAliasInfo(const std::string &a, const std::string &ctx=std::string())
Definition doxygen.h:76
std::string alias
Definition doxygen.h:77