| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/app_list/search/history_data_store.h" | 5 #include "chrome/browser/ui/app_list/search/history_data_store.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/json/json_file_value_serializer.h" | 8 #include "base/json/json_file_value_serializer.h" |
| 9 #include "base/json/json_string_value_serializer.h" | 9 #include "base/json/json_string_value_serializer.h" |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 } | 120 } |
| 121 | 121 |
| 122 void HistoryDataStore::Init(base::DictionaryValue* cached_dict) { | 122 void HistoryDataStore::Init(base::DictionaryValue* cached_dict) { |
| 123 DCHECK(cached_dict); | 123 DCHECK(cached_dict); |
| 124 cached_dict->SetString(kKeyVersion, kCurrentVersion); | 124 cached_dict->SetString(kKeyVersion, kCurrentVersion); |
| 125 cached_dict->Set(kKeyAssociations, new base::DictionaryValue); | 125 cached_dict->Set(kKeyAssociations, new base::DictionaryValue); |
| 126 } | 126 } |
| 127 | 127 |
| 128 void HistoryDataStore::Flush( | 128 void HistoryDataStore::Flush( |
| 129 const DictionaryDataStore::OnFlushedCallback& on_flushed) { | 129 const DictionaryDataStore::OnFlushedCallback& on_flushed) { |
| 130 if (data_store_) | 130 if (data_store_.get()) |
| 131 data_store_->Flush(on_flushed); | 131 data_store_->Flush(on_flushed); |
| 132 else | 132 else |
| 133 on_flushed.Run(); | 133 on_flushed.Run(); |
| 134 } | 134 } |
| 135 | 135 |
| 136 void HistoryDataStore::Load( | 136 void HistoryDataStore::Load( |
| 137 const HistoryDataStore::OnLoadedCallback& on_loaded) { | 137 const HistoryDataStore::OnLoadedCallback& on_loaded) { |
| 138 if (data_store_) { | 138 if (data_store_.get()) { |
| 139 data_store_->Load(base::Bind(&HistoryDataStore::OnDictionaryLoadedCallback, | 139 data_store_->Load(base::Bind(&HistoryDataStore::OnDictionaryLoadedCallback, |
| 140 this, | 140 this, |
| 141 on_loaded)); | 141 on_loaded)); |
| 142 } else { | 142 } else { |
| 143 OnDictionaryLoadedCallback( | 143 OnDictionaryLoadedCallback( |
| 144 on_loaded, make_scoped_ptr(cached_dict_->DeepCopy())); | 144 on_loaded, make_scoped_ptr(cached_dict_->DeepCopy())); |
| 145 } | 145 } |
| 146 } | 146 } |
| 147 | 147 |
| 148 void HistoryDataStore::SetPrimary(const std::string& query, | 148 void HistoryDataStore::SetPrimary(const std::string& query, |
| 149 const std::string& result) { | 149 const std::string& result) { |
| 150 base::DictionaryValue* entry_dict = GetEntryDict(query); | 150 base::DictionaryValue* entry_dict = GetEntryDict(query); |
| 151 entry_dict->SetWithoutPathExpansion(kKeyPrimary, | 151 entry_dict->SetWithoutPathExpansion(kKeyPrimary, |
| 152 new base::StringValue(result)); | 152 new base::StringValue(result)); |
| 153 if (data_store_) | 153 if (data_store_.get()) |
| 154 data_store_->ScheduleWrite(); | 154 data_store_->ScheduleWrite(); |
| 155 } | 155 } |
| 156 | 156 |
| 157 void HistoryDataStore::SetSecondary( | 157 void HistoryDataStore::SetSecondary( |
| 158 const std::string& query, | 158 const std::string& query, |
| 159 const HistoryData::SecondaryDeque& results) { | 159 const HistoryData::SecondaryDeque& results) { |
| 160 scoped_ptr<base::ListValue> results_list(new base::ListValue); | 160 scoped_ptr<base::ListValue> results_list(new base::ListValue); |
| 161 for (size_t i = 0; i< results.size(); ++i) | 161 for (size_t i = 0; i< results.size(); ++i) |
| 162 results_list->AppendString(results[i]); | 162 results_list->AppendString(results[i]); |
| 163 | 163 |
| 164 base::DictionaryValue* entry_dict = GetEntryDict(query); | 164 base::DictionaryValue* entry_dict = GetEntryDict(query); |
| 165 entry_dict->SetWithoutPathExpansion(kKeySecondary, results_list.release()); | 165 entry_dict->SetWithoutPathExpansion(kKeySecondary, results_list.release()); |
| 166 if (data_store_) | 166 if (data_store_.get()) |
| 167 data_store_->ScheduleWrite(); | 167 data_store_->ScheduleWrite(); |
| 168 } | 168 } |
| 169 | 169 |
| 170 void HistoryDataStore::SetUpdateTime(const std::string& query, | 170 void HistoryDataStore::SetUpdateTime(const std::string& query, |
| 171 const base::Time& update_time) { | 171 const base::Time& update_time) { |
| 172 base::DictionaryValue* entry_dict = GetEntryDict(query); | 172 base::DictionaryValue* entry_dict = GetEntryDict(query); |
| 173 entry_dict->SetWithoutPathExpansion(kKeyUpdateTime, | 173 entry_dict->SetWithoutPathExpansion(kKeyUpdateTime, |
| 174 new base::StringValue(base::Int64ToString( | 174 new base::StringValue(base::Int64ToString( |
| 175 update_time.ToInternalValue()))); | 175 update_time.ToInternalValue()))); |
| 176 if (data_store_) | 176 if (data_store_.get()) |
| 177 data_store_->ScheduleWrite(); | 177 data_store_->ScheduleWrite(); |
| 178 } | 178 } |
| 179 | 179 |
| 180 void HistoryDataStore::Delete(const std::string& query) { | 180 void HistoryDataStore::Delete(const std::string& query) { |
| 181 base::DictionaryValue* assoc_dict = GetAssociationDict(); | 181 base::DictionaryValue* assoc_dict = GetAssociationDict(); |
| 182 assoc_dict->RemoveWithoutPathExpansion(query, NULL); | 182 assoc_dict->RemoveWithoutPathExpansion(query, NULL); |
| 183 if (data_store_) | 183 if (data_store_.get()) |
| 184 data_store_->ScheduleWrite(); | 184 data_store_->ScheduleWrite(); |
| 185 } | 185 } |
| 186 | 186 |
| 187 base::DictionaryValue* HistoryDataStore::GetAssociationDict() { | 187 base::DictionaryValue* HistoryDataStore::GetAssociationDict() { |
| 188 base::DictionaryValue* cached_dict = | 188 base::DictionaryValue* cached_dict = |
| 189 cached_dict_ ? cached_dict_.get() : data_store_->cached_dict(); | 189 cached_dict_ ? cached_dict_.get() : data_store_->cached_dict(); |
| 190 DCHECK(cached_dict); | 190 DCHECK(cached_dict); |
| 191 | 191 |
| 192 base::DictionaryValue* assoc_dict = NULL; | 192 base::DictionaryValue* assoc_dict = NULL; |
| 193 CHECK(cached_dict->GetDictionary(kKeyAssociations, &assoc_dict) && | 193 CHECK(cached_dict->GetDictionary(kKeyAssociations, &assoc_dict) && |
| (...skipping 19 matching lines...) Expand all Loading... |
| 213 void HistoryDataStore::OnDictionaryLoadedCallback( | 213 void HistoryDataStore::OnDictionaryLoadedCallback( |
| 214 OnLoadedCallback callback, scoped_ptr<base::DictionaryValue> dict) { | 214 OnLoadedCallback callback, scoped_ptr<base::DictionaryValue> dict) { |
| 215 if (!dict) { | 215 if (!dict) { |
| 216 callback.Run(scoped_ptr<HistoryData::Associations>()); | 216 callback.Run(scoped_ptr<HistoryData::Associations>()); |
| 217 } else { | 217 } else { |
| 218 callback.Run(Parse(dict.Pass()).Pass()); | 218 callback.Run(Parse(dict.Pass()).Pass()); |
| 219 } | 219 } |
| 220 } | 220 } |
| 221 | 221 |
| 222 } // namespace app_list | 222 } // namespace app_list |
| OLD | NEW |