My Project
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 <qdatetime.h>
20 #include <qcache.h>
21 #include <qstrlist.h>
22 #include <qdict.h>
23 #include <qintdict.h>
24 
25 #include "ftextstream.h"
26 #include "sortdict.h"
27 #include "membergroup.h"
28 #include "dirdef.h"
29 #include "memberlist.h"
30 
31 class RefList;
32 class PageSList;
33 class PageSDict;
34 class PageDef;
35 class SearchIndexIntf;
36 class ParserManager;
37 class ObjCache;
38 class Store;
39 class QFileInfo;
40 class BufStr;
41 class CiteDict;
42 class MemberDef;
43 class GroupDef;
44 class GroupSDict;
45 class FileDef;
46 class ClassDef;
47 class ClassSDict;
48 class GenericsSDict;
49 class MemberNameSDict;
50 class FileNameDict;
51 class FileNameList;
52 class NamespaceSDict;
53 class NamespaceDef;
54 class DefinitionIntf;
55 class DirSDict;
56 class DirRelation;
57 class IndexList;
58 class FormulaList;
59 class FormulaDict;
60 class FormulaNameDict;
61 class SectionDict;
63 
64 typedef QList<QCString> StringList;
65 typedef QListIterator<QCString> StringListIterator;
66 //typedef QDict<FileDef> FileDict;
67 //typedef QDict<GroupDef> GroupDict;
68 
69 class StringDict : public QDict<QCString>
70 {
71  public:
72  StringDict(uint size=17) : QDict<QCString>(size) {}
73  virtual ~StringDict() {}
74 };
75 
76 struct LookupInfo
77 {
78  LookupInfo() : classDef(0), typeDef(0) {}
79  LookupInfo(ClassDef *cd,MemberDef *td,QCString ts,QCString rt)
80  : classDef(cd), typeDef(td), templSpec(ts),resolvedType(rt) {}
83  QCString templSpec;
84  QCString resolvedType;
85 };
86 
87 extern QCString g_spaces;
88 
93 class Doxygen
94 {
95  public:
100  static PageDef *mainPage;
101  static bool insideMainPage;
104  static QDict<void> inputPaths;
111  static QStrList tagfileList;
123  static QIntDict<MemberGroupInfo> memGrpInfoDict;
124  static QDict<void> expandAsDefinedDict;
126  static QDict<RefList> *xrefLists; // array of xref lists: todo, test, bug, deprecated ...
127  static QCString htmlFileExtension;
128  static bool parseSourcesNeeded;
129  static QTime runningTime;
131  static QDict<DefinitionIntf> *symbolMap;
132  static QDict<Definition> *clangUsrMap;
133  static bool outputToWizard;
134  static QDict<int> *htmlDirMap;
135  static QCache<LookupInfo> *lookupCache;
139  static bool suppressDocWarnings;
141  static QCString objDBFileName;
142  static QCString entryDBFileName;
144  static bool gatherDefines;
145  static bool userComments;
148  static QCString spaces;
149  static bool generatingXmlOutput;
150  static bool markdownSupport;
152 };
153 
154 void initDoxygen();
155 void readConfiguration(int argc, char **argv);
156 void checkConfiguration();
157 void adjustConfiguration();
158 void searchInputFiles(StringList &inputFiles);
159 void parseInput();
160 void generateOutput();
161 void readAliases();
162 void readFormulaRepository();
163 void cleanUpDoxygen();
164 int readFileOrDirectory(const char *s,
165  FileNameList *fnList,
166  FileNameDict *fnDict,
167  StringDict *exclDict,
168  QStrList *patList,
169  QStrList *exclPatList,
170  StringList *resultList,
171  StringDict *resultDict,
172  bool recursive,
173  bool errorIfNotExist=TRUE,
174  QDict<void> *killDict = 0,
175  QDict<void> *paths = 0
176  );
177 int readDir(QFileInfo *fi,
178  FileNameList *fnList,
179  FileNameDict *fnDict,
180  StringDict *exclDict,
181  QStrList *patList,
182  QStrList *exclPatList,
183  StringList *resultList,
184  StringDict *resultDict,
185  bool errorIfNotExist,
186  bool recursive,
187  QDict<void> *killDict
188  );
189 void copyAndFilterFile(const char *fileName,BufStr &dest);
190 
191 #endif