From: John Spray Date: Fri, 5 Sep 2014 13:10:40 +0000 (+0100) Subject: xlist: implement const_iterator X-Git-Tag: v0.86~68^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8199f80846682701422381d61c06cf88ec1dde63;p=ceph.git xlist: implement const_iterator Signed-off-by: John Spray --- diff --git a/src/include/xlist.h b/src/include/xlist.h index 5384561327a5..26a6b9d5746c 100644 --- a/src/include/xlist.h +++ b/src/include/xlist.h @@ -161,6 +161,24 @@ public: iterator begin() { return iterator(_front); } iterator end() { return iterator(NULL); } + + class const_iterator { + private: + item *cur; + public: + const_iterator(item *i = 0) : cur(i) {} + const T operator*() { return static_cast(cur->_item); } + const_iterator& operator++() { + assert(cur); + assert(cur->_list); + cur = cur->_next; + return *this; + } + bool end() const { return cur == 0; } + }; + + const_iterator begin() const { return const_iterator(_front); } + const_iterator end() const { return const_iterator(NULL); } };