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#include "components/history/core/android/android_history_types.h" 6 7namespace history { 8 9namespace { 10// The column name defined in android.provider.Browser.BookmarkColumns 11const char* const kAndroidBookmarkColumn[] = { 12 "_id", 13 "url", 14 "title", 15 "created", 16 "date", 17 "visits", 18 "favicon", 19 "bookmark", 20 "raw_url", 21}; 22 23// The column name defined in android.provider.Browser.SearchColumns 24const char* const kAndroidSearchColumn[] = { 25 "_id", 26 "search", 27 "date", 28}; 29 30class BookmarkIDMapping : public std::map<std::string, 31 HistoryAndBookmarkRow::ColumnID> { 32 public: 33 BookmarkIDMapping() { 34 COMPILE_ASSERT(arraysize(kAndroidBookmarkColumn) <= 35 HistoryAndBookmarkRow::COLUMN_END, 36 Array_size_must_not_exceed_enum); 37 for (size_t i = 0; i < arraysize(kAndroidBookmarkColumn); ++i) { 38 (*this)[kAndroidBookmarkColumn[i]] = 39 static_cast<HistoryAndBookmarkRow::ColumnID>(i); 40 } 41 } 42}; 43 44// The mapping from Android column name to ColumnID; It is initialized 45// once it used. 46BookmarkIDMapping* g_bookmark_id_mapping = NULL; 47 48class SearchIDMapping : public std::map<std::string, 49 SearchRow::ColumnID> { 50 public: 51 SearchIDMapping() { 52 COMPILE_ASSERT(arraysize(kAndroidSearchColumn) <= SearchRow::COLUMN_END, 53 Array_size_must_not_exceed_enum); 54 for (size_t i = 0; i < arraysize(kAndroidSearchColumn); ++i) { 55 (*this)[kAndroidSearchColumn[i]] = 56 static_cast<SearchRow::ColumnID>(i); 57 } 58 } 59}; 60 61// The mapping from Android column name to ColumnID; It is initialized 62// once it used. 63SearchIDMapping* g_search_id_mapping = NULL; 64 65} // namespace 66 67HistoryAndBookmarkRow::HistoryAndBookmarkRow() 68 : id_(0), 69 created_(base::Time()), 70 last_visit_time_(base::Time()), 71 visit_count_(0), 72 is_bookmark_(false), 73 parent_id_(0), 74 url_id_(0) { 75} 76 77HistoryAndBookmarkRow::~HistoryAndBookmarkRow() { 78} 79 80std::string HistoryAndBookmarkRow::GetAndroidName(ColumnID id) { 81 return kAndroidBookmarkColumn[id]; 82} 83 84HistoryAndBookmarkRow::ColumnID HistoryAndBookmarkRow::GetColumnID( 85 const std::string& name) { 86 if (!g_bookmark_id_mapping) 87 g_bookmark_id_mapping = new BookmarkIDMapping(); 88 89 BookmarkIDMapping::const_iterator i = g_bookmark_id_mapping->find(name); 90 if (i == g_bookmark_id_mapping->end()) 91 return HistoryAndBookmarkRow::COLUMN_END; 92 else 93 return i->second; 94} 95 96SearchRow::SearchRow() 97 : id_(0), 98 keyword_id_(0) { 99} 100 101SearchRow::~SearchRow() { 102} 103 104std::string SearchRow::GetAndroidName(ColumnID id) { 105 return kAndroidSearchColumn[id]; 106} 107 108SearchRow::ColumnID SearchRow::GetColumnID( 109 const std::string& name) { 110 if (!g_search_id_mapping) 111 g_search_id_mapping = new SearchIDMapping(); 112 113 SearchIDMapping::const_iterator i = g_search_id_mapping->find(name); 114 if (i == g_search_id_mapping->end()) 115 return SearchRow:: COLUMN_END; 116 else 117 return i->second; 118} 119 120AndroidURLRow::AndroidURLRow() 121 : id(0), 122 url_id(0) { 123} 124 125AndroidURLRow::~AndroidURLRow() { 126} 127 128SearchTermRow::SearchTermRow() 129 : id(0) { 130} 131 132SearchTermRow::~SearchTermRow() { 133} 134 135AndroidStatement::AndroidStatement(sql::Statement* statement, int favicon_index) 136 : statement_(statement), 137 favicon_index_(favicon_index) { 138} 139 140AndroidStatement::~AndroidStatement() { 141} 142 143} // namespace history. 144