1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_HISTORY_ANDROID_FAVICON_SQL_HANDLER_H_ 6#define CHROME_BROWSER_HISTORY_ANDROID_FAVICON_SQL_HANDLER_H_ 7 8#include "chrome/browser/history/android/sql_handler.h" 9 10namespace history { 11 12class ThumbnailDatabase; 13 14// The SQL handler implementation for icon_mapping and favicon table. 15class FaviconSQLHandler : public SQLHandler { 16 public: 17 explicit FaviconSQLHandler(ThumbnailDatabase* thumbnail_db); 18 virtual ~FaviconSQLHandler(); 19 20 // SQLHandler overrides: 21 virtual bool Update(const HistoryAndBookmarkRow& row, 22 const TableIDRows& ids_set) OVERRIDE; 23 virtual bool Delete(const TableIDRows& ids_set) OVERRIDE; 24 virtual bool Insert(HistoryAndBookmarkRow* row) OVERRIDE; 25 26 private: 27 // Deletes the given favicons if they are not used by any pages. Returns 28 // true if all unused favicons are deleted. 29 bool DeleteUnusedFavicon(const std::vector<favicon_base::FaviconID>& ids); 30 31 ThumbnailDatabase* thumbnail_db_; 32 33 DISALLOW_COPY_AND_ASSIGN(FaviconSQLHandler); 34}; 35 36} // namespace history. 37 38#endif // CHROME_BROWSER_HISTORY_ANDROID_FAVICON_SQL_HANDLER_H_ 39