bc_wasm.mx raw
1 //go:build wasm
2 //:build wasm
3
4 package bc
5
6 import (
7 "git.smesh.lol/smesh/web/common/jsbridge/callback"
8 "unsafe"
9 )
10
11 //:wasmimport bridge bc_open
12 func wasmOpen(namePtr *byte, nameLen int32, nameCap int32, cbID int32) (n int32)
13
14 //:wasmimport bridge bc_send
15 func wasmSend(handle int32, msgPtr *byte, msgLen int32, msgCap int32)
16
17 //:wasmimport bridge bc_close
18 func wasmClose(handle int32)
19
20 func Open(name string, onMessage func(string)) (b BC) {
21 cbID := callback.RegisterS(onMessage)
22 return BC(wasmOpen(unsafe.StringData(name), int32(len(name)), int32(len(name)), cbID))
23 }
24
25 func Send(bc BC, msg string) {
26 wasmSend(int32(bc), unsafe.StringData(msg), int32(len(msg)), int32(len(msg)))
27 }
28
29 func Close(bc BC) {
30 wasmClose(int32(bc))
31 }
32