// Copyright (c) 2012 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_FILEAPI_FILE_SYSTEM_QUOTA_UTIL_H_ #define STORAGE_BROWSER_FILEAPI_FILE_SYSTEM_QUOTA_UTIL_H_ #include #include #include "base/basictypes.h" #include "base/files/file.h" #include "storage/browser/storage_browser_export.h" #include "storage/common/fileapi/file_system_types.h" #include "url/gurl.h" namespace base { class SequencedTaskRunner; } namespace storage { class QuotaManagerProxy; } namespace storage { class FileSystemContext; class QuotaReservation; // An abstract interface that provides common quota-related utility functions // for file_system_quota_client. // All the methods of this class are synchronous and need to be called on // the thread that the method name implies. class STORAGE_EXPORT FileSystemQuotaUtil { public: virtual ~FileSystemQuotaUtil() {} // Deletes the data on the origin and reports the amount of deleted data // to the quota manager via |proxy|. virtual base::File::Error DeleteOriginDataOnFileTaskRunner( FileSystemContext* context, storage::QuotaManagerProxy* proxy, const GURL& origin_url, FileSystemType type) = 0; virtual void GetOriginsForTypeOnFileTaskRunner(storage::FileSystemType type, std::set* origins) = 0; virtual void GetOriginsForHostOnFileTaskRunner(storage::FileSystemType type, const std::string& host, std::set* origins) = 0; // Returns the amount of data used for the origin for usage tracking. virtual int64 GetOriginUsageOnFileTaskRunner( storage::FileSystemContext* file_system_context, const GURL& origin_url, storage::FileSystemType type) = 0; // Creates new reservation object for the origin and the type. virtual scoped_refptr CreateQuotaReservationOnFileTaskRunner( const GURL& origin_url, FileSystemType type) = 0; }; } // namespace storage #endif // STORAGE_BROWSER_FILEAPI_FILE_SYSTEM_QUOTA_UTIL_H_