Fix for UBSan build
[platform/upstream/doxygen.git] / src / qhp.h
1 /*
2  * Copyright (C) 2008 by Sebastian Pipping.
3  * Copyright (C) 2008 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  * Sebastian Pipping <sebastian@pipping.org>
15  */
16
17 #ifndef DOXYGEN_QHP_H
18 #define DOXYGEN_QHP_H
19
20 #include "index.h"
21 #include "qhpxmlwriter.h"
22
23 class Qhp : public IndexIntf
24 {
25   public:
26     Qhp();
27    ~Qhp();
28
29     // BEGIN IndexIntf
30     void initialize();
31     void finalize();
32     void incContentsDepth();
33     void decContentsDepth();
34     void addContentsItem(bool isDir, const char * name, const char * ref,
35                          const char * file, const char * anchor,
36                          bool separateIndex,bool addToNavIndex,
37                          Definition *def);
38     void addIndexItem(Definition *context,MemberDef *md,const char *title);
39     void addIndexFile(const char * name);
40     void addImageFile(const char * name);
41     void addStyleSheetFile(const char * name);
42     // END IndexIntf
43
44     static QCString getQhpFileName();
45
46   private:
47     void handlePrevSection();
48     void clearPrevSection();
49     void setPrevSection(const char * title, const char * ref, int level);
50     void addFile(const char * fileName);
51
52     static QCString getFullProjectName();
53
54     QhpXmlWriter m_doc;
55     QhpXmlWriter m_toc;
56     QhpXmlWriter m_index;
57     QhpXmlWriter m_files;
58
59     QCString m_prevSectionTitle;
60     QCString m_prevSectionRef;
61
62     int m_prevSectionLevel;
63     int m_sectionLevel;
64
65     //QCString m_prevIdName;
66     //QCString m_prevIdRef;
67 };
68
69 #endif // DOXYGEN_QHP_H
70