Skip to content

Commit c0825b1

Browse files
committed
Rename to PrefetchBuffer
1 parent 9029486 commit c0825b1

File tree

4 files changed

+17
-16
lines changed

4 files changed

+17
-16
lines changed

python/src/tiff.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::sync::Arc;
22

3-
use async_tiff::metadata::{PrefetchMetadataFetch, TiffMetadataReader};
3+
use async_tiff::metadata::{PrefetchBuffer, TiffMetadataReader};
44
use async_tiff::reader::AsyncFileReader;
55
use async_tiff::TIFF;
66
use pyo3::exceptions::PyIndexError;
@@ -32,9 +32,7 @@ impl PyTIFF {
3232
let reader = store.into_async_file_reader(path);
3333

3434
let cog_reader = future_into_py(py, async move {
35-
let metadata_fetch = PrefetchMetadataFetch::new(reader.clone(), prefetch)
36-
.await
37-
.unwrap();
35+
let metadata_fetch = PrefetchBuffer::new(reader.clone(), prefetch).await.unwrap();
3836
let mut metadata_reader = TiffMetadataReader::try_open(&metadata_fetch).await.unwrap();
3937
let ifds = metadata_reader
4038
.read_all_ifds(&metadata_fetch)

src/cog.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ mod test {
2424
use std::sync::Arc;
2525

2626
use crate::decoder::DecoderRegistry;
27-
use crate::metadata::{PrefetchMetadataFetch, TiffMetadataReader};
27+
use crate::metadata::{PrefetchBuffer, TiffMetadataReader};
2828
use crate::reader::{AsyncFileReader, ObjectReader};
2929

3030
use super::*;
@@ -38,7 +38,7 @@ mod test {
3838
let path = object_store::path::Path::parse("m_4007307_sw_18_060_20220803.tif").unwrap();
3939
let store = Arc::new(LocalFileSystem::new_with_prefix(folder).unwrap());
4040
let reader = Arc::new(ObjectReader::new(store, path)) as Arc<dyn AsyncFileReader>;
41-
let prefetch_reader = PrefetchMetadataFetch::new(reader.clone(), 32 * 1024)
41+
let prefetch_reader = PrefetchBuffer::new(reader.clone(), 32 * 1024)
4242
.await
4343
.unwrap();
4444
let mut metadata_reader = TiffMetadataReader::try_open(&prefetch_reader)

src/metadata/fetch.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,25 @@ impl<T: AsyncFileReader> MetadataFetch for T {
2525
}
2626
}
2727

28-
/// A [`MetadataFetch`] that caches the first `prefetch` bytes of a file.
28+
/// Buffering for the first `N` bytes of a file.
29+
///
30+
/// This is designed so that the async requests made by the underlying tag reader get intercepted
31+
/// here and served from the existing buffer when possible.
2932
#[derive(Debug)]
30-
pub struct PrefetchMetadataFetch<F: MetadataFetch> {
33+
pub struct PrefetchBuffer<F: MetadataFetch> {
3134
fetch: F,
3235
buffer: Bytes,
3336
}
3437

35-
impl<F: MetadataFetch> PrefetchMetadataFetch<F> {
36-
/// Construct a new PrefetchMetadataFetch, catching the first `prefetch` bytes of the file.
38+
impl<F: MetadataFetch> PrefetchBuffer<F> {
39+
/// Construct a new PrefetchBuffer, catching the first `prefetch` bytes of the file.
3740
pub async fn new(fetch: F, prefetch: u64) -> AsyncTiffResult<Self> {
3841
let buffer = fetch.fetch(0..prefetch).await?;
3942
Ok(Self { fetch, buffer })
4043
}
4144
}
4245

43-
impl<F: MetadataFetch> MetadataFetch for PrefetchMetadataFetch<F> {
46+
impl<F: MetadataFetch> MetadataFetch for PrefetchBuffer<F> {
4447
fn fetch(&self, range: Range<u64>) -> BoxFuture<'_, AsyncTiffResult<Bytes>> {
4548
if range.start < self.buffer.len() as _ {
4649
if range.end < self.buffer.len() as _ {

src/metadata/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//!
1111
//! use object_store::local::LocalFileSystem;
1212
//!
13-
//! use async_tiff::metadata::{PrefetchMetadataFetch, TiffMetadataReader};
13+
//! use async_tiff::metadata::{PrefetchBuffer, TiffMetadataReader};
1414
//! use async_tiff::reader::ObjectReader;
1515
//!
1616
//! // Create new Arc<dyn ObjectStore>
@@ -22,13 +22,13 @@
2222
//! "tests/image_tiff/images/tiled-jpeg-rgb-u8.tif".into(),
2323
//! );
2424
//!
25-
//! // Use PrefetchMetadataFetch to ensure that a given number of bytes at the start of the
25+
//! // Use PrefetchBuffer to ensure that a given number of bytes at the start of the
2626
//! // file are prefetched.
2727
//! //
2828
//! // This or a similar caching layer should **always** be used and ensures that the
2929
//! // underlying read calls that the TiffMetadataReader makes don't translate to actual
3030
//! // network fetches.
31-
//! let prefetch_reader = PrefetchMetadataFetch::new(reader.clone(), 32 * 1024)
31+
//! let prefetch_reader = PrefetchBuffer::new(reader.clone(), 32 * 1024)
3232
//! .await
3333
//! .unwrap();
3434
//!
@@ -52,12 +52,12 @@
5252
//! [`MetadataFetch`] implementation.
5353
//!
5454
//! Thus, it is **imperative to always supply some sort of caching, prefetching, or buffering**
55-
//! middleware when reading metadata. [`PrefetchMetadataFetch`] is an example of this, which
55+
//! middleware when reading metadata. [`PrefetchBuffer`] is an example of this, which
5656
//! fetches the first `N` bytes out of a file.
5757
//!
5858
5959
mod fetch;
6060
mod reader;
6161

62-
pub use fetch::{MetadataFetch, PrefetchMetadataFetch};
62+
pub use fetch::{MetadataFetch, PrefetchBuffer};
6363
pub use reader::{ImageFileDirectoryReader, TiffMetadataReader};

0 commit comments

Comments
 (0)