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