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 10 namespace history { 11 12 class ThumbnailDatabase; 13 14 // The SQL handler implementation for icon_mapping and favicon table. 15 class 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<chrome::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