18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Copyright (C) 2001 Dirk Mueller (mueller@kde.org) 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Copyright (C) 2002 Waldo Bastian (bastian@kde.org) 5635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This library is free software; you can redistribute it and/or 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project modify it under the terms of the GNU Library General Public 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project License as published by the Free Software Foundation; either 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project version 2 of the License, or (at your option) any later version. 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This library is distributed in the hope that it will be useful, 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project but WITHOUT ANY WARRANTY; without even the implied warranty of 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Library General Public License for more details. 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project You should have received a copy of the GNU Library General Public License 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project along with this library; see the file COPYING.LIB. If not, write to 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Boston, MA 02110-1301, USA. 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This class provides all functionality needed for loading images, style sheets and html 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project pages from the web. It has a memory cache for these objects. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h" 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CachedResourceClientWalker.h" 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCachedResourceClientWalker::CachedResourceClientWalker(const HashCountedSet<CachedResourceClient*>& set) 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project : m_clientSet(set), m_clientVector(set.size()), m_index(0) 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project typedef HashCountedSet<CachedResourceClient*>::const_iterator Iterator; 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Iterator end = set.end(); 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project size_t clientIndex = 0; 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for (Iterator current = set.begin(); current != end; ++current) 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_clientVector[clientIndex++] = current->first; 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectCachedResourceClient* CachedResourceClientWalker::next() 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project size_t size = m_clientVector.size(); 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project while (m_index < size) { 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CachedResourceClient* next = m_clientVector[m_index++]; 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (m_clientSet.contains(next)) 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return next; 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 54