chromium/storage/browser/blob/scoped_file.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_BLOB_SCOPED_FILE_H_
#define STORAGE_BROWSER_BLOB_SCOPED_FILE_H_

#include <map>

#include "base/component_export.h"
#include "base/files/file_path.h"
#include "base/functional/callback_forward.h"
#include "base/memory/scoped_refptr.h"

namespace base {
class TaskRunner;
}

namespace storage {

// A scoped reference for a FilePath that can optionally schedule the file
// to be deleted and/or to notify a consumer when it is going to be scoped out.
// Consumers can pass the ownership of a ScopedFile via std::move().
//
// TODO(kinuko): Probably this can be moved under base or somewhere more
// common place.
class COMPONENT_EXPORT(STORAGE_BROWSER) ScopedFile {};

}  // namespace storage

#endif  // STORAGE_BROWSER_BLOB_SCOPED_FILE_H_