Renames
This commit is contained in:
parent
b4512e4809
commit
451debedbb
19 changed files with 127 additions and 114 deletions
|
|
@ -6,7 +6,7 @@ use std::{
|
|||
use anyhow::Context;
|
||||
use tracing::warn;
|
||||
|
||||
use crate::{storage::StorageFactoryExt, torrent_state::ManagedTorrentInfo};
|
||||
use crate::{storage::StorageFactoryExt, torrent_state::ManagedTorrentShared};
|
||||
|
||||
use crate::storage::{StorageFactory, TorrentStorage};
|
||||
|
||||
|
|
@ -18,7 +18,7 @@ pub struct FilesystemStorageFactory {}
|
|||
impl StorageFactory for FilesystemStorageFactory {
|
||||
type Storage = FilesystemStorage;
|
||||
|
||||
fn create(&self, meta: &ManagedTorrentInfo) -> anyhow::Result<FilesystemStorage> {
|
||||
fn create(&self, meta: &ManagedTorrentShared) -> anyhow::Result<FilesystemStorage> {
|
||||
Ok(FilesystemStorage {
|
||||
output_folder: meta.options.output_folder.clone(),
|
||||
opened_files: Default::default(),
|
||||
|
|
@ -149,7 +149,7 @@ impl TorrentStorage for FilesystemStorage {
|
|||
}
|
||||
}
|
||||
|
||||
fn init(&mut self, meta: &ManagedTorrentInfo) -> anyhow::Result<()> {
|
||||
fn init(&mut self, meta: &ManagedTorrentShared) -> anyhow::Result<()> {
|
||||
let mut files = Vec::<OpenedFile>::new();
|
||||
for file_details in meta.info.iter_file_details(&meta.lengths)? {
|
||||
let mut full_path = self.output_folder.clone();
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ use anyhow::Context;
|
|||
use memmap2::{MmapMut, MmapOptions};
|
||||
use parking_lot::RwLock;
|
||||
|
||||
use crate::torrent_state::ManagedTorrentInfo;
|
||||
use crate::torrent_state::ManagedTorrentShared;
|
||||
|
||||
use crate::storage::{StorageFactory, StorageFactoryExt, TorrentStorage};
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ fn dummy_mmap() -> anyhow::Result<MmapMut> {
|
|||
impl StorageFactory for MmapFilesystemStorageFactory {
|
||||
type Storage = MmapFilesystemStorage;
|
||||
|
||||
fn create(&self, meta: &ManagedTorrentInfo) -> anyhow::Result<Self::Storage> {
|
||||
fn create(&self, meta: &ManagedTorrentShared) -> anyhow::Result<Self::Storage> {
|
||||
let fs_storage = FilesystemStorageFactory::default().create(meta)?;
|
||||
|
||||
Ok(MmapFilesystemStorage {
|
||||
|
|
@ -97,7 +97,7 @@ impl TorrentStorage for MmapFilesystemStorage {
|
|||
}))
|
||||
}
|
||||
|
||||
fn init(&mut self, meta: &ManagedTorrentInfo) -> anyhow::Result<()> {
|
||||
fn init(&mut self, meta: &ManagedTorrentShared) -> anyhow::Result<()> {
|
||||
self.fs.init(meta)?;
|
||||
let mut mmaps = Vec::new();
|
||||
for (idx, file) in self.fs.opened_files.iter().enumerate() {
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ use parking_lot::Mutex;
|
|||
|
||||
use crate::{
|
||||
storage::{StorageFactory, StorageFactoryExt, TorrentStorage},
|
||||
ManagedTorrentInfo,
|
||||
ManagedTorrentShared,
|
||||
};
|
||||
|
||||
#[derive(Clone)]
|
||||
|
|
@ -35,7 +35,7 @@ impl<U: StorageFactory> SlowStorageFactory<U> {
|
|||
impl<U: StorageFactory + Clone> StorageFactory for SlowStorageFactory<U> {
|
||||
type Storage = SlowStorage<U::Storage>;
|
||||
|
||||
fn create(&self, info: &crate::ManagedTorrentInfo) -> anyhow::Result<Self::Storage> {
|
||||
fn create(&self, info: &crate::ManagedTorrentShared) -> anyhow::Result<Self::Storage> {
|
||||
Ok(SlowStorage {
|
||||
underlying: self.underlying_factory.create(info)?,
|
||||
pwrite_all_bufread: Mutex::new(Box::new(
|
||||
|
|
@ -116,7 +116,7 @@ impl<U: TorrentStorage> TorrentStorage for SlowStorage<U> {
|
|||
self.underlying.remove_directory_if_empty(path)
|
||||
}
|
||||
|
||||
fn init(&mut self, meta: &ManagedTorrentInfo) -> anyhow::Result<()> {
|
||||
fn init(&mut self, meta: &ManagedTorrentShared) -> anyhow::Result<()> {
|
||||
self.underlying.init(meta)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ A storage middleware that logs the time underlying storage operations took.
|
|||
|
||||
use crate::{
|
||||
storage::{StorageFactory, StorageFactoryExt, TorrentStorage},
|
||||
ManagedTorrentInfo,
|
||||
ManagedTorrentShared,
|
||||
};
|
||||
|
||||
#[derive(Clone)]
|
||||
|
|
@ -25,7 +25,7 @@ impl<U> TimingStorageFactory<U> {
|
|||
impl<U: StorageFactory + Clone> StorageFactory for TimingStorageFactory<U> {
|
||||
type Storage = TimingStorage<U::Storage>;
|
||||
|
||||
fn create(&self, info: &crate::ManagedTorrentInfo) -> anyhow::Result<Self::Storage> {
|
||||
fn create(&self, info: &crate::ManagedTorrentShared) -> anyhow::Result<Self::Storage> {
|
||||
Ok(TimingStorage {
|
||||
name: self.name.clone(),
|
||||
underlying: self.underlying_factory.create(info)?,
|
||||
|
|
@ -104,7 +104,7 @@ impl<U: TorrentStorage> TorrentStorage for TimingStorage<U> {
|
|||
self.underlying.remove_directory_if_empty(path)
|
||||
}
|
||||
|
||||
fn init(&mut self, meta: &ManagedTorrentInfo) -> anyhow::Result<()> {
|
||||
fn init(&mut self, meta: &ManagedTorrentShared) -> anyhow::Result<()> {
|
||||
self.underlying.init(meta)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ use parking_lot::RwLock;
|
|||
|
||||
use crate::{
|
||||
storage::{StorageFactory, StorageFactoryExt, TorrentStorage},
|
||||
FileInfos, ManagedTorrentInfo,
|
||||
FileInfos, ManagedTorrentShared,
|
||||
};
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
|
|
@ -35,7 +35,7 @@ impl<U> WriteThroughCacheStorageFactory<U> {
|
|||
impl<U: StorageFactory + Clone> StorageFactory for WriteThroughCacheStorageFactory<U> {
|
||||
type Storage = WriteThroughCacheStorage<U::Storage>;
|
||||
|
||||
fn create(&self, info: &crate::ManagedTorrentInfo) -> anyhow::Result<Self::Storage> {
|
||||
fn create(&self, info: &crate::ManagedTorrentShared) -> anyhow::Result<Self::Storage> {
|
||||
let pieces = self
|
||||
.max_cache_bytes
|
||||
.div_ceil(info.lengths.default_piece_length() as u64)
|
||||
|
|
@ -121,7 +121,7 @@ impl<U: TorrentStorage> TorrentStorage for WriteThroughCacheStorage<U> {
|
|||
self.underlying.remove_directory_if_empty(path)
|
||||
}
|
||||
|
||||
fn init(&mut self, meta: &ManagedTorrentInfo) -> anyhow::Result<()> {
|
||||
fn init(&mut self, meta: &ManagedTorrentShared) -> anyhow::Result<()> {
|
||||
self.underlying.init(meta)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ use std::{
|
|||
path::Path,
|
||||
};
|
||||
|
||||
use crate::torrent_state::ManagedTorrentInfo;
|
||||
use crate::torrent_state::ManagedTorrentShared;
|
||||
|
||||
pub trait StorageFactory: Send + Sync + Any {
|
||||
type Storage: TorrentStorage;
|
||||
|
||||
fn create(&self, info: &ManagedTorrentInfo) -> anyhow::Result<Self::Storage>;
|
||||
fn create_and_init(&self, info: &ManagedTorrentInfo) -> anyhow::Result<Self::Storage> {
|
||||
fn create(&self, info: &ManagedTorrentShared) -> anyhow::Result<Self::Storage>;
|
||||
fn create_and_init(&self, info: &ManagedTorrentShared) -> anyhow::Result<Self::Storage> {
|
||||
let mut storage = self.create(info)?;
|
||||
storage.init(info)?;
|
||||
Ok(storage)
|
||||
|
|
@ -44,7 +44,7 @@ impl<SF: StorageFactory> StorageFactoryExt for SF {
|
|||
impl<SF: StorageFactory> StorageFactory for Wrapper<SF> {
|
||||
type Storage = Box<dyn TorrentStorage>;
|
||||
|
||||
fn create(&self, info: &ManagedTorrentInfo) -> anyhow::Result<Self::Storage> {
|
||||
fn create(&self, info: &ManagedTorrentShared) -> anyhow::Result<Self::Storage> {
|
||||
let s = self.sf.create(info)?;
|
||||
Ok(Box::new(s))
|
||||
}
|
||||
|
|
@ -65,7 +65,7 @@ impl<SF: StorageFactory> StorageFactoryExt for SF {
|
|||
impl<U: StorageFactory + ?Sized> StorageFactory for Box<U> {
|
||||
type Storage = U::Storage;
|
||||
|
||||
fn create(&self, info: &ManagedTorrentInfo) -> anyhow::Result<U::Storage> {
|
||||
fn create(&self, info: &ManagedTorrentShared) -> anyhow::Result<U::Storage> {
|
||||
(**self).create(info)
|
||||
}
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ impl<U: StorageFactory + ?Sized> StorageFactory for Box<U> {
|
|||
|
||||
pub trait TorrentStorage: Send + Sync {
|
||||
// Create/open files etc.
|
||||
fn init(&mut self, meta: &ManagedTorrentInfo) -> anyhow::Result<()>;
|
||||
fn init(&mut self, meta: &ManagedTorrentShared) -> anyhow::Result<()>;
|
||||
|
||||
/// Given a file_id (which you can get more info from in init_storage() through torrent info)
|
||||
/// read buf.len() bytes into buf at offset.
|
||||
|
|
@ -124,7 +124,7 @@ impl<U: TorrentStorage + ?Sized> TorrentStorage for Box<U> {
|
|||
(**self).remove_directory_if_empty(path)
|
||||
}
|
||||
|
||||
fn init(&mut self, meta: &ManagedTorrentInfo) -> anyhow::Result<()> {
|
||||
fn init(&mut self, meta: &ManagedTorrentShared) -> anyhow::Result<()> {
|
||||
(**self).init(meta)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue