Home | History | Annotate | Download | only in fileapi
      1 // Copyright (c) 2012 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_FILEAPI_FILE_SYSTEM_QUOTA_UTIL_H_
      6 #define STORAGE_BROWSER_FILEAPI_FILE_SYSTEM_QUOTA_UTIL_H_
      7 
      8 #include <set>
      9 #include <string>
     10 
     11 #include "base/basictypes.h"
     12 #include "base/files/file.h"
     13 #include "storage/browser/storage_browser_export.h"
     14 #include "storage/common/fileapi/file_system_types.h"
     15 #include "url/gurl.h"
     16 
     17 namespace base {
     18 class SequencedTaskRunner;
     19 }
     20 
     21 namespace storage {
     22 class QuotaManagerProxy;
     23 }
     24 
     25 namespace storage {
     26 
     27 class FileSystemContext;
     28 class QuotaReservation;
     29 
     30 // An abstract interface that provides common quota-related utility functions
     31 // for file_system_quota_client.
     32 // All the methods of this class are synchronous and need to be called on
     33 // the thread that the method name implies.
     34 class STORAGE_EXPORT FileSystemQuotaUtil {
     35  public:
     36   virtual ~FileSystemQuotaUtil() {}
     37 
     38   // Deletes the data on the origin and reports the amount of deleted data
     39   // to the quota manager via |proxy|.
     40   virtual base::File::Error DeleteOriginDataOnFileTaskRunner(
     41       FileSystemContext* context,
     42       storage::QuotaManagerProxy* proxy,
     43       const GURL& origin_url,
     44       FileSystemType type) = 0;
     45 
     46   virtual void GetOriginsForTypeOnFileTaskRunner(storage::FileSystemType type,
     47                                                  std::set<GURL>* origins) = 0;
     48 
     49   virtual void GetOriginsForHostOnFileTaskRunner(storage::FileSystemType type,
     50                                                  const std::string& host,
     51                                                  std::set<GURL>* origins) = 0;
     52 
     53   // Returns the amount of data used for the origin for usage tracking.
     54   virtual int64 GetOriginUsageOnFileTaskRunner(
     55       storage::FileSystemContext* file_system_context,
     56       const GURL& origin_url,
     57       storage::FileSystemType type) = 0;
     58 
     59   // Creates new reservation object for the origin and the type.
     60   virtual scoped_refptr<QuotaReservation>
     61       CreateQuotaReservationOnFileTaskRunner(
     62           const GURL& origin_url,
     63           FileSystemType type) = 0;
     64 };
     65 
     66 }  // namespace storage
     67 
     68 #endif  // STORAGE_BROWSER_FILEAPI_FILE_SYSTEM_QUOTA_UTIL_H_
     69