代码拉取完成,页面将自动刷新
#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;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。