chromium/content/browser/cache_storage/scoped_writable_entry.h

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

#ifndef CONTENT_BROWSER_CACHE_STORAGE_SCOPED_WRITABLE_ENTRY_H_
#define CONTENT_BROWSER_CACHE_STORAGE_SCOPED_WRITABLE_ENTRY_H_

#include <memory>

#include "net/disk_cache/disk_cache.h"

namespace content {

// A custom deleter that closes the entry. But if WritingCompleted() hasn't been
// called, it will doom the entry before closing it.
class ScopedWritableDeleter {};

// Use this to manage disk_cache::Entry*'s that should be doomed before closing
// unless told otherwise (via calling WritingCompleted on the deleter).
//
// Example:
// ScopedWritableEntry entry(my_entry);
// .. write some stuff ..
// entry.get_deleter().WritingCompleted();
ScopedWritableEntry;

}  // namespace content

#endif  // CONTENT_BROWSER_CACHE_STORAGE_SCOPED_WRITABLE_ENTRY_H_