From 99ebe8c690ff1af6a19b57a4f17a1ec314cdd4bc Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Wed, 11 Sep 2019 14:49:43 +0200 Subject: [PATCH] use opaque type for handle, use reasonable names --- src/lib.rs | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 9895dcf..806fdb6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -97,13 +97,11 @@ fn backup_worker_task(mut rx: Receiver, host: &str) -> Result<(), // The C interface #[repr(C)] -pub struct BackupHandle { - task: Box, -} +pub struct ProxmoxBackupHandle {} #[no_mangle] -pub unsafe extern "C" fn connect() -> *mut BackupHandle { +pub unsafe extern "C" fn proxmox_backup_connect() -> *mut ProxmoxBackupHandle { println!("Hello"); @@ -111,15 +109,15 @@ pub unsafe extern "C" fn connect() -> *mut BackupHandle { Ok(task) => { let tmp = Box::new(task); let test = Box::into_raw(tmp); - test as * mut BackupHandle + test as * mut ProxmoxBackupHandle } Err(err) => std::ptr::null_mut(), } } #[no_mangle] -pub unsafe extern "C" fn write_data_async( - handle: *mut BackupHandle, +pub unsafe extern "C" fn proxmox_backup_write_data_async( + handle: *mut ProxmoxBackupHandle, data: *const u8, size: u64, callback: extern "C" fn(*mut libc::c_void), @@ -127,20 +125,23 @@ pub unsafe extern "C" fn write_data_async( ) { let msg = BackupMessage::WriteData { data, size , callback, callback_data }; + + let task = handle as * mut BackupTask; - let _res = (*handle).task.tx.send(msg); // fixme: log errors + let _res = (*task).tx.send(msg); // fixme: log errors } #[no_mangle] -pub unsafe extern "C" fn disconnect(handle: *mut BackupHandle) { +pub unsafe extern "C" fn proxmox_backup_disconnect(handle: *mut ProxmoxBackupHandle) { println!("diconnect"); - let mut handle = Box::from_raw(handle); + let task = handle as * mut BackupTask; + let mut task = Box::from_raw(task); // take ownership - let _res = handle.task.tx.send(BackupMessage::End); // fixme: log errors + let _res = task.tx.send(BackupMessage::End); // fixme: log errors - match handle.task.worker.join() { + match task.worker.join() { Ok(result) => { match result { Ok(()) => { @@ -156,6 +157,6 @@ pub unsafe extern "C" fn disconnect(handle: *mut BackupHandle) { } } - //drop(handle); + //drop(task); }