1*2e2212a7SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*2e2212a7SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*2e2212a7SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*2e2212a7SAndrew Rist * distributed with this work for additional information 6*2e2212a7SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*2e2212a7SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*2e2212a7SAndrew Rist * "License"); you may not use this file except in compliance 9*2e2212a7SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*2e2212a7SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*2e2212a7SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*2e2212a7SAndrew Rist * software distributed under the License is distributed on an 15*2e2212a7SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*2e2212a7SAndrew Rist * KIND, either express or implied. See the License for the 17*2e2212a7SAndrew Rist * specific language governing permissions and limitations 18*2e2212a7SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*2e2212a7SAndrew Rist *************************************************************/ 21*2e2212a7SAndrew Rist 22*2e2212a7SAndrew Rist 23cdf0e10cSrcweir #ifndef DBACCESS_ROWSETCACHEITERATOR_HXX 24cdf0e10cSrcweir #define DBACCESS_ROWSETCACHEITERATOR_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #ifndef DBACCESS_CORE_API_ROWSETROW_HXX 27cdf0e10cSrcweir #include "RowSetRow.hxx" 28cdf0e10cSrcweir #endif 29cdf0e10cSrcweir #ifndef _COMPHELPER_STLTYPES_HXX_ 30cdf0e10cSrcweir #include <comphelper/stl_types.hxx> 31cdf0e10cSrcweir #endif 32cdf0e10cSrcweir 33cdf0e10cSrcweir namespace dbaccess 34cdf0e10cSrcweir { 35cdf0e10cSrcweir class ORowSetBase; 36cdf0e10cSrcweir typedef struct 37cdf0e10cSrcweir { 38cdf0e10cSrcweir ORowSetMatrix::iterator aIterator; 39cdf0e10cSrcweir ::com::sun::star::uno::Any aBookmark; 40cdf0e10cSrcweir ORowSetBase* pRowSet; 41cdf0e10cSrcweir } ORowSetCacheIterator_Helper; 42cdf0e10cSrcweir 43cdf0e10cSrcweir DECLARE_STL_STDKEY_MAP(sal_Int32,ORowSetCacheIterator_Helper,ORowSetCacheMap); 44cdf0e10cSrcweir 45cdf0e10cSrcweir class ORowSetCache; 46cdf0e10cSrcweir class ORowSetCacheIterator 47cdf0e10cSrcweir { 48cdf0e10cSrcweir friend class ORowSetCache; 49cdf0e10cSrcweir ORowSetCacheMap::iterator m_aIter; 50cdf0e10cSrcweir ORowSetCache* m_pCache; 51cdf0e10cSrcweir ORowSetBase* m_pRowSet; 52cdf0e10cSrcweir protected: ORowSetCacheIterator(const ORowSetCacheMap::iterator & _rIter,ORowSetCache * _pCache,ORowSetBase * _pRowSet)53cdf0e10cSrcweir ORowSetCacheIterator(const ORowSetCacheMap::iterator& _rIter,ORowSetCache* _pCache,ORowSetBase* _pRowSet) 54cdf0e10cSrcweir : m_aIter(_rIter) 55cdf0e10cSrcweir ,m_pCache(_pCache) 56cdf0e10cSrcweir ,m_pRowSet(_pRowSet) 57cdf0e10cSrcweir { 58cdf0e10cSrcweir } 59cdf0e10cSrcweir public: ORowSetCacheIterator()60cdf0e10cSrcweir ORowSetCacheIterator() :m_aIter(),m_pCache(NULL),m_pRowSet(NULL){} 61cdf0e10cSrcweir ORowSetCacheIterator(const ORowSetCacheIterator& _rRH); 62cdf0e10cSrcweir ORowSetCacheIterator& operator =(const ORowSetCacheIterator&); 63cdf0e10cSrcweir 64cdf0e10cSrcweir sal_Bool isNull() const; 65cdf0e10cSrcweir ORowSetCacheIterator& operator =(const ORowSetMatrix::iterator&); 66cdf0e10cSrcweir operator ORowSetMatrix::iterator(); 67cdf0e10cSrcweir 68cdf0e10cSrcweir ORowSetRow& operator *(); 69cdf0e10cSrcweir const ORowSetRow& operator *() const; 70cdf0e10cSrcweir 71cdf0e10cSrcweir ORowSetMatrix::iterator& operator ->(); 72cdf0e10cSrcweir const ORowSetMatrix::iterator& operator ->() const; 73cdf0e10cSrcweir 74cdf0e10cSrcweir bool operator <=(const ORowSetMatrix::iterator& _rRH) const; 75cdf0e10cSrcweir bool operator <(const ORowSetMatrix::iterator& _rRH) const; 76cdf0e10cSrcweir bool operator !=(const ORowSetMatrix::iterator& _rRH) const; 77cdf0e10cSrcweir bool operator ==(const ORowSetMatrix::iterator& _rRH) const; 78cdf0e10cSrcweir 79cdf0e10cSrcweir void setBookmark(const ::com::sun::star::uno::Any& _rBookmark); getBookmark() const80cdf0e10cSrcweir ::com::sun::star::uno::Any getBookmark() const { return m_aIter->second.aBookmark; } 81cdf0e10cSrcweir ::osl::Mutex* getMutex() const; 82cdf0e10cSrcweir getIter() const83cdf0e10cSrcweir ORowSetCacheMap::iterator getIter() const { return m_aIter; } 84cdf0e10cSrcweir }; 85cdf0e10cSrcweir } 86cdf0e10cSrcweir #endif // DBACCESS_ROWSETCACHEITERATOR_HXX 87cdf0e10cSrcweir 88cdf0e10cSrcweir 89