// Copyright 2013 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. #include "net/disk_cache/simple/simple_entry_operation.h" #include #include "base/logging.h" #include "net/base/io_buffer.h" #include "net/disk_cache/disk_cache.h" #include "net/disk_cache/simple/simple_entry_impl.h" namespace disk_cache { SimpleEntryOperation::SimpleEntryOperation(SimpleEntryOperation&& other) : entry_(std::move(other.entry_)), buf_(std::move(other.buf_)), callback_(std::move(other.callback_)), out_entry_(other.out_entry_), offset_(other.offset_), sparse_offset_(other.sparse_offset_), length_(other.length_), out_start_(other.out_start_), type_(other.type_), have_index_(other.have_index_), index_(other.index_), truncate_(other.truncate_), optimistic_(other.optimistic_) {} SimpleEntryOperation::~SimpleEntryOperation() = default; // static SimpleEntryOperation SimpleEntryOperation::OpenOperation( SimpleEntryImpl* entry, bool have_index, net::CompletionOnceCallback callback, Entry** out_entry) { return SimpleEntryOperation(entry, NULL, std::move(callback), out_entry, 0, 0, 0, NULL, TYPE_OPEN, have_index, 0, false, false); } // static SimpleEntryOperation SimpleEntryOperation::CreateOperation( SimpleEntryImpl* entry, bool have_index, net::CompletionOnceCallback callback, Entry** out_entry) { return SimpleEntryOperation(entry, NULL, std::move(callback), out_entry, 0, 0, 0, NULL, TYPE_CREATE, have_index, 0, false, false); } // static SimpleEntryOperation SimpleEntryOperation::CloseOperation( SimpleEntryImpl* entry) { return SimpleEntryOperation(entry, NULL, CompletionOnceCallback(), NULL, 0, 0, 0, NULL, TYPE_CLOSE, false, 0, false, false); } // static SimpleEntryOperation SimpleEntryOperation::ReadOperation( SimpleEntryImpl* entry, int index, int offset, int length, net::IOBuffer* buf, CompletionOnceCallback callback) { return SimpleEntryOperation(entry, buf, std::move(callback), NULL, offset, 0, length, NULL, TYPE_READ, false, index, false, false); } // static SimpleEntryOperation SimpleEntryOperation::WriteOperation( SimpleEntryImpl* entry, int index, int offset, int length, net::IOBuffer* buf, bool truncate, bool optimistic, CompletionOnceCallback callback) { return SimpleEntryOperation(entry, buf, std::move(callback), NULL, offset, 0, length, NULL, TYPE_WRITE, false, index, truncate, optimistic); } // static SimpleEntryOperation SimpleEntryOperation::ReadSparseOperation( SimpleEntryImpl* entry, int64_t sparse_offset, int length, net::IOBuffer* buf, CompletionOnceCallback callback) { return SimpleEntryOperation(entry, buf, std::move(callback), NULL, 0, sparse_offset, length, NULL, TYPE_READ_SPARSE, false, 0, false, false); } // static SimpleEntryOperation SimpleEntryOperation::WriteSparseOperation( SimpleEntryImpl* entry, int64_t sparse_offset, int length, net::IOBuffer* buf, CompletionOnceCallback callback) { return SimpleEntryOperation(entry, buf, std::move(callback), NULL, 0, sparse_offset, length, NULL, TYPE_WRITE_SPARSE, false, 0, false, false); } // static SimpleEntryOperation SimpleEntryOperation::GetAvailableRangeOperation( SimpleEntryImpl* entry, int64_t sparse_offset, int length, int64_t* out_start, CompletionOnceCallback callback) { return SimpleEntryOperation(entry, NULL, std::move(callback), NULL, 0, sparse_offset, length, out_start, TYPE_GET_AVAILABLE_RANGE, false, 0, false, false); } // static SimpleEntryOperation SimpleEntryOperation::DoomOperation( SimpleEntryImpl* entry, net::CompletionOnceCallback callback) { net::IOBuffer* const buf = NULL; Entry** const out_entry = NULL; const int offset = 0; const int64_t sparse_offset = 0; const int length = 0; int64_t* const out_start = NULL; const bool have_index = false; const int index = 0; const bool truncate = false; const bool optimistic = false; return SimpleEntryOperation( entry, buf, std::move(callback), out_entry, offset, sparse_offset, length, out_start, TYPE_DOOM, have_index, index, truncate, optimistic); } SimpleEntryOperation::SimpleEntryOperation(SimpleEntryImpl* entry, net::IOBuffer* buf, net::CompletionOnceCallback callback, Entry** out_entry, int offset, int64_t sparse_offset, int length, int64_t* out_start, EntryOperationType type, bool have_index, int index, bool truncate, bool optimistic) : entry_(entry), buf_(buf), callback_(std::move(callback)), out_entry_(out_entry), offset_(offset), sparse_offset_(sparse_offset), length_(length), out_start_(out_start), type_(type), have_index_(have_index), index_(index), truncate_(truncate), optimistic_(optimistic) {} } // namespace disk_cache