Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=34c3b6e2517320332b92b3ac4211ceba203dbe2e
commit 34c3b6e2517320332b92b3ac4211ceba203dbe2e Author: Michel Hermier <[email protected]> Date: Mon Sep 8 08:02:37 2014 +0200 libpacman: Merge parts of FCList into FList. diff --git a/lib/libpacman/util/flist.h b/lib/libpacman/util/flist.h index 69027f2..402107f 100644 --- a/lib/libpacman/util/flist.h +++ b/lib/libpacman/util/flist.h @@ -421,141 +421,6 @@ namespace flib { }; } -class FCList - : private FCListItem -{ -public: - /* std::list compatibility */ - typedef FCListItem *iterable; - typedef flib::iterator<iterable> iterator; - typedef flib::iterator<iterable, true> reverse_iterator; - typedef flib::const_iterator<iterable> const_iterator; - typedef flib::const_iterator<iterable, true> const_reverse_iterator; - typedef size_t size_type; - - FCList() - : FCListItem(this, this) - { } - - virtual ~FCList() override - { - clear(); - } - - /* Iterators */ - iterator begin() - { - return iterator(m_next); - } - - const_iterator begin() const - { - return cbegin(); - } - - const_iterator cbegin() const - { - return const_iterator(m_next); - } - - reverse_iterator rbegin() - { - return reverse_iterator(m_previous); - } - - const_reverse_iterator rbegin() const - { - return crbegin(); - } - - const_reverse_iterator crbegin() const - { - return const_reverse_iterator(m_previous); - } - - iterator end() - { - return iterator(this); - } - - const_iterator end() const - { - return cend(); - } - - const_iterator cend() const - { - return const_iterator(const_cast<FCList *>(this)); - } - - reverse_iterator rend() - { - return reverse_iterator(this); - } - - const_reverse_iterator rend() const - { - return crend(); - } - - const_reverse_iterator crend() const - { - return const_reverse_iterator(const_cast<FCList *>(this)); - } - - /* Capacity */ - bool empty() const - { - return m_next == m_previous; - } - - size_type size() const - { - size_type size = 0; - for(auto it = cbegin(), end = cend(); it != end; ++it, ++size) { - /* Nothing to do */ - } - return size; - } - - /* Element access */ - - /* Modifiers */ - void clear() - { } - -public: - /* Extensions */ - /* Element access */ - iterator first() - { - return begin(); - } - - const_iterator first() const - { - return cbegin(); - } - - iterator last() - { - return iterator(m_previous); - } - - const_iterator last() const - { - return const_iterator(m_previous); - } - - /* Modifiers */ - virtual bool add(const reference val); // Make default implementation to happend - -protected: - FCList(const FCList &o); - - FCList &operator = (const FCList &o); -}; - template <typename T> class FListItem : public FCListItem @@ -640,87 +505,137 @@ namespace flib { template <typename T> class FList - : private FCList + : private FCListItem { public: + typedef FListItem<T> *iterable; /* std::list compatibility */ - typedef FListItem<T> *iterator; - typedef const iterator const_iterator; + typedef flib::iterator<iterable> iterator; + typedef flib::iterator<iterable, true> reverse_iterator; + typedef flib::const_iterator<iterable> const_iterator; + typedef flib::const_iterator<iterable, true> const_reverse_iterator; + typedef size_t size_type; FList() + : FCListItem(this, this) { } - ~FList() + virtual ~FList() override { - clear(); +// clear(); } - void clear(); - bool empty() const; - + /* Iterators */ iterator begin() { - return first(); + return iterator(m_next); } const_iterator begin() const { - return first(); + return cbegin(); } const_iterator cbegin() const { - return first(); + return const_iterator(m_next); + } + + reverse_iterator rbegin() + { + return reverse_iterator(m_previous); + } + + const_reverse_iterator rbegin() const + { + return crbegin(); + } + + const_reverse_iterator crbegin() const + { + return const_reverse_iterator(m_previous); } iterator end() { - return last(); + return iterator(this); } const_iterator end() const { - return last(); + return cend(); } const_iterator cend() const { - return last(); + return const_iterator(const_cast<FList<T> *>(this)); + } + + reverse_iterator rend() + { + return reverse_iterator(this); + } + + const_reverse_iterator rend() const + { + return crend(); + } + + const_reverse_iterator crend() const + { + return const_reverse_iterator(const_cast<FList<T> *>(this)); + } + + /* Capacity */ + bool empty() const + { + return m_next == m_previous; + } + + size_type size() const + { + size_type size = 0; + for(auto it = cbegin(), end = cend(); it != end; ++it, ++size) { + /* Nothing to do */ + } + return size; } + /* Element access */ + + /* Modifiers */ #if 0 - typedef ListItem *reverse_iterator; - typedef const List::iterator const_reverse_iterator; - - List::reverse_iterator rbegin(); - List::const_reverse_iterator rbegin() const; - List::const_reverse_iterator crbegin() const; - List::reverse_iterator rend(); - List::const_reverse_iterator rend() const; - List::const_reverse_iterator crend() const; + void clear() + { } #endif public: /* extensions */ iterator first() { - return FCList::first(); + return iterator(m_next); } const_iterator first() const { - return FCList::first(); + return const_iterator(m_next); } iterator last() { - return FCList::last(); + return iterator(m_previous); } const_iterator last() const { - return FCList::last(); + return iterator(m_previous); + } +#if 0 + virtual FList<T> &add(const reference val); // Make default implementation to happend + { + return *this; } +#endif private: FList(const FList &); _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
