pub struct Archive { /* private fields */ }Expand description
Archive for reading/writing AGC data
Implementations§
Source§impl Archive
impl Archive
Sourcepub fn new_reader() -> Self
pub fn new_reader() -> Self
Create a new archive in input (read) mode
Sourcepub fn new_writer() -> Self
pub fn new_writer() -> Self
Create a new archive in output (write) mode
Sourcepub fn register_stream(&mut self, stream_name: &str) -> usize
pub fn register_stream(&mut self, stream_name: &str) -> usize
Register a new stream and return its ID
Sourcepub fn get_stream_id(&self, stream_name: &str) -> Option<usize>
pub fn get_stream_id(&self, stream_name: &str) -> Option<usize>
Get stream ID by name (returns None if not found)
Sourcepub fn get_stream_names(&self) -> Vec<String>
pub fn get_stream_names(&self) -> Vec<String>
Get list of all stream names
Sourcepub fn add_part(
&mut self,
stream_id: usize,
data: &[u8],
metadata: u64,
) -> Result<()>
pub fn add_part( &mut self, stream_id: usize, data: &[u8], metadata: u64, ) -> Result<()>
Add a part to a stream
Sourcepub fn add_part_buffered(
&mut self,
stream_id: usize,
data: Vec<u8>,
metadata: u64,
)
pub fn add_part_buffered( &mut self, stream_id: usize, data: Vec<u8>, metadata: u64, )
Buffer a part for later writing (C++ AGC: AddPartBuffered) This allows parallel compression while maintaining deterministic write order. Call flush_buffers() after all parts are buffered to write in sorted stream_id order.
Sourcepub fn flush_buffers(&mut self) -> Result<()>
pub fn flush_buffers(&mut self) -> Result<()>
Flush all buffered parts to disk in sorted stream_id order (C++ AGC: flush_out_buffers) This ensures deterministic output regardless of which thread buffered the data.
Sourcepub fn set_raw_size(&mut self, stream_id: usize, raw_size: u64)
pub fn set_raw_size(&mut self, stream_id: usize, raw_size: u64)
Set raw (uncompressed) size for a stream
Sourcepub fn get_raw_size(&self, stream_id: usize) -> u64
pub fn get_raw_size(&self, stream_id: usize) -> u64
Get raw size for a stream
Sourcepub fn get_packed_size(&self, stream_id: usize) -> u64
pub fn get_packed_size(&self, stream_id: usize) -> u64
Get packed (compressed) size for a stream
Sourcepub fn get_packed_data_size(&self, stream_id: usize) -> u64
pub fn get_packed_data_size(&self, stream_id: usize) -> u64
Get packed data size (compressed data only, without metadata)
Sourcepub fn get_stream_name(&self, stream_id: usize) -> Option<&str>
pub fn get_stream_name(&self, stream_id: usize) -> Option<&str>
Get stream name by ID
Sourcepub fn get_num_streams(&self) -> usize
pub fn get_num_streams(&self) -> usize
Get number of streams
Sourcepub fn get_num_parts(&self, stream_id: usize) -> usize
pub fn get_num_parts(&self, stream_id: usize) -> usize
Get number of parts in a stream