| // 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 <limits.h> | |
| #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" | |
| #include "starboard/types.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 |