doxygen.h
Go to the documentation of this file.
1 /******************************************************************************
2  *
3  *
4  *
5  *
6  * Copyright (C) 1997-2015 by Dimitri van Heesch.
7  *
8  * Permission to use, copy, modify, and distribute this software and its
9  * documentation under the terms of the GNU General Public License is hereby
10  * granted. No representations are made about the suitability of this software
11  * for any purpose. It is provided "as is" without express or implied warranty.
12  * See the GNU General Public License for more details.
13  *
14  * Documents produced by Doxygen are derivative works derived from the
15  * input used in their production; they are not affected by this license.
16  *
17  */
18 
19 #ifndef DOXYGEN_H
20 #define DOXYGEN_H
21 
22 #include <qdatetime.h>
23 #include <qcache.h>
24 #include <qstrlist.h>
25 #include <qdict.h>
26 #include <qintdict.h>
27 
28 #include "ftextstream.h"
29 #include "sortdict.h"
30 #include "membergroup.h"
31 #include "dirdef.h"
32 #include "memberlist.h"
33 
34 class RefList;
35 class PageSList;
36 class PageSDict;
37 class PageDef;
38 class SearchIndexIntf;
39 class ParserManager;
40 class ObjCache;
41 class Store;
42 class QFileInfo;
43 class BufStr;
44 class CiteDict;
45 class MemberDef;
46 class GroupDef;
47 class GroupSDict;
48 class FileDef;
49 class ClassDef;
50 class ClassSDict;
51 class GenericsSDict;
52 class MemberNameSDict;
53 class FileNameDict;
54 class FileNameList;
55 class NamespaceSDict;
56 class NamespaceDef;
57 class DefinitionIntf;
58 class DirSDict;
59 class DirRelation;
60 class IndexList;
61 class FormulaList;
62 class FormulaDict;
63 class FormulaNameDict;
64 class SectionDict;
66 
69 //typedef QDict<FileDef> FileDict;
70 //typedef QDict<GroupDef> GroupDict;
71 
72 class StringDict : public QDict<QCString>
73 {
74  public:
75  StringDict(uint size=17) : QDict<QCString>(size) {}
76  virtual ~StringDict() {}
77 };
78 
79 struct LookupInfo
80 {
81  LookupInfo() : classDef(0), typeDef(0) {}
83  : classDef(cd), typeDef(td), templSpec(ts),resolvedType(rt) {}
88 };
89 
90 extern QCString g_spaces;
91 
92 /*! \brief This class serves as a namespace for global variables used by doxygen.
93  *
94  * All fields in this class are public and static, so they can be used directly.
95  */
96 class Doxygen
97 {
98  public:
103  static PageDef *mainPage;
104  static bool insideMainPage;
107  static QDict<void> inputPaths;
127  static QDict<void> expandAsDefinedDict;
129  static QDict<RefList> *xrefLists; // array of xref lists: todo, test, bug, deprecated ...
131  static bool parseSourcesNeeded;
134  static QDict<DefinitionIntf> *symbolMap;
135  static QDict<Definition> *clangUsrMap;
136  static bool outputToWizard;
137  static QDict<int> *htmlDirMap;
142  static bool suppressDocWarnings;
147  static bool gatherDefines;
148  static bool userComments;
151  static QCString spaces;
152  static bool generatingXmlOutput;
153  static bool markdownSupport;
155 };
156 
157 void initDoxygen();
158 void readConfiguration(int argc, char **argv);
159 void checkConfiguration();
160 void adjustConfiguration();
161 void searchInputFiles(StringList &inputFiles);
162 void parseInput();
163 void generateOutput();
164 void readAliases();
165 void readFormulaRepository();
166 void cleanUpDoxygen();
167 int readFileOrDirectory(const char *s,
168  FileNameList *fnList,
169  FileNameDict *fnDict,
170  StringDict *exclDict,
171  QStrList *patList,
172  QStrList *exclPatList,
173  StringList *resultList,
174  StringDict *resultDict,
175  bool recursive,
176  bool errorIfNotExist=TRUE,
177  QDict<void> *killDict = 0,
178  QDict<void> *paths = 0
179  );
180 int readDir(QFileInfo *fi,
181  FileNameList *fnList,
182  FileNameDict *fnDict,
183  StringDict *exclDict,
184  QStrList *patList,
185  QStrList *exclPatList,
186  StringList *resultList,
187  StringDict *resultDict,
188  bool errorIfNotExist,
189  bool recursive,
190  QDict<void> *killDict
191  );
192 void copyAndFilterFile(const char *fileName,BufStr &dest);
193 
194 #endif
static QDict< RefList > * xrefLists
Definition: doxygen.h:129
static bool markdownSupport
Definition: doxygen.h:153
This class serves as a namespace for global variables used by doxygen.
Definition: doxygen.h:96
static CiteDict * citeDict
Definition: doxygen.h:146
static GroupSDict * groupSDict
Definition: doxygen.h:119
static MemberNameSDict * functionNameSDict
Definition: doxygen.h:116
static SDict< DirRelation > dirRelations
Definition: doxygen.h:140
QList< QCString > StringList
Definition: doxygen.h:65
Cache for objects.
Definition: objcache.h:33
static bool gatherDefines
Definition: doxygen.h:147
static PageSDict * exampleSDict
Definition: doxygen.h:101
static FileNameDict * includeNameDict
Definition: doxygen.h:105
static ClassSDict * hiddenClasses
Definition: doxygen.h:100
static QStrList tagfileList
Definition: doxygen.h:114
static QCString htmlFileExtension
Definition: doxygen.h:130
static Store * symbolStorage
Definition: doxygen.h:143
static FormulaDict * formulaDict
Definition: doxygen.h:122
QCString resolvedType
Definition: doxygen.h:87
virtual ~StringDict()
Definition: doxygen.h:76
static FileNameList * inputNameList
Definition: doxygen.h:109
static FormulaDict * formulaNameDict
Definition: doxygen.h:123
static FileNameDict * inputNameDict
Definition: doxygen.h:108
static int subpageNestingLevel
Definition: doxygen.h:150
void searchInputFiles(StringList &inputFiles)
static bool suppressDocWarnings
Definition: doxygen.h:142
ClassDef * classDef
Definition: doxygen.h:84
StringDict(uint size=17)
Definition: doxygen.h:75
static FileNameDict * exampleNameDict
Definition: doxygen.h:106
static StringDict aliasDict
Definition: doxygen.h:125
LookupInfo(ClassDef *cd, MemberDef *td, QCString ts, QCString rt)
Definition: doxygen.h:82
void copyAndFilterFile(const char *fileName, BufStr &dest)
static QDict< void > inputPaths
Definition: doxygen.h:107
static bool insideMainPage
Definition: doxygen.h:104
LookupInfo()
Definition: doxygen.h:81
static bool parseSourcesNeeded
Definition: doxygen.h:131
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
Definition: StdUtils.h:92
static NamespaceSDict * namespaceSDict
Definition: doxygen.h:120
The QTime class provides clock time functions.
Definition: qdatetime.h:108
static NamespaceDef * globalScope
Definition: doxygen.h:128
static ParserManager * parserManager
Definition: doxygen.h:141
static StringDict tagDestinationDict
Definition: doxygen.h:124
static SearchIndexIntf * searchIndex
Definition: doxygen.h:133
static FormulaList * formulaList
Definition: doxygen.h:121
QCString g_spaces
void checkConfiguration()
Definition: doxygen.cpp:10493
fileName
Definition: dumpTree.py:9
The Store is a file based memory manager.
Definition: store.h:52
void cleanUpDoxygen()
Definition: doxygen.cpp:10070
void readFormulaRepository()
Definition: doxygen.cpp:9751
static QCString objDBFileName
Definition: doxygen.h:144
static DirSDict * directories
Definition: doxygen.h:139
int readFileOrDirectory(const char *s, FileNameList *fnList, FileNameDict *fnDict, StringDict *exclDict, QStrList *patList, QStrList *exclPatList, StringList *resultList, StringDict *resultDict, bool recursive, bool errorIfNotExist=TRUE, QDict< void > *killDict=0, QDict< void > *paths=0)
Definition: doxygen.cpp:9659
static QDict< DefinitionIntf > * symbolMap
Definition: doxygen.h:134
void parseInput()
Definition: doxygen.cpp:10880
static SectionDict * sectionDict
Definition: doxygen.h:117
static bool generatingXmlOutput
Definition: doxygen.h:152
Manages programming language parsers.
Definition: parserintf.h:143
static PageSDict * pageSDict
Definition: doxygen.h:102
static QIntDict< MemberGroupInfo > memGrpInfoDict
Definition: doxygen.h:126
static FileNameDict * diaFileNameDict
Definition: doxygen.h:113
static QDict< Definition > * clangUsrMap
Definition: doxygen.h:135
static FileNameDict * imageNameDict
Definition: doxygen.h:110
Buffer used to store strings.
Definition: bufstr.h:30
static bool userComments
Definition: doxygen.h:148
static FileNameDict * dotFileNameDict
Definition: doxygen.h:111
static GenericsSDict * genericsDict
Definition: doxygen.h:154
static QCString entryDBFileName
Definition: doxygen.h:145
static MemberNameSDict * memberNameSDict
Definition: doxygen.h:115
MemberDef * typeDef
Definition: doxygen.h:85
void generateOutput()
Definition: doxygen.cpp:11379
A model of a page symbol.
Definition: pagedef.h:29
Cite database access class.
Definition: cite.h:56
void readConfiguration(int argc, char **argv)
Definition: doxygen.cpp:10144
static StringDict namespaceAliasDict
Definition: doxygen.h:118
void adjustConfiguration()
Definition: doxygen.cpp:10504
void readAliases()
Definition: doxygen.cpp:9831
static QCache< LookupInfo > * lookupCache
Definition: doxygen.h:138
static QDict< void > expandAsDefinedDict
Definition: doxygen.h:127
static QCString spaces
Definition: doxygen.h:151
static QDict< int > * htmlDirMap
Definition: doxygen.h:137
static bool outputToWizard
Definition: doxygen.h:136
The QFileInfo class provides system-independent file information.
Definition: qfileinfo.h:51
QCString templSpec
Definition: doxygen.h:86
int readDir(QFileInfo *fi, FileNameList *fnList, FileNameDict *fnDict, StringDict *exclDict, QStrList *patList, QStrList *exclPatList, StringList *resultList, StringDict *resultDict, bool errorIfNotExist, bool recursive, QDict< void > *killDict)
QListIterator< QCString > StringListIterator
Definition: doxygen.h:68
void initDoxygen()
Definition: doxygen.cpp:9979
unsigned uint
Definition: qglobal.h:351
static ClassSDict * classSDict
Definition: doxygen.h:99
static PageDef * mainPage
Definition: doxygen.h:103
A list of index interfaces.
Definition: index.h:53
static QCString * s
Definition: config.cpp:1042
const bool TRUE
Definition: qglobal.h:371
static QTime runningTime
Definition: doxygen.h:132
static IndexList * indexList
Definition: doxygen.h:149
static FileNameDict * mscFileNameDict
Definition: doxygen.h:112