• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "chrome/browser/history/android/android_history_types.h"
6 
7 namespace history {
8 
9 namespace {
10 // The column name defined in android.provider.Browser.BookmarkColumns
11 const 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
24 const char* const kAndroidSearchColumn[] = {
25     "_id",
26     "search",
27     "date",
28 };
29 
30 class BookmarkIDMapping : public std::map<std::string,
31                                           HistoryAndBookmarkRow::ColumnID> {
32  public:
BookmarkIDMapping()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.
46 BookmarkIDMapping* g_bookmark_id_mapping = NULL;
47 
48 class SearchIDMapping : public std::map<std::string,
49                                         SearchRow::ColumnID> {
50  public:
SearchIDMapping()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.
63 SearchIDMapping* g_search_id_mapping = NULL;
64 
65 }  // namespace
66 
HistoryAndBookmarkRow()67 HistoryAndBookmarkRow::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 
~HistoryAndBookmarkRow()77 HistoryAndBookmarkRow::~HistoryAndBookmarkRow() {
78 }
79 
GetAndroidName(ColumnID id)80 std::string HistoryAndBookmarkRow::GetAndroidName(ColumnID id) {
81   return kAndroidBookmarkColumn[id];
82 }
83 
GetColumnID(const std::string & name)84 HistoryAndBookmarkRow::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 
SearchRow()96 SearchRow::SearchRow()
97     : id_(0),
98       template_url_id_(0) {
99 }
100 
~SearchRow()101 SearchRow::~SearchRow() {
102 }
103 
GetAndroidName(ColumnID id)104 std::string SearchRow::GetAndroidName(ColumnID id) {
105   return kAndroidSearchColumn[id];
106 }
107 
GetColumnID(const std::string & name)108 SearchRow::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 
AndroidURLRow()120 AndroidURLRow::AndroidURLRow()
121     : id(0),
122       url_id(0) {
123 }
124 
~AndroidURLRow()125 AndroidURLRow::~AndroidURLRow() {
126 }
127 
SearchTermRow()128 SearchTermRow::SearchTermRow()
129     : id(0) {
130 }
131 
~SearchTermRow()132 SearchTermRow::~SearchTermRow() {
133 }
134 
AndroidStatement(sql::Statement * statement,int favicon_index)135 AndroidStatement::AndroidStatement(sql::Statement* statement, int favicon_index)
136     : statement_(statement),
137       favicon_index_(favicon_index) {
138 }
139 
~AndroidStatement()140 AndroidStatement::~AndroidStatement() {
141 }
142 
143 }  // namespace history.
144