1bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#include "content/browser/dom_storage/local_storage_database_adapter.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/files/file_util.h"
8bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#include "content/browser/dom_storage/dom_storage_database.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdochnamespace content {
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LocalStorageDatabaseAdapter::LocalStorageDatabaseAdapter(
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const base::FilePath& path)
14bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch    : db_(new DOMStorageDatabase(path)) {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LocalStorageDatabaseAdapter::~LocalStorageDatabaseAdapter() { }
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdochvoid LocalStorageDatabaseAdapter::ReadAllValues(DOMStorageValuesMap* result) {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  db_->ReadAllValues(result);
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool LocalStorageDatabaseAdapter::CommitChanges(
24bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch    bool clear_all_first, const DOMStorageValuesMap& changes) {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return db_->CommitChanges(clear_all_first, changes);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalStorageDatabaseAdapter::DeleteFiles() {
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  sql::Connection::Delete(db_->file_path());
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void LocalStorageDatabaseAdapter::Reset() {
33bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  db_.reset(new DOMStorageDatabase(db_->file_path()));
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LocalStorageDatabaseAdapter::LocalStorageDatabaseAdapter()
37bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch    : db_(new DOMStorageDatabase()) {
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch}  // namespace content
41