Lines Matching refs:ctx
43 HCtxForward ctx = iter->second; in StopTask() local
44 ctxs.push_back(ctx); in StopTask()
49 for (auto ctx: ctxs) { in StopTask() local
50 FreeContext(ctx, 0, false); in StopTask()
111 HCtxForward ctx = nullptr; in MallocContext() local
112 if ((ctx = new ContextForward()) == nullptr) { in MallocContext()
115 ctx->id = Base::GetRuntimeMSec(); in MallocContext()
116 ctx->masterSlave = masterSlave; in MallocContext()
117 ctx->thisClass = this; in MallocContext()
118 ctx->fdClass = nullptr; in MallocContext()
119 ctx->tcp.data = ctx; in MallocContext()
120 ctx->pipe.data = ctx; in MallocContext()
121 AdminContext(OP_ADD, ctx->id, ctx); in MallocContext()
123 return ctx; in MallocContext()
126 void HdcForwardBase::FreeContextCallBack(HCtxForward ctx) in FreeContextCallBack() argument
128 Base::DoNextLoop(loopTask, ctx, [this](const uint8_t flag, string &msg, const void *data) { in FreeContextCallBack()
129 HCtxForward ctx = (HCtxForward)data; in FreeContextCallBack() local
130 AdminContext(OP_REMOVE, ctx->id, nullptr); in FreeContextCallBack()
131 if (ctx != nullptr) { in FreeContextCallBack()
132 delete ctx; in FreeContextCallBack()
133 ctx = nullptr; in FreeContextCallBack()
141 void HdcForwardBase::FreeJDWP(HCtxForward ctx) in FreeJDWP() argument
143 Base::CloseFd(ctx->fd); in FreeJDWP()
144 if (ctx->fdClass) { in FreeJDWP()
145 ctx->fdClass->StopWorkOnThread(false, nullptr); in FreeJDWP()
149 HCtxForward ctx = (HCtxForward)handle->data; in FreeJDWP() local
150 ctx->thisClass->FreeContextCallBack(ctx); in FreeJDWP()
160 Base::IdleUvTask(loopTask, ctx, funcReqClose); in FreeJDWP()
168 HCtxForward ctx = nullptr; in FreeContext() local
170 if (!(ctx = (HCtxForward)AdminContext(OP_QUERY, id, nullptr))) { in FreeContext()
175 ctx = ctxIn; in FreeContext()
177 if (ctx->finish) { in FreeContext()
181 SendToTask(ctx->id, CMD_FORWARD_FREE_CONTEXT, nullptr, 0); in FreeContext()
184 HCtxForward ctx = (HCtxForward)handle->data; in FreeContext() local
185 ctx->thisClass->FreeContextCallBack(ctx); in FreeContext()
187 switch (ctx->type) { in FreeContext()
190 Base::TryCloseHandle((uv_handle_t *)&ctx->tcp, true, funcHandleClose); in FreeContext()
195 Base::TryCloseHandle((uv_handle_t *)&ctx->pipe, true, funcHandleClose); in FreeContext()
198 FreeJDWP(ctx); in FreeContext()
204 ctx->finish = true; in FreeContext()
246 HCtxForward ctx = (HCtxForward)stream->data; in ReadForwardBuf() local
248 ctx->thisClass->FreeContext(ctx, 0, true); in ReadForwardBuf()
256 ctx->thisClass->SendToTask(ctx->id, CMD_FORWARD_DATA, (uint8_t *)buf->base, nread); in ReadForwardBuf()
263 HCtxForward ctx = (HCtxForward)connection->data; in ConnectTarget() local
264 HdcForwardBase *thisClass = ctx->thisClass; in ConnectTarget()
272 thisClass->SetupPointContinue(ctx, status); in ConnectTarget()
301 bool HdcForwardBase::SetupPointContinue(HCtxForward ctx, int status) in SetupPointContinue() argument
303 if (ctx->checkPoint) { in SetupPointContinue()
306 SendToTask(ctx->id, CMD_FORWARD_CHECK_RESULT, &flag, 1); in SetupPointContinue()
307 FreeContext(ctx, 0, false); in SetupPointContinue()
311 FreeContext(ctx, 0, true); in SetupPointContinue()
315 if (!SendToTask(ctx->id, CMD_FORWARD_ACTIVE_MASTER, nullptr, 0)) { in SetupPointContinue()
316 FreeContext(ctx, 0, true); in SetupPointContinue()
319 return DoForwardBegin(ctx); in SetupPointContinue()
387 HCtxForward ctx = (HCtxForward)a; in SetupDevicePoint() local
388 return SendToTask(ctx->id, CMD_FORWARD_DATA, b, c); in SetupDevicePoint()
391 HCtxForward ctx = (HCtxForward)a; in SetupDevicePoint() local
393 FreeContext(ctx, 0, true); in SetupDevicePoint()
619 bool HdcForwardBase::DoForwardBegin(HCtxForward ctx) in DoForwardBegin() argument
621 switch (ctx->type) { in DoForwardBegin()
624 uv_tcp_nodelay((uv_tcp_t *)&ctx->tcp, 1); in DoForwardBegin()
625 uv_read_start((uv_stream_t *)&ctx->tcp, AllocForwardBuf, ReadForwardBuf); in DoForwardBegin()
630 uv_read_start((uv_stream_t *)&ctx->pipe, AllocForwardBuf, ReadForwardBuf); in DoForwardBegin()
633 ctx->fdClass->StartWorkOnThread(); in DoForwardBegin()
639 ctx->ready = true; in DoForwardBegin()
674 HCtxForward ctx = reinterpret_cast<HCtxForward>(ctxIO->ctxForward); in SendCallbackForwardBuf() local
675 if (status < 0 && !ctx->finish) { in SendCallbackForwardBuf()
676 … WRITE_LOG(LOG_DEBUG, "SendCallbackForwardBuf ctx->type:%d, status:%d finish", ctx->type, status); in SendCallbackForwardBuf()
677 ctx->thisClass->FreeContext(ctx, 0, true); in SendCallbackForwardBuf()
684 int HdcForwardBase::SendForwardBuf(HCtxForward ctx, uint8_t *bufPtr, const int size) in SendForwardBuf() argument
699 if (ctx->type == FORWARD_DEVICE) { in SendForwardBuf()
700 nRet = ctx->fdClass->WriteWithMem(pDynBuf, size); in SendForwardBuf()
707 ctxIO->ctxForward = ctx; in SendForwardBuf()
709 if (ctx->type == FORWARD_TCP || ctx->type == FORWARD_JDWP) { in SendForwardBuf()
710 nRet = Base::SendToStreamEx((uv_stream_t *)&ctx->tcp, pDynBuf, size, nullptr, in SendForwardBuf()
714 nRet = Base::SendToStreamEx((uv_stream_t *)&ctx->pipe, pDynBuf, size, nullptr, in SendForwardBuf()
721 bool HdcForwardBase::CommandForwardCheckResult(HCtxForward ctx, uint8_t *payload) in CommandForwardCheckResult() argument
729 ctx->ready = true; in CommandForwardCheckResult()
734 FreeContext(ctx, 0, false); in CommandForwardCheckResult()
745 HCtxForward ctx = nullptr; in ForwardCommandDispatch() local
748 if (!(ctx = (HCtxForward)AdminContext(OP_QUERY, id, nullptr))) { in ForwardCommandDispatch()
754 ret = CommandForwardCheckResult(ctx, payload); in ForwardCommandDispatch()
758 ret = DoForwardBegin(ctx); in ForwardCommandDispatch()
762 if (ctx->finish) { in ForwardCommandDispatch()
765 if (SendForwardBuf(ctx, pContent, sizeContent) < 0) { in ForwardCommandDispatch()
766 FreeContext(ctx, 0, true); in ForwardCommandDispatch()
771 FreeContext(ctx, 0, false); in ForwardCommandDispatch()
779 if (ctx) { in ForwardCommandDispatch()
780 FreeContext(ctx, 0, true); in ForwardCommandDispatch()