#include "storage/browser/blob/blob_data_builder.h"
#include <stddef.h>
#include <stdint.h>
#include <memory>
#include <utility>
#include "base/files/file.h"
#include "base/memory/ptr_util.h"
#include "base/numerics/safe_conversions.h"
#include "base/numerics/safe_math.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/time/time.h"
#include "components/file_access/scoped_file_access_delegate.h"
#include "storage/browser/blob/blob_entry.h"
#include "storage/browser/blob/blob_storage_registry.h"
#include "storage/browser/blob/shareable_blob_data_item.h"
#include "third_party/blink/public/common/blob/blob_utils.h"
FilePath;
namespace storage {
BlobDataBuilder::FutureData::FutureData(FutureData&&) = default;
BlobDataBuilder::FutureData& BlobDataBuilder::FutureData::operator=(
FutureData&&) = default;
BlobDataBuilder::FutureData::~FutureData() = default;
bool BlobDataBuilder::FutureData::Populate(base::span<const uint8_t> data,
size_t offset) const { … }
base::span<uint8_t> BlobDataBuilder::FutureData::GetDataToPopulate(
size_t offset,
size_t length) const { … }
BlobDataBuilder::FutureData::FutureData(scoped_refptr<BlobDataItem> item)
: … { … }
BlobDataBuilder::FutureFile::FutureFile(FutureFile&&) = default;
BlobDataBuilder::FutureFile& BlobDataBuilder::FutureFile::operator=(
FutureFile&&) = default;
BlobDataBuilder::FutureFile::~FutureFile() = default;
bool BlobDataBuilder::FutureFile::Populate(
scoped_refptr<ShareableFileReference> file_reference,
const base::Time& expected_modification_time) { … }
BlobDataBuilder::FutureFile::FutureFile(scoped_refptr<BlobDataItem> item)
: … { … }
BlobDataBuilder::BlobDataBuilder(const std::string& uuid) : … { … }
BlobDataBuilder::~BlobDataBuilder() = default;
void BlobDataBuilder::AppendData(base::span<const uint8_t> data) { … }
BlobDataBuilder::FutureData BlobDataBuilder::AppendFutureData(size_t length) { … }
BlobDataBuilder::FutureFile BlobDataBuilder::AppendFutureFile(
uint64_t offset,
uint64_t length,
uint64_t file_id) { … }
void BlobDataBuilder::AppendFile(
const FilePath& file_path,
uint64_t offset,
uint64_t length,
const base::Time& expected_modification_time,
file_access::ScopedFileAccessDelegate::RequestFilesAccessIOCallback
file_access) { … }
void BlobDataBuilder::AppendBlob(const std::string& uuid,
uint64_t offset,
uint64_t length,
const BlobStorageRegistry& blob_registry) { … }
void BlobDataBuilder::SliceBlob(const BlobEntry* source,
uint64_t slice_offset,
uint64_t slice_size) { … }
void BlobDataBuilder::AppendBlob(const std::string& uuid,
const BlobStorageRegistry& blob_registry) { … }
void BlobDataBuilder::AppendFileSystemFile(
const FileSystemURL& url,
uint64_t offset,
uint64_t length,
const base::Time& expected_modification_time,
scoped_refptr<FileSystemContext> file_system_context,
file_access::ScopedFileAccessDelegate::RequestFilesAccessIOCallback
file_access) { … }
void BlobDataBuilder::AppendReadableDataHandle(
scoped_refptr<DataHandle> data_handle,
uint64_t offset,
uint64_t length) { … }
void BlobDataBuilder::AppendMojoDataItem(mojom::BlobDataItemPtr item_ptr) { … }
std::unique_ptr<BlobDataSnapshot> BlobDataBuilder::CreateSnapshot() const { … }
void PrintTo(const BlobDataBuilder& x, std::ostream* os) { … }
}