// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef STORAGE_BROWSER_DATABASE_DATABASES_TABLE_H_ #define STORAGE_BROWSER_DATABASE_DATABASES_TABLE_H_ #include #include "base/strings/string16.h" #include "storage/browser/storage_browser_export.h" namespace sql { class Connection; } namespace storage { struct STORAGE_EXPORT_PRIVATE DatabaseDetails { DatabaseDetails(); ~DatabaseDetails(); std::string origin_identifier; base::string16 database_name; base::string16 description; int64 estimated_size; }; class STORAGE_EXPORT_PRIVATE DatabasesTable { public: explicit DatabasesTable(sql::Connection* db) : db_(db) { } bool Init(); int64 GetDatabaseID(const std::string& origin_identifier, const base::string16& database_name); bool GetDatabaseDetails(const std::string& origin_identifier, const base::string16& database_name, DatabaseDetails* details); bool InsertDatabaseDetails(const DatabaseDetails& details); bool UpdateDatabaseDetails(const DatabaseDetails& details); bool DeleteDatabaseDetails(const std::string& origin_identifier, const base::string16& database_name); bool GetAllOriginIdentifiers(std::vector* origin_identifiers); bool GetAllDatabaseDetailsForOriginIdentifier( const std::string& origin_identifier, std::vector* details); bool DeleteOriginIdentifier(const std::string& origin_identifier); private: sql::Connection* db_; }; } // namespace storage #endif // STORAGE_BROWSER_DATABASE_DATABASES_TABLE_H_