pub struct BlobContext {Show 25 fields
pub blob_id: String,
pub blob_hash: Sha256,
pub blob_compressor: Algorithm,
pub blob_digester: Algorithm,
pub blob_cipher: Algorithm,
pub blob_prefetch_size: u64,
pub blob_meta_info_enabled: bool,
pub blob_meta_info: BlobMetaChunkArray,
pub blob_meta_header: BlobCompressionContextHeader,
pub blob_chunk_digest: Vec<DigestData>,
pub compressed_blob_size: u64,
pub uncompressed_blob_size: u64,
pub current_compressed_offset: u64,
pub current_uncompressed_offset: u64,
pub chunk_count: u32,
pub chunk_size: u32,
pub chunk_source: ChunkSource,
pub blob_toc_digest: [u8; 32],
pub blob_meta_digest: [u8; 32],
pub blob_meta_size: u64,
pub blob_toc_size: u32,
pub entry_list: TocEntryList,
pub cipher_object: Arc<Cipher>,
pub cipher_ctx: Option<CipherContext>,
pub external: bool,
}Expand description
BlobContext is used to hold the blob information of a layer during build.
Fields§
§blob_id: StringBlob id (user specified or sha256(blob)).
blob_hash: Sha256§blob_compressor: Algorithm§blob_digester: Algorithm§blob_cipher: Algorithm§blob_prefetch_size: u64§blob_meta_info_enabled: boolWhether to generate blob metadata information.
blob_meta_info: BlobMetaChunkArrayData chunks stored in the data blob, for v6.
blob_meta_header: BlobCompressionContextHeaderBlob metadata header stored in the data blob, for v6
blob_chunk_digest: Vec<DigestData>Blob chunk digest array.
compressed_blob_size: u64Final compressed blob file size.
uncompressed_blob_size: u64Final expected blob cache file size.
current_compressed_offset: u64Current blob offset cursor for writing to disk file.
current_uncompressed_offset: u64§chunk_count: u32The number of counts in a blob by the index of blob table.
chunk_size: u32Chunk slice size.
chunk_source: ChunkSourceWhether the blob is from chunk dict.
blob_toc_digest: [u8; 32]§blob_meta_digest: [u8; 32]§blob_meta_size: u64§blob_toc_size: u32§entry_list: TocEntryList§cipher_object: Arc<Cipher>Cipher to encrypt the RAFS blobs.
cipher_ctx: Option<CipherContext>§external: boolWhether the blob is from external storage backend.
Implementations§
Source§impl BlobContext
impl BlobContext
Sourcepub fn new(
blob_id: String,
blob_offset: u64,
features: BlobFeatures,
compressor: Algorithm,
digester: Algorithm,
cipher: Algorithm,
cipher_object: Arc<Cipher>,
cipher_ctx: Option<CipherContext>,
external: bool,
) -> Self
pub fn new( blob_id: String, blob_offset: u64, features: BlobFeatures, compressor: Algorithm, digester: Algorithm, cipher: Algorithm, cipher_object: Arc<Cipher>, cipher_ctx: Option<CipherContext>, external: bool, ) -> Self
Create a new instance of BlobContext.
Sourcepub fn from(
ctx: &BuildContext,
blob: &BlobInfo,
chunk_source: ChunkSource,
) -> Result<Self>
pub fn from( ctx: &BuildContext, blob: &BlobInfo, chunk_source: ChunkSource, ) -> Result<Self>
Create a new instance of BlobContext from BlobInfo object.
Sourcepub fn set_chunk_size(&mut self, chunk_size: u32)
pub fn set_chunk_size(&mut self, chunk_size: u32)
Set chunk size for the blob.
pub fn set_blob_prefetch_size(&mut self, ctx: &BuildContext)
pub fn set_meta_info_enabled(&mut self, enable: bool)
pub fn set_cipher_info( &mut self, cipher_object: Arc<Cipher>, cipher_ctx: Option<CipherContext>, )
pub fn add_chunk_meta_info( &mut self, chunk: &ChunkWrapper, chunk_info: Option<BlobChunkInfoV2Ondisk>, ) -> Result<()>
Sourcepub fn alloc_chunk_index(&mut self) -> Result<u32>
pub fn alloc_chunk_index(&mut self) -> Result<u32>
Allocate a count index sequentially in a blob.
Sourcepub fn write_data(
&mut self,
blob_writer: &mut dyn Artifact,
data: &[u8],
) -> Result<()>
pub fn write_data( &mut self, blob_writer: &mut dyn Artifact, data: &[u8], ) -> Result<()>
Helper to write data to blob and update blob hash.
Sourcepub fn write_tar_header(
&mut self,
blob_writer: &mut dyn Artifact,
name: &str,
size: u64,
) -> Result<Header>
pub fn write_tar_header( &mut self, blob_writer: &mut dyn Artifact, name: &str, size: u64, ) -> Result<Header>
Helper to write a tar header to blob and update blob hash.
Sourcepub fn compressed_offset(&self) -> u64
pub fn compressed_offset(&self) -> u64
Get offset of compressed blob, since current_compressed_offset is always >= compressed_blob_size, we can safely subtract here.
Trait Implementations§
Source§impl Clone for BlobContext
impl Clone for BlobContext
Source§fn clone(&self) -> BlobContext
fn clone(&self) -> BlobContext
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more