Skip to content

Commit 8253723

Browse files
committed
update: add process_event function for FFI
1 parent f39248d commit 8253723

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

bindings/src/peermanager.rs

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,6 @@ fn construct_socket_desc (
3131
socket
3232
}
3333

34-
fn read_event(
35-
index: usize,
36-
send_data_ptr: Ref<socket_descriptor_fn::SendData>,
37-
disconnect_socket_ptr: Ref<socket_descriptor_fn::DisconnectSocket>,
38-
data_ptr: Ref<FFIBytes>,
39-
handle: FFIArcPeerManagerHandle
40-
) -> FFIResult {
41-
let mut socket = construct_socket_desc(index, send_data_ptr, disconnect_socket_ptr);
42-
let peer_man: &FFISimpleArcPeerManager = unsafe_block!("We know handle points to valid PeerManager" => handle.as_ref());
43-
let data = unsafe_block!("We know it points to valid data" => data_ptr.as_ref());
44-
peer_man.read_event(&mut socket, data.as_ref());
45-
FFIResult::ok()
46-
}
47-
4834
ffi! {
4935
fn create_peer_manager(
5036
seed_ptr: Ref<u8>,
@@ -171,6 +157,26 @@ ffi! {
171157
FFIResult::ok()
172158
}
173159

160+
fn read_event(
161+
index: usize,
162+
send_data_ptr: Ref<socket_descriptor_fn::SendData>,
163+
disconnect_socket_ptr: Ref<socket_descriptor_fn::DisconnectSocket>,
164+
data_ref: Ref<FFIBytes>,
165+
handle: FFIArcPeerManagerHandle
166+
) -> FFIResult {
167+
let mut socket = construct_socket_desc(index, send_data_ptr, disconnect_socket_ptr);
168+
let peer_man: &FFISimpleArcPeerManager = unsafe_block!("We know handle points to valid PeerManager" => handle.as_ref());
169+
let data = unsafe_block!("data lives as long as this function and it points to valid value" => data_ref.as_ref());
170+
peer_man.read_event(&mut socket, data.as_ref())?;
171+
FFIResult::ok()
172+
}
173+
174+
fn process_events(handle: FFIArcPeerManagerHandle) -> FFIResult {
175+
let peer_man: &FFISimpleArcPeerManager = unsafe_block!("We know handle points to valid PeerManager" => handle.as_ref());
176+
peer_man.process_events();
177+
FFIResult::ok()
178+
}
179+
174180
fn release_peer_manager(handle: FFIArcPeerManagerHandle) -> FFIResult {
175181
unsafe_block!("The upstream caller guarantees the handle will not be accessed after being freed" => FFIArcPeerManagerHandle::dealloc(handle, |mut handle| {
176182
FFIResult::ok()

0 commit comments

Comments
 (0)