summaryrefslogtreecommitdiffstats
path: root/src/membername.h
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-04-27 10:23:58 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-04-27 10:23:58 (GMT)
commit2b67e2815cf43f9425a7af5e9224e39a77692bdf (patch)
tree540dc66784d322a0545b8b061a73c6588565ef60 /src/membername.h
parent6f7443e86a2b6633fafeba5e8baa0941c22c757d (diff)
downloadDoxygen-2b67e2815cf43f9425a7af5e9224e39a77692bdf.zip
Doxygen-2b67e2815cf43f9425a7af5e9224e39a77692bdf.tar.gz
Doxygen-2b67e2815cf43f9425a7af5e9224e39a77692bdf.tar.bz2
Refactoring: migrate MemberNameInfoSDict to MemberNameInfoLinkedMap
Diffstat (limited to 'src/membername.h')
-rw-r--r--src/membername.h51
1 files changed, 26 insertions, 25 deletions
diff --git a/src/membername.h b/src/membername.h
index aa2ce5f..406d406 100644
--- a/src/membername.h
+++ b/src/membername.h
@@ -38,6 +38,8 @@ class MemberName
iterator begin() { return m_members.begin(); }
iterator end() { return m_members.end(); }
+ const_iterator begin() const { return m_members.begin(); }
+ const_iterator end() const { return m_members.end(); }
const_iterator cbegin() const { return m_members.cbegin(); }
const_iterator cend() const { return m_members.cend(); }
reverse_iterator rbegin() { return m_members.rbegin(); }
@@ -95,37 +97,36 @@ class MemberInfo
const ClassDef *m_ambigClass = 0;
};
-/** Class representing all MemberInfo objects with the same name */
-class MemberNameInfo : public QList<MemberInfo>
+class MemberNameInfo
{
public:
- MemberNameInfo(const char *name);
- ~MemberNameInfo() {}
- const char *memberName() const { return name; }
- private:
- int compareValues(const MemberInfo *item1,const MemberInfo *item2) const;
- QCString name;
-};
+ using Ptr = std::unique_ptr<MemberInfo>;
+ using Vec = std::vector<Ptr>;
+ using iterator = typename Vec::iterator;
+ using const_iterator = typename Vec::const_iterator;
-/** Iterator for MemberInfo objects in a MemberNameInfo list. */
-class MemberNameInfoIterator : public QListIterator<MemberInfo>
-{
- public:
- MemberNameInfoIterator(const MemberNameInfo &mnii)
- : QListIterator<MemberInfo>(mnii) {}
+ MemberNameInfo(const char *name) : m_name(name) {}
+ const char *memberName() const { return m_name; }
+
+ iterator begin() { return m_members.begin(); }
+ iterator end() { return m_members.end(); }
+ const_iterator begin() const { return m_members.begin(); }
+ const_iterator end() const { return m_members.end(); }
+ bool empty() const { return m_members.empty(); }
+ int size() const { return m_members.size(); }
+ Ptr &back() { return m_members.back(); }
+ const Ptr &back() const { return m_members.back(); }
+ Ptr &front() { return m_members.front(); }
+ const Ptr &front() const { return m_members.front(); }
+ void push_back(Ptr &&p) { m_members.push_back(std::move(p)); }
+
+ private:
+ QCString m_name;
+ Vec m_members;
};
-/** Sorted dictionary of MemberNameInfo objects. */
-class MemberNameInfoSDict : public SDict<MemberNameInfo>
+class MemberNameInfoLinkedMap : public LinkedMap<MemberNameInfo>
{
- public:
- MemberNameInfoSDict(uint size) : SDict<MemberNameInfo>(size) {}
- ~MemberNameInfoSDict() {}
- private:
- int compareValues(const MemberNameInfo *item1,const MemberNameInfo *item2) const
- {
- return qstricmp(item1->memberName(), item2->memberName());
- }
};
#endif