chromium/storage/browser/quota/quota_task.h

// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef STORAGE_BROWSER_QUOTA_QUOTA_TASK_H_
#define STORAGE_BROWSER_QUOTA_QUOTA_TASK_H_

#include <set>

#include "base/compiler_specific.h"
#include "base/component_export.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/task/sequenced_task_runner_helpers.h"

namespace base {
class SingleThreadTaskRunner;
}

namespace storage {

class QuotaTaskObserver;

// A base class for quota tasks.
//
// Instances of this class own themselves and schedule themselves for deletion
// when async tasks are either aborted or completed.
// This class is not thread-safe and it's subclasses need not be either.
// CallCompleted(), Abort(), and DeleteSoon() must be called on the same thread
// that is the constructor is called on.
// TODO(kinuko): Revise this using base::OnceCallback.
class QuotaTask {};

class COMPONENT_EXPORT(STORAGE_BROWSER) QuotaTaskObserver {};
}

#endif  // STORAGE_BROWSER_QUOTA_QUOTA_TASK_H_