From d325ffe48407ab0b65cbf9dc6eab7c0da0034614 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Sun, 15 Sep 2019 09:18:35 +0200 Subject: [PATCH] gather/return some statistics --- src/lib.rs | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index ff5447d..8d48b8e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,10 +12,15 @@ use chrono::{Utc, TimeZone}; struct BackupTask { - worker: JoinHandle>, + worker: JoinHandle>, tx: Sender, // runtime: Runtime, -// client: Arc, + // client: Arc, +} + +#[derive(Debug)] +struct BackupStats { + written_bytes: u64, } enum BackupMessage { @@ -64,10 +69,12 @@ impl BackupTask { } -fn backup_worker_task(rx: Receiver, host: &str) -> Result<(), Error> { +fn backup_worker_task(rx: Receiver, host: &str) -> Result { let mut runtime = Runtime::new().unwrap(); // fixme + let mut stats = BackupStats { written_bytes: 0 }; + loop { let msg = rx.recv()?; @@ -77,7 +84,8 @@ fn backup_worker_task(rx: Receiver, host: &str) -> Result<(), Err break; } BackupMessage::WriteData { dev_id, data, size, callback, callback_data } => { - println!("dev {}: write {} bytes", dev_id, size); + stats.written_bytes += size; + println!("dev {}: write {} bytes ({})", dev_id, size, stats.written_bytes); runtime.block_on(async move { //println!("Delay test"); @@ -95,7 +103,7 @@ fn backup_worker_task(rx: Receiver, host: &str) -> Result<(), Err // runtime.run() - Ok(()) + Ok(stats) } // The C interface @@ -153,8 +161,8 @@ pub unsafe extern "C" fn proxmox_backup_disconnect(handle: *mut ProxmoxBackupHan match task.worker.join() { Ok(result) => { match result { - Ok(()) => { - println!("worker finished"); + Ok(stats) => { + println!("worker finished {:?}", stats); } Err(err) => { println!("worker finished with error: {:?}", err);