ISLEman
membername.h
1 /******************************************************************************
2  *
3  *
4  *
5  * Copyright (C) 1997-2015 by Dimitri van Heesch.
6  *
7  * Permission to use, copy, modify, and distribute this software and its
8  * documentation under the terms of the GNU General Public License is hereby
9  * granted. No representations are made about the suitability of this software
10  * for any purpose. It is provided "as is" without express or implied warranty.
11  * See the GNU General Public License for more details.
12  *
13  * Documents produced by Doxygen are derivative works derived from the
14  * input used in their production; they are not affected by this license.
15  *
16  */
17 
18 #ifndef MEMBERNAME_H
19 #define MEMBERNAME_H
20 
21 #include <qlist.h>
22 #include "memberdef.h"
23 #include "sortdict.h"
24 
26 class MemberName : public QList<MemberDef>
27 {
28  public:
29  MemberName(const char *name);
30  ~MemberName();
31  const char *memberName() const { return name; }
32 
33  private:
34  int compareValues(const MemberDef *item1,const MemberDef *item2) const;
35  QCString name;
36 };
37 
39 class MemberNameIterator : public QListIterator<MemberDef>
40 {
41  public:
42  MemberNameIterator( const MemberName &list);
43 };
44 
46 class MemberNameSDict : public SDict<MemberName>
47 {
48  public:
49  MemberNameSDict(int size) : SDict<MemberName>(size) {}
50  ~MemberNameSDict() {}
51 
52  private:
53  int compareValues(const MemberName *item1,const MemberName *item2) const;
54 };
55 
57 struct MemberInfo
58 {
59  MemberInfo(MemberDef *md,Protection p,Specifier v,bool inh) :
60  memberDef(md), prot(p), virt(v), inherited(inh), ambigClass(0) {}
61  ~MemberInfo() {}
62  MemberDef *memberDef;
63  Protection prot;
64  Specifier virt;
65  bool inherited;
66  QCString scopePath;
67  QCString ambiguityResolutionScope;
68  ClassDef *ambigClass;
69 };
70 
72 class MemberNameInfo : public QList<MemberInfo>
73 {
74  public:
75  MemberNameInfo(const char *name);
76  ~MemberNameInfo() {}
77  const char *memberName() const { return name; }
78  private:
79  int compareValues(const MemberInfo *item1,const MemberInfo *item2) const;
80  QCString name;
81 };
82 
84 class MemberNameInfoIterator : public QListIterator<MemberInfo>
85 {
86  public:
88  : QListIterator<MemberInfo>(mnii) {}
89 };
90 
92 class MemberNameInfoSDict : public SDict<MemberNameInfo>
93 {
94  public:
95  MemberNameInfoSDict(int size) : SDict<MemberNameInfo>(size) {}
97  private:
98  int compareValues(const MemberNameInfo *item1,const MemberNameInfo *item2) const
99  {
100  return qstricmp(item1->memberName(), item2->memberName());
101  }
102 };
103 
104 #endif
Sorted dictionary of MemberNameInfo objects.
Definition: membername.h:92
Iterator for MemberInfo objects in a MemberNameInfo list.
Definition: membername.h:84
A model of a class/file/namespace member symbol.
Definition: memberdef.h:43
Iterator for MemberDef objects in a MemberName list.
Definition: membername.h:39
Data associated with a MemberDef in an inheritance relation.
Definition: membername.h:57
Class representing all MemberInfo objects with the same name.
Definition: membername.h:72
Sorted dictionary of MemberName objects.
Definition: membername.h:46
Ordered dictionary of elements of type T.
Definition: sortdict.h:73
Specifier
Virtualness of a member.
Definition: types.h:29
Definition: qlist.h:126
Class representing all MemberDef objects with the same name.
Definition: membername.h:26
Protection
Protection level of members.
Definition: types.h:26
This is an alternative implementation of QCString.
Definition: qcstring.h:131
A class representing of a compound symbol.
Definition: classdef.h:59
Definition: qlist.h:54