blob: c819a313f74924c537c845b03016d0b3197c2c89 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_STORAGE_BLOBFS_LOADER_INFO_H_
#define SRC_STORAGE_BLOBFS_LOADER_INFO_H_
#ifndef __Fuchsia__
#error Fuchsia-only Header
#endif
#include <memory>
#include "src/storage/blobfs/blob_verifier.h"
#include "src/storage/blobfs/compression/seekable_decompressor.h"
namespace blobfs {
// Info required by to read in and verify pages.
struct LoaderInfo {
// Inode index for the blob.
uint32_t node_index = 0;
std::unique_ptr<BlobLayout> layout;
// Used to verify the pages as they are read in.
// TODO(https://fxbug.dev/42121190): Make BlobVerifier movable, unwrap from unique_ptr.
std::unique_ptr<BlobVerifier> verifier;
// An optional decompressor used by the chunked compression strategy. The decompressor is invoked
// on the raw bytes received from the disk. If unset, blob data is assumed to be uncompressed.
std::unique_ptr<SeekableDecompressor> decompressor;
};
} // namespace blobfs
#endif // SRC_STORAGE_BLOBFS_LOADER_INFO_H_