summaryrefslogtreecommitdiffstats
path: root/addon/xmlparse/mainhandler.h
blob: c5f945fe9e7fb1ad92000ead7483eb56a133d64b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/******************************************************************************
 *
 * $Id$
 *
 *
 * Copyright (C) 1997-2001 by Dimitri van Heesch.
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation under the terms of the GNU General Public License is hereby 
 * granted. No representations are made about the suitability of this software 
 * for any purpose. It is provided "as is" without express or implied warranty.
 * See the GNU General Public License for more details.
 *
 */

#ifndef _MAINHANDLER_H
#define _MAINHANDLER_H

#include <qlist.h>
#include "basehandler.h"
#include "compoundhandler.h"
#include "doxmlintf.h"

class MainHandler : public IDoxygen, public BaseHandler<MainHandler>
{
  public:
    virtual void startCompound(const QXmlAttributes& attrib);
    MainHandler();
    virtual ~MainHandler();

    QListIterator<ICompound> getCompoundIterator() const
    {
      return m_compounds;
    }
    ICompound *getCompoundById(const QString &id) const
    {
      return m_compoundDict[id];
    }
    virtual ICompound *getCompoundByName(const QString &name) const
    {
      return name.isEmpty() ? 0 : m_compoundNameDict[name]; 
    }
    virtual IMember *getMemberById(const QString &id) const
    {
      return m_memberDict[id];
    }
    virtual QList<IMember> *getMemberByName(const QString &name) const
    {
      return m_memberNameDict[name]; 
    }
    void insertMemberById(const QString &id,IMember *h);
    void insertMemberByName(const QString &name,IMember *h);

    void initialize();

  private:
    QList<ICompound>       m_compounds;
    QDict<ICompound>       m_compoundDict;
    QDict<ICompound>       m_compoundNameDict;
    QDict<IMember>         m_memberDict;
    QDict<QList<IMember> > m_memberNameDict;
};

#endif