Home | History | Annotate | Download | only in fileapi
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef WEBKIT_BROWSER_FILEAPI_SANDBOX_ORIGIN_DATABASE_INTERFACE_H_
      6 #define WEBKIT_BROWSER_FILEAPI_SANDBOX_ORIGIN_DATABASE_INTERFACE_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 
     11 #include "base/files/file_path.h"
     12 #include "webkit/browser/webkit_storage_browser_export.h"
     13 
     14 namespace fileapi {
     15 
     16 class WEBKIT_STORAGE_BROWSER_EXPORT_PRIVATE SandboxOriginDatabaseInterface {
     17  public:
     18   struct WEBKIT_STORAGE_BROWSER_EXPORT_PRIVATE OriginRecord {
     19     std::string origin;
     20     base::FilePath path;
     21 
     22     OriginRecord();
     23     OriginRecord(const std::string& origin, const base::FilePath& path);
     24     ~OriginRecord();
     25   };
     26 
     27   virtual ~SandboxOriginDatabaseInterface() {}
     28 
     29   // Returns true if the origin's path is included in this database.
     30   virtual bool HasOriginPath(const std::string& origin) = 0;
     31 
     32   // This will produce a unique path and add it to its database, if it's not
     33   // already present.
     34   virtual bool GetPathForOrigin(const std::string& origin,
     35                                 base::FilePath* directory) = 0;
     36 
     37   // Removes the origin's path from the database.
     38   // Returns success if the origin has been successfully removed, or
     39   // the origin is not found.
     40   // (This doesn't remove the actual path).
     41   virtual bool RemovePathForOrigin(const std::string& origin) = 0;
     42 
     43   // Lists all origins in this database.
     44   virtual bool ListAllOrigins(std::vector<OriginRecord>* origins) = 0;
     45 
     46   // This will release all database resources in use; call it to save memory.
     47   virtual void DropDatabase() = 0;
     48 
     49  protected:
     50   SandboxOriginDatabaseInterface() {}
     51 };
     52 
     53 }  // namespace fileapi
     54 
     55 #endif  // WEBKIT_BROWSER_FILEAPI_SANDBOX_ORIGIN_DATABASE_INTERFACE_H_
     56