From 754faf10d935b68cd4ad9e401861061eb8a7c87d Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Tue, 19 May 2026 23:41:55 +0200 Subject: [PATCH] Remove redundant helper functions --- daemon/src/analysis.rs | 7 +++--- daemon/src/diag.rs | 7 +++--- daemon/src/pcap.rs | 8 ++++--- daemon/src/qmdl_store.rs | 48 ++++++---------------------------------- daemon/src/server.rs | 8 ++++--- 5 files changed, 25 insertions(+), 53 deletions(-) diff --git a/daemon/src/analysis.rs b/daemon/src/analysis.rs index 48c29b9..41efd95 100644 --- a/daemon/src/analysis.rs +++ b/daemon/src/analysis.rs @@ -18,7 +18,7 @@ use tokio::sync::mpsc::Receiver; use tokio::sync::{RwLock, RwLockWriteGuard}; use tokio_util::task::TaskTracker; -use crate::qmdl_store::RecordingStore; +use crate::qmdl_store::{FileKind, RecordingStore}; use crate::server::ServerState; pub struct AnalysisWriter { @@ -145,9 +145,10 @@ async fn perform_analysis( .await .map_err(|e| format!("{e:?}"))?; let qmdl_file = qmdl_store - .open_entry_qmdl(entry_index) + .open_file(entry_index, FileKind::Qmdl) .await - .map_err(|e| format!("{e:?}"))?; + .map_err(|e| format!("{e:?}"))? + .ok_or("QMDL file not found")?; (analysis_file, qmdl_file) }; diff --git a/daemon/src/diag.rs b/daemon/src/diag.rs index 7b72af7..7e33912 100644 --- a/daemon/src/diag.rs +++ b/daemon/src/diag.rs @@ -31,7 +31,7 @@ use crate::analysis::{AnalysisCtrlMessage, AnalysisWriter}; use crate::config::GpsMode; use crate::display; use crate::notifications::{Notification, NotificationType}; -use crate::qmdl_store::{RecordingStore, RecordingStoreError}; +use crate::qmdl_store::{FileKind, RecordingStore, RecordingStoreError}; use crate::server::ServerState; use crate::stats::DiskStats; @@ -747,9 +747,10 @@ pub async fn get_analysis_report( ))? }; let analysis_file = qmdl_store - .open_entry_analysis(entry_index) + .open_file(entry_index, FileKind::Analysis) .await - .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("{e:?}")))?; + .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("{e:?}")))? + .ok_or((StatusCode::NOT_FOUND, "Analysis file not found".to_string()))?; // Read and normalize the NDJSON file let reader = BufReader::new(analysis_file); diff --git a/daemon/src/pcap.rs b/daemon/src/pcap.rs index c0c7a6b..bad30b0 100644 --- a/daemon/src/pcap.rs +++ b/daemon/src/pcap.rs @@ -1,4 +1,5 @@ use crate::gps::{GpsRecord, load_gps_records}; +use crate::qmdl_store::FileKind; use crate::server::ServerState; use crate::config::GpsMode; @@ -52,9 +53,10 @@ pub async fn get_pcap( } let qmdl_size_bytes = entry.qmdl_size_bytes; let qmdl_file = qmdl_store - .open_entry_qmdl(entry_index) + .open_file(entry_index, FileKind::Qmdl) .await - .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("{e:?}")))?; + .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("{e:?}")))? + .ok_or((StatusCode::NOT_FOUND, "QMDL file not found".to_string()))?; let (reader, writer) = duplex(1024); let gps_records = load_gps_records_for_entry(&state, entry_index).await; drop(qmdl_store); @@ -75,7 +77,7 @@ pub(crate) async fn load_gps_records_for_entry( entry_index: usize, ) -> Vec { let qmdl_store = state.qmdl_store_lock.read().await; - match qmdl_store.open_entry_gps(entry_index).await { + match qmdl_store.open_file(entry_index, FileKind::Gps).await { Ok(Some(file)) => load_gps_records(file).await, Ok(None) => { let gps_mode = qmdl_store diff --git a/daemon/src/qmdl_store.rs b/daemon/src/qmdl_store.rs index 8120e09..d15c1f7 100644 --- a/daemon/src/qmdl_store.rs +++ b/daemon/src/qmdl_store.rs @@ -136,16 +136,8 @@ impl ManifestEntry { } } - pub fn get_qmdl_filepath>(&self, path: P) -> PathBuf { - FileKind::Qmdl.get_filepath(&self.name, path) - } - - pub fn get_analysis_filepath>(&self, path: P) -> PathBuf { - FileKind::Analysis.get_filepath(&self.name, path) - } - - pub fn get_gps_filepath>(&self, path: P) -> PathBuf { - FileKind::Gps.get_filepath(&self.name, path) + pub fn get_filepath>(&self, file_kind: FileKind, path: P) -> PathBuf { + file_kind.get_filepath(&self.name, path) } } @@ -306,15 +298,15 @@ impl RecordingStore { self.close_current_entry().await?; } let new_entry = ManifestEntry::new(gps_mode); - let qmdl_filepath = new_entry.get_qmdl_filepath(&self.path); + let qmdl_filepath = new_entry.get_filepath(FileKind::Qmdl, &self.path); let qmdl_file = File::create(&qmdl_filepath) .await .map_err(RecordingStoreError::CreateFileError)?; - let analysis_filepath = new_entry.get_analysis_filepath(&self.path); + let analysis_filepath = new_entry.get_filepath(FileKind::Analysis, &self.path); let analysis_file = File::create(&analysis_filepath) .await .map_err(RecordingStoreError::CreateFileError)?; - let gps_filepath = new_entry.get_gps_filepath(&self.path); + let gps_filepath = new_entry.get_filepath(FileKind::Gps, &self.path); File::create(&gps_filepath) .await .map_err(RecordingStoreError::CreateFileError)?; @@ -324,32 +316,6 @@ impl RecordingStore { Ok((qmdl_file, analysis_file)) } - // Returns the corresponding QMDL file for a given entry - pub async fn open_entry_qmdl(&self, entry_index: usize) -> Result { - let entry = &self.manifest.entries[entry_index]; - File::open(entry.get_qmdl_filepath(&self.path)) - .await - .map_err(RecordingStoreError::ReadFileError) - } - - // Returns the corresponding QMDL file for a given entry - pub async fn open_entry_analysis( - &self, - entry_index: usize, - ) -> Result { - let entry = &self.manifest.entries[entry_index]; - File::open(entry.get_analysis_filepath(&self.path)) - .await - .map_err(RecordingStoreError::ReadFileError) - } - - pub async fn open_entry_gps( - &self, - entry_index: usize, - ) -> Result, RecordingStoreError> { - self.open_file(entry_index, FileKind::Gps).await - } - pub async fn open_file( &self, entry_index: usize, @@ -373,7 +339,7 @@ impl RecordingStore { match OpenOptions::new() .create(true) .append(true) - .open(entry.get_gps_filepath(&self.path)) + .open(entry.get_filepath(FileKind::Gps, &self.path)) .await { Ok(file) => Ok(Some(file)), @@ -390,7 +356,7 @@ impl RecordingStore { let file = OpenOptions::new() .write(true) .truncate(true) - .open(entry.get_analysis_filepath(&self.path)) + .open(entry.get_filepath(FileKind::Analysis, &self.path)) .await .map_err(RecordingStoreError::ReadFileError)?; Ok(file) diff --git a/daemon/src/server.rs b/daemon/src/server.rs index 6f495bc..c898a48 100644 --- a/daemon/src/server.rs +++ b/daemon/src/server.rs @@ -72,14 +72,15 @@ pub async fn get_qmdl( format!("couldn't find qmdl file with name {qmdl_idx}"), ))?; let qmdl_file = qmdl_store - .open_entry_qmdl(entry_index) + .open_file(entry_index, FileKind::Qmdl) .await .map_err(|err| { ( StatusCode::INTERNAL_SERVER_ERROR, format!("error opening QMDL file: {err}"), ) - })?; + })? + .ok_or((StatusCode::NOT_FOUND, "QMDL file not found".to_string()))?; let limited_qmdl_file = qmdl_file.take(entry.qmdl_size_bytes as u64); let qmdl_stream = ReaderStream::new(limited_qmdl_file); @@ -405,8 +406,9 @@ pub async fn get_zip( let qmdl_file_for_pcap = { let qmdl_store = qmdl_store_lock.read().await; qmdl_store - .open_entry_qmdl(entry_index) + .open_file(entry_index, FileKind::Qmdl) .await? + .ok_or_else(|| anyhow::anyhow!("QMDL file not found"))? .take(qmdl_size_bytes as u64) };