diff options
author | Daniel Bevenius <daniel.bevenius@gmail.com> | 2016-07-24 05:13:19 +0200 |
---|---|---|
committer | Jeremiah Senkpiel <fishrock123@rocketmail.com> | 2016-09-13 17:04:44 -0700 |
commit | 0d24247e502c5cd10592ff035064978ac66389af (patch) | |
tree | e709c240c7cf4829f6cba31950496b3f7528b376 /src/pipe_wrap.cc | |
parent | 16202264d1d0f472a5d7684ffe6ddf0f1b239e9f (diff) | |
download | node-new-0d24247e502c5cd10592ff035064978ac66389af.tar.gz |
src: pull AfterConnect from pipe_wrap and tcp_wrap
This commit attempts to address one of the items in
https://github.com/nodejs/node/issues/4641 which is related to
src/pipe_wrap.cc and src/tcp_wrap.cc.
Currently both pipe_wrap.cc and tcp_wrap.cc contain an AfterConnect
function that are almost identical. This commit extracts this function
into ConnectionWrap so that that both can share it.
PR-URL: https://github.com/nodejs/node/pull/8448
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Diffstat (limited to 'src/pipe_wrap.cc')
-rw-r--r-- | src/pipe_wrap.cc | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/pipe_wrap.cc b/src/pipe_wrap.cc index 8590a0dc9e..77476d52db 100644 --- a/src/pipe_wrap.cc +++ b/src/pipe_wrap.cc @@ -15,7 +15,6 @@ namespace node { -using v8::Boolean; using v8::Context; using v8::EscapableHandleScope; using v8::External; @@ -23,7 +22,6 @@ using v8::Function; using v8::FunctionCallbackInfo; using v8::FunctionTemplate; using v8::HandleScope; -using v8::Integer; using v8::Local; using v8::Object; using v8::Value; @@ -141,44 +139,6 @@ void PipeWrap::Listen(const FunctionCallbackInfo<Value>& args) { } -// TODO(bnoordhuis) Maybe share this with TCPWrap? -void PipeWrap::AfterConnect(uv_connect_t* req, int status) { - ConnectWrap* req_wrap = static_cast<ConnectWrap*>(req->data); - PipeWrap* wrap = static_cast<PipeWrap*>(req->handle->data); - CHECK_EQ(req_wrap->env(), wrap->env()); - Environment* env = wrap->env(); - - HandleScope handle_scope(env->isolate()); - Context::Scope context_scope(env->context()); - - // The wrap and request objects should still be there. - CHECK_EQ(req_wrap->persistent().IsEmpty(), false); - CHECK_EQ(wrap->persistent().IsEmpty(), false); - - bool readable, writable; - - if (status) { - readable = writable = 0; - } else { - readable = uv_is_readable(req->handle) != 0; - writable = uv_is_writable(req->handle) != 0; - } - - Local<Object> req_wrap_obj = req_wrap->object(); - Local<Value> argv[5] = { - Integer::New(env->isolate(), status), - wrap->object(), - req_wrap_obj, - Boolean::New(env->isolate(), readable), - Boolean::New(env->isolate(), writable) - }; - - req_wrap->MakeCallback(env->oncomplete_string(), arraysize(argv), argv); - - delete req_wrap; -} - - void PipeWrap::Open(const FunctionCallbackInfo<Value>& args) { Environment* env = Environment::GetCurrent(args); |