MCPcopy Create free account
hub / github.com/akshayganeshen/napi-go / CreateCallback

Method CreateCallback

instance_data.go:335–370  ·  view source on GitHub ↗
(
	env Env,
	name string,
	cb Callback,
)

Source from the content-addressed store, hash-verified

333}
334
335func (d *NapiGoInstanceCallbackData) CreateCallback(
336 env Env,
337 name string,
338 cb Callback,
339) (Value, Status) {
340 d.Lock.Lock()
341 defer d.Lock.Unlock()
342
343 cname := C.CString(name)
344 defer C.free(unsafe.Pointer(cname))
345
346 callbackState := d.insert(cb)
347
348 var result Value
349 status := Status(C.napi_create_function(
350 C.napi_env(env),
351 cname,
352 C.size_t(len([]byte(name))),
353 C.napi_callback(C.ExecuteCallback),
354 unsafe.Pointer(&callbackState.ID),
355 (*C.napi_value)(unsafe.Pointer(&result)),
356 ))
357
358 if status == StatusOK {
359 status = Status(C.napi_add_finalizer(
360 C.napi_env(env),
361 C.napi_value(result),
362 unsafe.Pointer(&callbackState.ID),
363 C.napi_finalize(C.DeleteCallbackData),
364 nil,
365 nil,
366 ))
367 }
368
369 return result, status
370}
371
372func (d *NapiGoInstanceCallbackData) GetCallback(
373 id NapiGoCallbackID,

Callers

nothing calls this directly

Calls 2

insertMethod · 0.95
StatusTypeAlias · 0.85

Tested by

no test coverage detected