/**************************************************************************** ** ** https://www.qxorm.com/ ** Copyright (C) 2013 Lionel Marty (contact@qxorm.com) ** ** This file is part of the QxOrm library ** ** This software is provided 'as-is', without any express or implied ** warranty. In no event will the authors be held liable for any ** damages arising from the use of this software ** ** Commercial Usage ** Licensees holding valid commercial QxOrm licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Lionel Marty ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file 'license.gpl3.txt' included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met : http://www.gnu.org/copyleft/gpl.html ** ** If you are unsure which license is appropriate for your use, or ** if you have questions regarding the use of this file, please contact : ** contact@qxorm.com ** ****************************************************************************/ namespace qx { template QxCollectionIterator::QxCollectionIterator(const QxCollection & col) : m_pCollection(& col), m_lCurrIndex(-1) { } template QxCollectionIterator::~QxCollectionIterator() { } template inline const Key & QxCollectionIterator::key() const { qAssert(m_pCollection && (m_lCurrIndex >= 0) && (m_lCurrIndex < m_pCollection->size())); return m_pCollection->getKeyByIndex(m_lCurrIndex); } template inline const Value & QxCollectionIterator::value() const { qAssert(m_pCollection && (m_lCurrIndex >= 0) && (m_lCurrIndex < m_pCollection->size())); return m_pCollection->getByIndex(m_lCurrIndex); } template inline void QxCollectionIterator::toFirst() { m_lCurrIndex = -1; } template inline void QxCollectionIterator::toLast() { m_lCurrIndex = m_pCollection->size(); } template inline bool QxCollectionIterator::next() { long lCurrIndex = m_lCurrIndex; m_lCurrIndex = ((m_lCurrIndex < (m_pCollection->size() - 1)) ? (m_lCurrIndex + 1) : m_lCurrIndex); return (m_lCurrIndex > lCurrIndex); } template inline bool QxCollectionIterator::previous() { long lCurrIndex = m_lCurrIndex; m_lCurrIndex = ((m_lCurrIndex > 0) ? (m_lCurrIndex - 1) : m_lCurrIndex); return (m_lCurrIndex < lCurrIndex); } } // namespace qx