Home | History | Annotate | Download | only in database
      1 // Copyright (c) 2009 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 #ifndef STORAGE_BROWSER_DATABASE_DATABASES_TABLE_H_
      6 #define STORAGE_BROWSER_DATABASE_DATABASES_TABLE_H_
      7 
      8 #include <vector>
      9 
     10 #include "base/strings/string16.h"
     11 #include "storage/browser/storage_browser_export.h"
     12 
     13 namespace sql {
     14 class Connection;
     15 }
     16 
     17 namespace storage {
     18 
     19 struct STORAGE_EXPORT_PRIVATE DatabaseDetails {
     20   DatabaseDetails();
     21   ~DatabaseDetails();
     22 
     23   std::string origin_identifier;
     24   base::string16 database_name;
     25   base::string16 description;
     26   int64 estimated_size;
     27 };
     28 
     29 class STORAGE_EXPORT_PRIVATE DatabasesTable {
     30  public:
     31   explicit DatabasesTable(sql::Connection* db) : db_(db) { }
     32 
     33   bool Init();
     34   int64 GetDatabaseID(const std::string& origin_identifier,
     35                       const base::string16& database_name);
     36   bool GetDatabaseDetails(const std::string& origin_identifier,
     37                           const base::string16& database_name,
     38                           DatabaseDetails* details);
     39   bool InsertDatabaseDetails(const DatabaseDetails& details);
     40   bool UpdateDatabaseDetails(const DatabaseDetails& details);
     41   bool DeleteDatabaseDetails(const std::string& origin_identifier,
     42                              const base::string16& database_name);
     43   bool GetAllOriginIdentifiers(std::vector<std::string>* origin_identifiers);
     44   bool GetAllDatabaseDetailsForOriginIdentifier(
     45       const std::string& origin_identifier,
     46       std::vector<DatabaseDetails>* details);
     47   bool DeleteOriginIdentifier(const std::string& origin_identifier);
     48  private:
     49   sql::Connection* db_;
     50 };
     51 
     52 }  // namespace storage
     53 
     54 #endif  // STORAGE_BROWSER_DATABASE_DATABASES_TABLE_H_
     55