summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2017-08-18 22:37:37 -0700
committerJames M Snell <jasnell@gmail.com>2017-08-23 10:35:34 -0700
commit5e7c69716ecbb7a0ebceaed7cc1c6847f9bc5058 (patch)
treee46aa77686c39196f93a4bf064ca0282188fb67e /src
parent771a03dfe3dba6ac3136bd4aa25525220e29b0ff (diff)
downloadandroid-node-v8-5e7c69716ecbb7a0ebceaed7cc1c6847f9bc5058.tar.gz
android-node-v8-5e7c69716ecbb7a0ebceaed7cc1c6847f9bc5058.tar.bz2
android-node-v8-5e7c69716ecbb7a0ebceaed7cc1c6847f9bc5058.zip
src: reduce code duplication
Adds `AsyncWrap::AddWrapMethods()` to add common methods to a `Local<FunctionTemplate>`. Follows same pattern as stream base. PR-URL: https://github.com/nodejs/node/pull/14937 Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'src')
-rw-r--r--src/async-wrap.cc7
-rw-r--r--src/async-wrap.h9
-rw-r--r--src/cares_wrap.cc8
-rw-r--r--src/fs_event_wrap.cc2
-rw-r--r--src/js_stream.cc2
-rw-r--r--src/node_crypto.cc6
-rw-r--r--src/node_file.cc2
-rwxr-xr-xsrc/node_http2.cc2
-rw-r--r--src/node_http_parser.cc2
-rw-r--r--src/node_stat_watcher.cc2
-rw-r--r--src/node_zlib.cc2
-rw-r--r--src/pipe_wrap.cc4
-rw-r--r--src/process_wrap.cc2
-rw-r--r--src/signal_wrap.cc2
-rw-r--r--src/stream_wrap.cc4
-rw-r--r--src/tcp_wrap.cc5
-rw-r--r--src/timer_wrap.cc2
-rw-r--r--src/tls_wrap.cc3
-rw-r--r--src/tty_wrap.cc2
-rw-r--r--src/udp_wrap.cc4
20 files changed, 43 insertions, 29 deletions
diff --git a/src/async-wrap.cc b/src/async-wrap.cc
index 7630de3694..de6ff2fceb 100644
--- a/src/async-wrap.cc
+++ b/src/async-wrap.cc
@@ -468,6 +468,13 @@ void AsyncWrap::QueueDestroyId(const FunctionCallbackInfo<Value>& args) {
PushBackDestroyId(Environment::GetCurrent(args), args[0]->NumberValue());
}
+void AsyncWrap::AddWrapMethods(Environment* env,
+ Local<FunctionTemplate> constructor,
+ int flag) {
+ env->SetProtoMethod(constructor, "getAsyncId", AsyncWrap::GetAsyncId);
+ if (flag & kFlagHasReset)
+ env->SetProtoMethod(constructor, "asyncReset", AsyncWrap::AsyncReset);
+}
void AsyncWrap::Initialize(Local<Object> target,
Local<Value> unused,
diff --git a/src/async-wrap.h b/src/async-wrap.h
index f2fa8f4334..7b427b0904 100644
--- a/src/async-wrap.h
+++ b/src/async-wrap.h
@@ -87,6 +87,11 @@ class AsyncWrap : public BaseObject {
PROVIDERS_LENGTH,
};
+ enum Flags {
+ kFlagNone = 0x0,
+ kFlagHasReset = 0x1
+ };
+
AsyncWrap(Environment* env,
v8::Local<v8::Object> object,
ProviderType provider,
@@ -94,6 +99,10 @@ class AsyncWrap : public BaseObject {
virtual ~AsyncWrap();
+ static void AddWrapMethods(Environment* env,
+ v8::Local<v8::FunctionTemplate> constructor,
+ int flags = kFlagNone);
+
static void Initialize(v8::Local<v8::Object> target,
v8::Local<v8::Value> unused,
v8::Local<v8::Context> context);
diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc
index b66a3e5262..e881ff5173 100644
--- a/src/cares_wrap.cc
+++ b/src/cares_wrap.cc
@@ -2189,7 +2189,7 @@ void Initialize(Local<Object> target,
Local<FunctionTemplate> aiw =
FunctionTemplate::New(env->isolate(), is_construct_call_callback);
aiw->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(aiw, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, aiw);
Local<String> addrInfoWrapString =
FIXED_ONE_BYTE_STRING(env->isolate(), "GetAddrInfoReqWrap");
aiw->SetClassName(addrInfoWrapString);
@@ -2198,7 +2198,7 @@ void Initialize(Local<Object> target,
Local<FunctionTemplate> niw =
FunctionTemplate::New(env->isolate(), is_construct_call_callback);
niw->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(niw, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, niw);
Local<String> nameInfoWrapString =
FIXED_ONE_BYTE_STRING(env->isolate(), "GetNameInfoReqWrap");
niw->SetClassName(nameInfoWrapString);
@@ -2207,7 +2207,7 @@ void Initialize(Local<Object> target,
Local<FunctionTemplate> qrw =
FunctionTemplate::New(env->isolate(), is_construct_call_callback);
qrw->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(qrw, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, qrw);
Local<String> queryWrapString =
FIXED_ONE_BYTE_STRING(env->isolate(), "QueryReqWrap");
qrw->SetClassName(queryWrapString);
@@ -2216,7 +2216,7 @@ void Initialize(Local<Object> target,
Local<FunctionTemplate> channel_wrap =
env->NewFunctionTemplate(ChannelWrap::New);
channel_wrap->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(channel_wrap, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, channel_wrap);
env->SetProtoMethod(channel_wrap, "queryAny", Query<QueryAnyWrap>);
env->SetProtoMethod(channel_wrap, "queryA", Query<QueryAWrap>);
diff --git a/src/fs_event_wrap.cc b/src/fs_event_wrap.cc
index 228c3a344e..8ec8dd6dcf 100644
--- a/src/fs_event_wrap.cc
+++ b/src/fs_event_wrap.cc
@@ -94,7 +94,7 @@ void FSEventWrap::Initialize(Local<Object> target,
t->InstanceTemplate()->SetInternalFieldCount(1);
t->SetClassName(fsevent_string);
- env->SetProtoMethod(t, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, t);
env->SetProtoMethod(t, "start", Start);
env->SetProtoMethod(t, "close", Close);
diff --git a/src/js_stream.cc b/src/js_stream.cc
index caef92f1ca..2e7f082e28 100644
--- a/src/js_stream.cc
+++ b/src/js_stream.cc
@@ -218,7 +218,7 @@ void JSStream::Initialize(Local<Object> target,
t->SetClassName(jsStreamString);
t->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(t, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, t);
env->SetProtoMethod(t, "doAlloc", DoAlloc);
env->SetProtoMethod(t, "doRead", DoRead);
diff --git a/src/node_crypto.cc b/src/node_crypto.cc
index f756251190..1fa522d521 100644
--- a/src/node_crypto.cc
+++ b/src/node_crypto.cc
@@ -2729,7 +2729,7 @@ void Connection::Initialize(Environment* env, Local<Object> target) {
t->InstanceTemplate()->SetInternalFieldCount(1);
t->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "Connection"));
- env->SetProtoMethod(t, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, t);
env->SetProtoMethod(t, "encIn", Connection::EncIn);
env->SetProtoMethod(t, "clearOut", Connection::ClearOut);
env->SetProtoMethod(t, "clearIn", Connection::ClearIn);
@@ -6137,14 +6137,14 @@ void InitCrypto(Local<Object> target,
Local<FunctionTemplate> pb = FunctionTemplate::New(env->isolate());
pb->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "PBKDF2"));
- env->SetProtoMethod(pb, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, pb);
Local<ObjectTemplate> pbt = pb->InstanceTemplate();
pbt->SetInternalFieldCount(1);
env->set_pbkdf2_constructor_template(pbt);
Local<FunctionTemplate> rb = FunctionTemplate::New(env->isolate());
rb->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "RandomBytes"));
- env->SetProtoMethod(rb, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, rb);
Local<ObjectTemplate> rbt = rb->InstanceTemplate();
rbt->SetInternalFieldCount(1);
env->set_randombytes_constructor_template(rbt);
diff --git a/src/node_file.cc b/src/node_file.cc
index 407e692f99..ee69915ddc 100644
--- a/src/node_file.cc
+++ b/src/node_file.cc
@@ -1483,7 +1483,7 @@ void InitFs(Local<Object> target,
Local<FunctionTemplate> fst =
FunctionTemplate::New(env->isolate(), NewFSReqWrap);
fst->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(fst, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, fst);
Local<String> wrapString =
FIXED_ONE_BYTE_STRING(env->isolate(), "FSReqWrap");
fst->SetClassName(wrapString);
diff --git a/src/node_http2.cc b/src/node_http2.cc
index 70dcc5e00d..a8eb0a37bf 100755
--- a/src/node_http2.cc
+++ b/src/node_http2.cc
@@ -1212,7 +1212,7 @@ void Initialize(Local<Object> target,
env->NewFunctionTemplate(Http2Session::New);
session->SetClassName(http2SessionClassName);
session->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(session, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, session);
env->SetProtoMethod(session, "consume",
Http2Session::Consume);
env->SetProtoMethod(session, "destroy",
diff --git a/src/node_http_parser.cc b/src/node_http_parser.cc
index c897a771a5..dfe0028147 100644
--- a/src/node_http_parser.cc
+++ b/src/node_http_parser.cc
@@ -794,7 +794,7 @@ void InitHttpParser(Local<Object> target,
#undef V
target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "methods"), methods);
- env->SetProtoMethod(t, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, t);
env->SetProtoMethod(t, "close", Parser::Close);
env->SetProtoMethod(t, "execute", Parser::Execute);
env->SetProtoMethod(t, "finish", Parser::Finish);
diff --git a/src/node_stat_watcher.cc b/src/node_stat_watcher.cc
index 3f9354efce..4b2e4db7bc 100644
--- a/src/node_stat_watcher.cc
+++ b/src/node_stat_watcher.cc
@@ -52,7 +52,7 @@ void StatWatcher::Initialize(Environment* env, Local<Object> target) {
FIXED_ONE_BYTE_STRING(env->isolate(), "StatWatcher");
t->SetClassName(statWatcherString);
- env->SetProtoMethod(t, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, t);
env->SetProtoMethod(t, "start", StatWatcher::Start);
env->SetProtoMethod(t, "stop", StatWatcher::Stop);
diff --git a/src/node_zlib.cc b/src/node_zlib.cc
index c29785e37e..fdfd314222 100644
--- a/src/node_zlib.cc
+++ b/src/node_zlib.cc
@@ -686,7 +686,7 @@ void InitZlib(Local<Object> target,
z->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(z, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, z);
env->SetProtoMethod(z, "write", ZCtx::Write<true>);
env->SetProtoMethod(z, "writeSync", ZCtx::Write<false>);
env->SetProtoMethod(z, "init", ZCtx::Init);
diff --git a/src/pipe_wrap.cc b/src/pipe_wrap.cc
index 0daec0b144..e29cf6d70f 100644
--- a/src/pipe_wrap.cc
+++ b/src/pipe_wrap.cc
@@ -72,7 +72,7 @@ void PipeWrap::Initialize(Local<Object> target,
t->SetClassName(pipeString);
t->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(t, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, t);
env->SetProtoMethod(t, "close", HandleWrap::Close);
env->SetProtoMethod(t, "unref", HandleWrap::Unref);
@@ -104,7 +104,7 @@ void PipeWrap::Initialize(Local<Object> target,
};
auto cwt = FunctionTemplate::New(env->isolate(), constructor);
cwt->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(cwt, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, cwt);
Local<String> wrapString =
FIXED_ONE_BYTE_STRING(env->isolate(), "PipeConnectWrap");
cwt->SetClassName(wrapString);
diff --git a/src/process_wrap.cc b/src/process_wrap.cc
index 26e233b2bd..7accc8c129 100644
--- a/src/process_wrap.cc
+++ b/src/process_wrap.cc
@@ -57,7 +57,7 @@ class ProcessWrap : public HandleWrap {
FIXED_ONE_BYTE_STRING(env->isolate(), "Process");
constructor->SetClassName(processString);
- env->SetProtoMethod(constructor, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, constructor);
env->SetProtoMethod(constructor, "close", HandleWrap::Close);
diff --git a/src/signal_wrap.cc b/src/signal_wrap.cc
index eed010b388..048a3de4be 100644
--- a/src/signal_wrap.cc
+++ b/src/signal_wrap.cc
@@ -54,7 +54,7 @@ class SignalWrap : public HandleWrap {
FIXED_ONE_BYTE_STRING(env->isolate(), "Signal");
constructor->SetClassName(signalString);
- env->SetProtoMethod(constructor, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, constructor);
env->SetProtoMethod(constructor, "close", HandleWrap::Close);
env->SetProtoMethod(constructor, "ref", HandleWrap::Ref);
env->SetProtoMethod(constructor, "unref", HandleWrap::Unref);
diff --git a/src/stream_wrap.cc b/src/stream_wrap.cc
index 57c93ac489..1e3863cad2 100644
--- a/src/stream_wrap.cc
+++ b/src/stream_wrap.cc
@@ -70,7 +70,7 @@ void StreamWrap::Initialize(Local<Object> target,
Local<String> wrapString =
FIXED_ONE_BYTE_STRING(env->isolate(), "ShutdownWrap");
sw->SetClassName(wrapString);
- env->SetProtoMethod(sw, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, sw);
target->Set(wrapString, sw->GetFunction());
Local<FunctionTemplate> ww =
@@ -79,7 +79,7 @@ void StreamWrap::Initialize(Local<Object> target,
Local<String> writeWrapString =
FIXED_ONE_BYTE_STRING(env->isolate(), "WriteWrap");
ww->SetClassName(writeWrapString);
- env->SetProtoMethod(ww, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, ww);
target->Set(writeWrapString, ww->GetFunction());
env->set_write_wrap_constructor_function(ww->GetFunction());
}
diff --git a/src/tcp_wrap.cc b/src/tcp_wrap.cc
index e721108cae..2c2aeab6dd 100644
--- a/src/tcp_wrap.cc
+++ b/src/tcp_wrap.cc
@@ -82,8 +82,7 @@ void TCPWrap::Initialize(Local<Object> target,
t->InstanceTemplate()->Set(env->onread_string(), Null(env->isolate()));
t->InstanceTemplate()->Set(env->onconnection_string(), Null(env->isolate()));
- env->SetProtoMethod(t, "getAsyncId", AsyncWrap::GetAsyncId);
- env->SetProtoMethod(t, "asyncReset", AsyncWrap::AsyncReset);
+ AsyncWrap::AddWrapMethods(env, t, AsyncWrap::kFlagHasReset);
env->SetProtoMethod(t, "close", HandleWrap::Close);
@@ -120,7 +119,7 @@ void TCPWrap::Initialize(Local<Object> target,
};
auto cwt = FunctionTemplate::New(env->isolate(), constructor);
cwt->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(cwt, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, cwt);
Local<String> wrapString =
FIXED_ONE_BYTE_STRING(env->isolate(), "TCPConnectWrap");
cwt->SetClassName(wrapString);
diff --git a/src/timer_wrap.cc b/src/timer_wrap.cc
index 03e7ad3262..e398a471e7 100644
--- a/src/timer_wrap.cc
+++ b/src/timer_wrap.cc
@@ -59,7 +59,7 @@ class TimerWrap : public HandleWrap {
env->SetTemplateMethod(constructor, "now", Now);
- env->SetProtoMethod(constructor, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, constructor);
env->SetProtoMethod(constructor, "close", HandleWrap::Close);
env->SetProtoMethod(constructor, "ref", HandleWrap::Ref);
diff --git a/src/tls_wrap.cc b/src/tls_wrap.cc
index 4e9eb19930..77d8ce7b5e 100644
--- a/src/tls_wrap.cc
+++ b/src/tls_wrap.cc
@@ -946,8 +946,7 @@ void TLSWrap::Initialize(Local<Object> target,
t->InstanceTemplate()->SetInternalFieldCount(1);
t->SetClassName(tlsWrapString);
- env->SetProtoMethod(t, "getAsyncId", AsyncWrap::GetAsyncId);
- env->SetProtoMethod(t, "asyncReset", AsyncWrap::AsyncReset);
+ AsyncWrap::AddWrapMethods(env, t, AsyncWrap::kFlagHasReset);
env->SetProtoMethod(t, "receive", Receive);
env->SetProtoMethod(t, "start", Start);
env->SetProtoMethod(t, "setVerifyMode", SetVerifyMode);
diff --git a/src/tty_wrap.cc b/src/tty_wrap.cc
index 88e9a98264..ee793056c8 100644
--- a/src/tty_wrap.cc
+++ b/src/tty_wrap.cc
@@ -56,7 +56,7 @@ void TTYWrap::Initialize(Local<Object> target,
t->SetClassName(ttyString);
t->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(t, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, t);
env->SetProtoMethod(t, "close", HandleWrap::Close);
env->SetProtoMethod(t, "unref", HandleWrap::Unref);
diff --git a/src/udp_wrap.cc b/src/udp_wrap.cc
index 702a5263c8..37396602ba 100644
--- a/src/udp_wrap.cc
+++ b/src/udp_wrap.cc
@@ -139,7 +139,7 @@ void UDPWrap::Initialize(Local<Object> target,
env->SetProtoMethod(t, "unref", HandleWrap::Unref);
env->SetProtoMethod(t, "hasRef", HandleWrap::HasRef);
- env->SetProtoMethod(t, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, t);
target->Set(udpString, t->GetFunction());
env->set_udp_constructor_function(t->GetFunction());
@@ -148,7 +148,7 @@ void UDPWrap::Initialize(Local<Object> target,
Local<FunctionTemplate> swt =
FunctionTemplate::New(env->isolate(), NewSendWrap);
swt->InstanceTemplate()->SetInternalFieldCount(1);
- env->SetProtoMethod(swt, "getAsyncId", AsyncWrap::GetAsyncId);
+ AsyncWrap::AddWrapMethods(env, swt);
Local<String> sendWrapString =
FIXED_ONE_BYTE_STRING(env->isolate(), "SendWrap");
swt->SetClassName(sendWrapString);