QxOrm 1.4.9
C++ Object Relational Mapping library
Loading...
Searching...
No Matches
QxCollectionIterator.h
Go to the documentation of this file.
1/****************************************************************************
2**
3** https://www.qxorm.com/
4** Copyright (C) 2013 Lionel Marty (contact@qxorm.com)
5**
6** This file is part of the QxOrm library
7**
8** This software is provided 'as-is', without any express or implied
9** warranty. In no event will the authors be held liable for any
10** damages arising from the use of this software
11**
12** Commercial Usage
13** Licensees holding valid commercial QxOrm licenses may use this file in
14** accordance with the commercial license agreement provided with the
15** Software or, alternatively, in accordance with the terms contained in
16** a written agreement between you and Lionel Marty
17**
18** GNU General Public License Usage
19** Alternatively, this file may be used under the terms of the GNU
20** General Public License version 3.0 as published by the Free Software
21** Foundation and appearing in the file 'license.gpl3.txt' included in the
22** packaging of this file. Please review the following information to
23** ensure the GNU General Public License version 3.0 requirements will be
24** met : http://www.gnu.org/copyleft/gpl.html
25**
26** If you are unsure which license is appropriate for your use, or
27** if you have questions regarding the use of this file, please contact :
28** contact@qxorm.com
29**
30****************************************************************************/
31
32#ifndef _QX_COLLECTION_ITERATOR_H_
33#define _QX_COLLECTION_ITERATOR_H_
34
35#ifdef _MSC_VER
36#pragma once
37#endif
38
47
48namespace qx {
49
65template <typename Key, typename Value>
67{
68
69private:
70
73
74public:
75
78
79 inline const Key & key() const;
80 inline const Value & value() const;
81
82 inline void toFirst();
83 inline void toLast();
84
85 inline bool next();
86 inline bool previous();
87
88private:
89
90 QxCollectionIterator(const QxCollectionIterator & other) { Q_UNUSED(other); }
91 QxCollectionIterator & operator=(const QxCollectionIterator & other) { Q_UNUSED(other); return (* this); }
92
93};
94
95} // namespace qx
96
97#include "../../inl/QxCollection/QxCollectionIterator.inl"
98
99#endif // _QX_COLLECTION_ITERATOR_H_
QxOrm thread-safe container (keep insertion order + quick access by index + quick access by key)
qx::QxCollection<Key, Value> : QxOrm thread-safe container (keep insertion order + quick access by in...
qx::QxCollectionIterator : Java-style iterator to iterate over a qx::QxCollection<Key,...
void toFirst()
Move the iterator to the front of the container (before the first item)
QxCollectionIterator(const QxCollection< Key, Value > &col)
Construct an iterator for traversing the collection. The iterator is set to be at the front of the li...
const Key & key() const
Return the 'key' at current position.
QxCollectionIterator & operator=(const QxCollectionIterator &other)
const Value & value() const
Return the 'value' at current position.
bool previous()
Move the iterator back by one position. Return 'true' if there is at least one item behind the iterat...
const QxCollection< Key, Value > * m_pCollection
Collection to iterate over.
QxCollectionIterator(const QxCollectionIterator &other)
void toLast()
Move the iterator to the back of the container (after the last item)
long m_lCurrIndex
Current index (position) in the collection.
bool next()
Advance the iterator by one position. Return 'true' if there is at least one item ahead of the iterat...
~QxCollectionIterator()
Destroy the iterator.
Root namespace for all QxOrm library features.