Object PageletServer::TaskStart(CStrRef url, CArrRef headers, CStrRef remote_host, CStrRef post_data /* = null_string */) { if (RuntimeOption::PageletServerThreadCount <= 0) { return null_object; } PageletTask *task = NEW(PageletTask)(url, headers, remote_host, post_data); Object ret(task); PageletTransport *job = task->getJob(); job->incRefCount(); // paired with worker's decRefCount() ASSERT(s_dispatcher); s_dispatcher->enqueue(job); return ret; }
String PageletServer::TaskResult(CObjRef task, Array &headers, int &code) { PageletTask *ptask = task.getTyped<PageletTask>(); return ptask->getJob()->getResults(headers, code); }
bool PageletServer::TaskStatus(CObjRef task) { PageletTask *ptask = task.getTyped<PageletTask>(); return ptask->getJob()->isDone(); }