Skip to content

Commit

Permalink
Exposed test and heal functions
Browse files Browse the repository at this point in the history
  • Loading branch information
dhylands committed Apr 27, 2016
1 parent e3d3868 commit 539d6db
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 0 deletions.
16 changes: 16 additions & 0 deletions openzwave-sys/openzwave-c/manager.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
4 changes: 4 additions & 0 deletions openzwave-sys/openzwave-c/manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
8 changes: 8 additions & 0 deletions openzwave-sys/src/manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
24 changes: 24 additions & 0 deletions src/manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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<T: 'static + NotificationWatcher>(&mut self, watcher: T) -> Result<usize> {
let watcher_wrapper = Box::new(WatcherWrapper { watcher: Box::new(watcher) });

Expand Down

0 comments on commit 539d6db

Please sign in to comment.