#include "cpps/cpps.h"namespace cpps {cpps_value cpps_execute_callfunction(C* c, cpps_function* f, cpps_domain* domain, std::string filename, int32 line, std::string funcname, cpps_std_vector& params);cpps_async_object::cpps_async_object() {leftdomain = NULL;f = NULL;line = 0;_task = NULL;iscatchd = false;}cpps_async_object::~cpps_async_object() {}cpps_value cpps_async_object::call(C* c){return cpps_execute_callfunction(c, f, leftdomain, filename, line, funcname, params);}void cpps_async_object::done_cb(C*c,object ret) {if (iscatchd) return;if (_cb.isfunction()) {if (ret.istuple()) {function_caller(c, _cb, object::vector(ret).realvector());}else {dofunction(c, _cb, ret);}}}bool cpps_async_object::catch_cb(C* c, object e) {iscatchd = true;if (_catchcb.isfunction()) {dofunction(c, _catchcb, e);return true;}return false;}cpps_async_task* cpps_async_object::get_task() {return _task;}void cpps_async_object::set_task(cpps_async_task* task) {_task = task;}cpps_async_object* cpps_async_object::done(C*c,object cb) {cpps_async_loop* loop = (cpps_async_loop*)c->getmoduledata("asyncio");if (get_task() == NULL) {cpps_value ret;cpps_async_task* task;ret = loop->create_task(c, this, &task);loop->push_task(c, ret); /*加入默认执行队列*/}_cb = cb;return this;}cpps_async_object* cpps_async_object::_catch(C* c, cpps::object cb) {cpps_async_loop* loop = (cpps_async_loop*)c->getmoduledata("asyncio");if (get_task() == NULL) {cpps_value ret;cpps_async_task* task;ret = loop->create_task(c, this, &task);loop->push_task(c, ret); /*加入默认执行队列*/}_catchcb = cb;return this;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型