1
1
use mcu_if:: { alloc:: boxed:: Box , c_types:: c_void} ;
2
2
use super :: gcoap:: GcoapMemoState ;
3
- use super :: stream:: { XbdStream , StreamData , stream_uninit , StreamExt } ;
3
+ use super :: stream:: { XStream , XStreamData , StreamExt } ;
4
4
5
5
extern "C" {
6
6
fn free ( ptr : * mut c_void ) ;
@@ -15,10 +15,10 @@ enum ApiCallback {
15
15
GcoapReq ( Ptr32Send ) ,
16
16
}
17
17
18
- static SD : StreamData < ApiCallback > = stream_uninit ( ) ;
18
+ static mut SD : XStreamData < ApiCallback , 64 > = XStream :: init ( ) ;
19
19
20
20
fn add_api_callback ( cb : ApiCallback ) {
21
- XbdStream :: get ( & SD ) . unwrap ( ) . add ( cb) ;
21
+ XStream :: get ( static_borrow_mut ! ( SD ) ) . add ( cb) ;
22
22
}
23
23
24
24
pub fn add_xbd_timeout_callback ( arg_ptr : CVoidPtr ) {
@@ -29,10 +29,9 @@ pub fn add_xbd_gcoap_req_callback(arg_ptr: CVoidPtr) {
29
29
}
30
30
31
31
pub async fn process_api_stream ( ) -> Result < ( ) , i8 > {
32
- let mut stream = XbdStream :: new ( & SD ) ;
32
+ let mut xs = XStream :: get ( static_borrow_mut ! ( SD ) ) ;
33
33
34
- while let Some ( cb) = stream. next ( ) . await {
35
- //crate::println!("!! got cb");
34
+ while let Some ( cb) = xs. next ( ) . await {
36
35
match cb {
37
36
ApiCallback :: Timeout ( arg_ptr) => {
38
37
let ( cb_ptr, timeout_pp) : ( CVoidPtr , * mut CVoidPtr ) = arg_from ( arg_ptr) ;
0 commit comments