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 "symbolmap.h"
27#include "searchindex.h"
28
29#define THREAD_LOCAL thread_local
30#define AtomicInt std::atomic_int
31
32class ClassLinkedMap;
36class GroupLinkedMap;
37class IndexList;
38class MemberDef;
40class NamespaceDef;
43class PageDef;
44class PageLinkedMap;
45class ParserManager;
46
48{
49 LookupInfo() = default;
50 LookupInfo(const Definition *d,const MemberDef *td,const DString &ts,const DString &rt)
51 : definition(d), typeDef(td), templSpec(ts), resolvedType(rt) {}
52 const Definition *definition = nullptr;
53 const MemberDef *typeDef = nullptr;
56};
57
65
67{
68 NamespaceAliasInfo(const std::string &a,const std::string &ctx=std::string()) : alias(a), context(ctx) {}
69 std::string alias;
70 std::string context;
71};
72
73using InputFileEncodingList = std::vector<InputFileEncoding>;
74
75using ClangUsrMap = std::unordered_map<std::string,const Definition *>;
76
77using StaticInitMap = std::unordered_map<std::string,BodyInfo>;
78
79using NamespaceAliasInfoMap = std::unordered_map<std::string,NamespaceAliasInfo>;
80
81/*! \brief This class serves as a namespace for global variables used by doxygen.
82 *
83 * All fields in this class are public and static, so they can be used directly.
84 */
86{
87 public:
93 static std::unique_ptr<PageDef> mainPage;
113 static std::unique_ptr<NamespaceDef> globalNamespaceDef;
132 static std::mutex countFlowKeywordsMutex;
133 static std::mutex addExampleMutex;
135};
136
137void initDoxygen();
138void readConfiguration(int argc, char **argv);
139void checkConfiguration();
141void parseInput();
142void generateOutput();
143void cleanUpDoxygen();
144void readFileOrDirectory(const DString &s,
145 FileNameLinkedMap *fnDict,
146 StringUnorderedSet *exclSet,
147 const StringVector *patList,
148 const StringVector *exclPatList,
149 StringVector *resultList,
150 StringUnorderedSet *resultSet,
151 bool recursive,
152 bool errorIfNotExist=true,
153 StringUnorderedSet *killSet = nullptr,
154 StringUnorderedSet *paths = nullptr
155 );
156
157#endif
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:84
The common base class of all entity definitions found in the sources.
Definition definition.h:77
A linked map of directories.
Definition dirdef.h:173
This class serves as a namespace for global variables used by doxygen.
Definition doxygen.h:86
static NamespaceLinkedMap * namespaceLinkedMap
Definition doxygen.h:108
static ConceptLinkedMap * conceptLinkedMap
Definition doxygen.h:90
static bool suppressDocWarnings
Definition doxygen.h:123
static FileNameLinkedMap * plantUmlFileNameLinkedMap
Definition doxygen.h:102
static bool parseSourcesNeeded
Definition doxygen.h:116
static StringUnorderedSet inputPaths
Definition doxygen.h:96
static std::unique_ptr< PageDef > mainPage
Definition doxygen.h:93
static bool clangAssistedParsing
Definition doxygen.h:129
static StringUnorderedSet expandAsDefinedSet
Definition doxygen.h:112
static FileNameLinkedMap * inputNameLinkedMap
Definition doxygen.h:97
static DString filterDBFileName
Definition doxygen.h:124
static ParserManager * parserManager
Definition doxygen.h:122
static InputFileEncodingList inputFileEncodingList
Definition doxygen.h:131
static DString verifiedDotPath
Definition doxygen.h:130
static ClassLinkedMap * classLinkedMap
Definition doxygen.h:88
static MemberNameLinkedMap * functionNameLinkedMap
Definition doxygen.h:105
static PageLinkedMap * exampleLinkedMap
Definition doxygen.h:91
static FileNameLinkedMap * dotFileNameLinkedMap
Definition doxygen.h:99
static NamespaceDefMutable * globalScope
Definition doxygen.h:114
static FileNameLinkedMap * imageNameLinkedMap
Definition doxygen.h:98
static FileNameLinkedMap * mscFileNameLinkedMap
Definition doxygen.h:100
static FileNameLinkedMap * mermaidFileNameLinkedMap
Definition doxygen.h:103
static MemberGroupInfoMap memberGroupInfoMap
Definition doxygen.h:111
static IndexList * indexList
Definition doxygen.h:125
static StaticInitMap staticInitMap
Definition doxygen.h:134
static StringMap tagDestinationMap
Definition doxygen.h:109
static std::mutex countFlowKeywordsMutex
Definition doxygen.h:132
static ClassLinkedMap * hiddenClassLinkedMap
Definition doxygen.h:89
static FileNameLinkedMap * diaFileNameLinkedMap
Definition doxygen.h:101
static DString spaces
Definition doxygen.h:126
static PageLinkedMap * pageLinkedMap
Definition doxygen.h:92
static bool generatingXmlOutput
Definition doxygen.h:127
static std::unique_ptr< NamespaceDef > globalNamespaceDef
Definition doxygen.h:113
static DString htmlFileExtension
Definition doxygen.h:115
static DefinesPerFileList macroDefinitions
Definition doxygen.h:128
static DirLinkedMap * dirLinkedMap
Definition doxygen.h:120
static NamespaceAliasInfoMap namespaceAliasMap
Definition doxygen.h:106
static MemberNameLinkedMap * memberNameLinkedMap
Definition doxygen.h:104
static SymbolMap< Definition > * symbolMap
Definition doxygen.h:118
static StringUnorderedSet tagFileSet
Definition doxygen.h:110
static FileNameLinkedMap * includeNameLinkedMap
Definition doxygen.h:94
static FileNameLinkedMap * exampleNameLinkedMap
Definition doxygen.h:95
static SearchIndexIntf searchIndex
Definition doxygen.h:117
static DirRelationLinkedMap dirRelations
Definition doxygen.h:121
static std::mutex addExampleMutex
Definition doxygen.h:133
static ClangUsrMap * clangUsrMap
Definition doxygen.h:119
static GroupLinkedMap * groupLinkedMap
Definition doxygen.h:107
Ordered dictionary of FileName objects.
Definition filename.h:70
A list of index interfaces.
Definition indexlist.h:65
A model of a class/file/namespace member symbol.
Definition memberdef.h:45
Ordered dictionary of MemberName objects.
Definition membername.h:61
An abstract interface of a namespace symbol.
A model of a page symbol.
Definition pagedef.h:27
Manages programming language parsers.
Definition parserintf.h:182
Abstract proxy interface for non-javascript based search indices.
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:73
void generateOutput()
void parseInput()
std::unordered_map< std::string, BodyInfo > StaticInitMap
Definition doxygen.h:77
std::unordered_map< std::string, NamespaceAliasInfo > NamespaceAliasInfoMap
Definition doxygen.h:79
std::unordered_map< std::string, const Definition * > ClangUsrMap
Definition doxygen.h:75
void readFileOrDirectory(const DString &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)
void readConfiguration(int argc, char **argv)
void cleanUpDoxygen()
std::unordered_map< int, std::unique_ptr< MemberGroupInfo > > MemberGroupInfoMap
Web server based search engine.
DString pattern
Definition doxygen.h:62
InputFileEncoding(const DString &pat, const DString &enc)
Definition doxygen.h:61
DString encoding
Definition doxygen.h:63
DString resolvedType
Definition doxygen.h:55
const Definition * definition
Definition doxygen.h:52
LookupInfo(const Definition *d, const MemberDef *td, const DString &ts, const DString &rt)
Definition doxygen.h:50
const MemberDef * typeDef
Definition doxygen.h:53
DString templSpec
Definition doxygen.h:54
LookupInfo()=default
std::string context
Definition doxygen.h:70
NamespaceAliasInfo(const std::string &a, const std::string &ctx=std::string())
Definition doxygen.h:68
std::string alias
Definition doxygen.h:69