#pragma once /** ** \defgroup taskstub Task Stub ** Task Stub is a poorly-named representation of a remote Task that can be ** exposed to JS. ** @{ */ #include "quickjs.h" #include "uv.h" typedef int taskid_t; typedef struct _tf_packetstream_t tf_packetstream_t; typedef struct _tf_task_t tf_task_t; typedef struct _tf_taskstub_t tf_taskstub_t; void tf_taskstub_startup(); JSValue tf_taskstub_register(JSContext* context); taskid_t tf_taskstub_get_id(const tf_taskstub_t* stub); JSValue tf_taskstub_get_task_object(const tf_taskstub_t* stub); tf_packetstream_t* tf_taskstub_get_stream(const tf_taskstub_t* stub); tf_task_t* tf_taskstub_get_owner(const tf_taskstub_t* stub); tf_taskstub_t* tf_taskstub_create_parent(tf_task_t* task, uv_file file); void tf_taskstub_on_error(tf_taskstub_t* stub, JSValue error); void tf_taskstub_on_print(tf_taskstub_t* stub, JSValue arguments); /** @} */