File indexing completed on 2024-03-24 17:26:36

0001 /*
0002     This file is part of the Okteta Core library, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2009 Friedrich W. H. Kossebau <kossebau@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #include "bookmarklistconstiteratoradapter.hpp"
0010 
0011 // lib
0012 #include "bookmarklist.hpp"
0013 
0014 namespace Okteta {
0015 
0016 BookmarkListConstIteratorAdapter::BookmarkListConstIteratorAdapter(const BookmarkList& list)
0017     : mIterator(list)
0018 {
0019 }
0020 
0021 BookmarkListConstIteratorAdapter::~BookmarkListConstIteratorAdapter() = default;
0022 
0023 bool BookmarkListConstIteratorAdapter::hasNext() const { return mIterator.hasNext(); }
0024 bool BookmarkListConstIteratorAdapter::hasPrevious() const { return mIterator.hasPrevious(); }
0025 const Bookmark& BookmarkListConstIteratorAdapter::peekNext() const { return mIterator.peekNext(); }
0026 const Bookmark& BookmarkListConstIteratorAdapter::peekPrevious() const { return mIterator.peekPrevious(); }
0027 
0028 bool BookmarkListConstIteratorAdapter::findNext(const Bookmark& bookmark)     { return mIterator.findNext(bookmark); }
0029 bool BookmarkListConstIteratorAdapter::findPrevious(const Bookmark& bookmark) { return mIterator.findPrevious(bookmark); }
0030 
0031 bool BookmarkListConstIteratorAdapter::findNextFrom(Address offset)
0032 {
0033     bool result = false;
0034 
0035     mIterator.toFront();
0036     while (mIterator.hasNext()) {
0037         if (offset <= mIterator.peekNext().offset()) {
0038             result = true;
0039             break;
0040         }
0041         next();
0042     }
0043 
0044     return result;
0045 }
0046 
0047 bool BookmarkListConstIteratorAdapter::findPreviousFrom(Address offset)
0048 {
0049     bool result = false;
0050 
0051     mIterator.toBack();
0052     while (mIterator.hasPrevious()) {
0053         if (mIterator.peekPrevious().offset() <= offset) {
0054             result = true;
0055             break;
0056         }
0057         previous();
0058     }
0059 
0060     return result;
0061 }
0062 
0063 const Bookmark& BookmarkListConstIteratorAdapter::next()     { return mIterator.next(); }
0064 const Bookmark& BookmarkListConstIteratorAdapter::previous() { return mIterator.previous(); }
0065 
0066 void BookmarkListConstIteratorAdapter::toBack()  { mIterator.toBack(); }
0067 void BookmarkListConstIteratorAdapter::toFront() { mIterator.toFront(); }
0068 
0069 }