Doxygen
config.h
浏览该文件的文档.
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 CONFIG_H
17 #define CONFIG_H
18 
19 // note: this header file is generated from config.xml
20 #include "configvalues.h"
21 
22 //! @{
23 //! some convenience macros for accessing the config options
24 //! mainly done like this for backward compatibility
25 //#if DYNAMIC_LOOKUP // for debug purposes
26 //#define Config_getString(val) (ConfigValues::instance().*((ConfigValues::InfoString*)ConfigValues::instance().get(#val))->item)
27 //#define Config_getBool(val) (ConfigValues::instance().*((ConfigValues::InfoBool*)ConfigValues::instance().get(#val))->item)
28 //#define Config_getInt(val) (ConfigValues::instance().*((ConfigValues::InfoInt*)ConfigValues::instance().get(#val))->item)
29 //#define Config_getEnum(val) (ConfigValues::instance().*((ConfigValues::InfoString*)ConfigValues::instance().get(#val))->item)
30 //#define Config_getList(val) (ConfigValues::instance().*((ConfigValues::InfoList*)ConfigValues::instance().get(#val))->item)
31 //#else // direct access
32 #define Config_getString(name) (ConfigValues::instance().name())
33 #define Config_getBool(name) (ConfigValues::instance().name())
34 #define Config_getInt(name) (ConfigValues::instance().name())
35 #define Config_getEnum(name) (ConfigValues::instance().name())
36 #define Config_getEnumAsString(name) (ConfigValues::instance().name##_str())
37 #define Config_getList(name) (ConfigValues::instance().name())
38 #define Config_updateString(name,value) (ConfigValues::instance().update_##name(value));
39 #define Config_updateBool(name,value) (ConfigValues::instance().update_##name(value));
40 #define Config_updateInt(name,value) (ConfigValues::instance().update_##name(value));
41 #define Config_updateEnum(name,value) (ConfigValues::instance().update_##name(value));
42 #define Config_updateList(name,...) (ConfigValues::instance().update_##name(__VA_ARGS__));
43 //#endif
44 //! @}
45 
46 class TextStream;
47 
48 /** \brief Public function to deal with the configuration file. */
49 namespace Config
50 {
51  /*! Initialize configuration variables to their default value */
52  void init();
53 
54  /*! Writes a template configuration to stream \a t. If \a shortList
55  * is \c TRUE the description of each configuration option will
56  * be omitted.
57  */
58  void writeTemplate(TextStream &t,bool shortList,bool updateOnly=FALSE);
59 
60  /*! Writes a the differences between the current configuration and the
61  * template configuration to stream \a t.
62  */
63  void compareDoxyfile(TextStream &t);
64 
65  /*! Writes a the used settings of the current configuration as XML format
66  * to stream \a t.
67  */
69 
70  /*! Parses a configuration file with name \a fn.
71  * \returns TRUE if successful, FALSE if the file could not be
72  * opened or read.
73  */
74  bool parse(const QCString &fileName,bool update=FALSE);
75 
76  /*! Post processed the parsed data. Replaces raw string values by the actual values.
77  * and replaces environment variables.
78  * \param clearHeaderAndFooter set to TRUE when writing header and footer templates.
79  * \param compare signals if we in Doxyfile compare (`-x`) mode are or not. Influences
80  * setting of the default value.
81  */
82  void postProcess(bool clearHeaderAndFooter, bool compare = FALSE);
83 
84  /*! Check the validity of the parsed options and correct or warn the user where needed.
85  * \param quiet setting for the QUIET option (can have been overruled by means of a command line option)
86  */
87  void checkAndCorrect(bool quiet);
88 
89  /*! Adjust any configuration values based on the value of obsolete options. */
90  void updateObsolete();
91 
92  /*! Clean up any data */
93  void deinit();
94 }
95 
96 #endif
Config::init
void init()
TextStream
Text streaming class that buffers data.
Definition: textstream.h:33
Config::deinit
void deinit()
Config::postProcess
void postProcess(bool clearHeaderAndFooter, bool compare=FALSE)
Config::checkAndCorrect
void checkAndCorrect(bool quiet)
Config::writeTemplate
void writeTemplate(TextStream &t, bool shortList, bool updateOnly=FALSE)
Config::compareDoxyfile
void compareDoxyfile(TextStream &t)
Config
Public function to deal with the configuration file.
Definition: config.h:49
Config::updateObsolete
void updateObsolete()
Config::parse
bool parse(const QCString &fileName, bool update=FALSE)
Config::writeXMLDoxyfile
void writeXMLDoxyfile(TextStream &t)
FALSE
#define FALSE
Definition: qcstring.h:33
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108