From 539d6db1fbfb1b1c8bd486a2a0c00ec349e85149 Mon Sep 17 00:00:00 2001 From: Dave Hylands Date: Wed, 27 Apr 2016 00:31:22 -0700 Subject: [PATCH] Exposed test and heal functions --- openzwave-sys/openzwave-c/manager.cc | 16 ++++++++++++++++ openzwave-sys/openzwave-c/manager.h | 4 ++++ openzwave-sys/src/manager.rs | 8 ++++++++ src/manager.rs | 24 ++++++++++++++++++++++++ 4 files changed, 52 insertions(+) diff --git a/openzwave-sys/openzwave-c/manager.cc b/openzwave-sys/openzwave-c/manager.cc index 8e39304..7eee510 100644 --- a/openzwave-sys/openzwave-c/manager.cc +++ b/openzwave-sys/openzwave-c/manager.cc @@ -28,6 +28,22 @@ bool manager_remove_node(Manager * manager, uint32 home_id) { return manager->RemoveNode(home_id); } +void manager_test_network_node(Manager * manager, uint32 home_id, uint8_t node_id, uint32_t count) { + manager->TestNetworkNode(home_id, node_id, count); +} + +void manager_test_network(Manager * manager, uint32 home_id, uint32_t count) { + manager->TestNetwork(home_id, count); +} + +void manager_heal_network_node(Manager * manager, uint32 home_id, uint8_t node_id, bool do_rr) { + manager->HealNetworkNode(home_id, node_id, do_rr); +} + +void manager_heal_network(Manager * manager, uint32 home_id, bool do_rr) { + manager->HealNetwork(home_id, do_rr); +} + bool manager_add_watcher(Manager * manager, Manager::pfnOnNotification_t _watcher, void* _context) { return manager->AddWatcher(_watcher, _context); } diff --git a/openzwave-sys/openzwave-c/manager.h b/openzwave-sys/openzwave-c/manager.h index c492c8b..3987585 100644 --- a/openzwave-sys/openzwave-c/manager.h +++ b/openzwave-sys/openzwave-c/manager.h @@ -18,6 +18,10 @@ void manager_write_config(Manager * manager, uint32 home_id); bool manager_add_node(Manager * manager, uint32 home_id, bool secure); bool manager_remove_node(Manager * manager, uint32 home_id); +void manager_test_network_node(Manager * manager, uint32 home_id, uint8_t node_id, uint32_t count); +void manager_test_network(Manager * manager, uint32 home_id, uint32_t count); +void manager_heal_network_node(Manager * manager, uint32 home_id, uint8_t node_id, bool doRR); +void manager_heal_network(Manager * manager, uint32 home_id, bool doRR); bool manager_add_watcher(Manager * manager, Manager::pfnOnNotification_t _watcher, void* _context); bool manager_remove_watcher(Manager * manager, Manager::pfnOnNotification_t _watcher, void* _context); bool manager_add_driver(Manager * manager, const char * _controllerPath, const Driver::ControllerInterface * _interface); diff --git a/openzwave-sys/src/manager.rs b/openzwave-sys/src/manager.rs index 5d7c2d1..935a796 100644 --- a/openzwave-sys/src/manager.rs +++ b/openzwave-sys/src/manager.rs @@ -20,6 +20,10 @@ pub use self::{ manager_write_config as write_config, manager_add_node as add_node, manager_remove_node as remove_node, + manager_test_network_node as test_network_node, + manager_test_network as test_network, + manager_heal_network_node as heal_network_node, + manager_heal_network as heal_network, manager_add_watcher as add_watcher, manager_remove_watcher as remove_watcher, manager_add_driver as add_driver, @@ -120,6 +124,10 @@ extern { pub fn manager_write_config(manager: *mut Manager, home_id: u32); pub fn manager_add_node(manager: *mut Manager, home_id: u32, secure: bool) -> bool; pub fn manager_remove_node(manager: *mut Manager, home_id: u32) -> bool; + pub fn manager_test_network_node(manager: *mut Manager, home_id: u32, node_id: u8, count: u32); + pub fn manager_test_network(manager: *mut Manager, home_id: u32, count: u32); + pub fn manager_heal_network_node(manager: *mut Manager, home_id: u32, node_id: u8, do_rr: bool); + pub fn manager_heal_network(manager: *mut Manager, home_id: u32, do_rr: bool); pub fn manager_add_watcher(manager: *mut Manager, cb: extern fn(notification: *const Notification, ctx: *const c_void), ctx: *const c_void) -> bool; diff --git a/src/manager.rs b/src/manager.rs index 87dd86d..7003e10 100644 --- a/src/manager.rs +++ b/src/manager.rs @@ -69,6 +69,30 @@ impl Manager { }).or(Err(Error::InvalidParameter("home_id", "Manager::remove_node"))) } + pub fn test_network(&self, home_id:u32, count:u32) { + unsafe { + extern_manager::test_network(self.ptr, home_id, count); + } + } + + pub fn test_network_node(&self, home_id:u32, node_id:u8, count:u32) { + unsafe { + extern_manager::test_network_node(self.ptr, home_id, node_id, count); + } + } + + pub fn heal_network(&self, home_id:u32, do_rr:bool) { + unsafe { + extern_manager::heal_network(self.ptr, home_id, do_rr); + } + } + + pub fn heal_network_node(&self, home_id:u32, node_id:u8, do_rr:bool) { + unsafe { + extern_manager::heal_network_node(self.ptr, home_id, node_id, do_rr); + } + } + pub fn add_watcher(&mut self, watcher: T) -> Result { let watcher_wrapper = Box::new(WatcherWrapper { watcher: Box::new(watcher) });