diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2011-07-19 00:45:11 +0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2011-07-19 00:47:56 +0400 |
commit | 85404c5c558ebbba3aaf27c56d1edccc2061d664 (patch) | |
tree | 1115666dc81798d0b6c7d7f80f6d7b7974601fb0 | |
parent | e5cceffe6a59e6702b373051817f590acdcdf036 (diff) |
Move HandleWrap rules to one place
-rw-r--r-- | src/handle_wrap.h | 20 | ||||
-rw-r--r-- | src/pipe_wrap.cc | 21 | ||||
-rw-r--r-- | src/tcp_wrap.cc | 21 | ||||
-rw-r--r-- | src/timer_wrap.cc | 21 |
4 files changed, 20 insertions, 63 deletions
diff --git a/src/handle_wrap.h b/src/handle_wrap.h index 2c51799a588..8329da04170 100644 --- a/src/handle_wrap.h +++ b/src/handle_wrap.h @@ -3,6 +3,26 @@ namespace node { +// Rules: +// +// - Do not throw from handle methods. Set errno. +// +// - MakeCallback may only be made directly off the event loop. +// That is there can be no JavaScript stack frames underneith it. +// (Is there anyway to assert that?) +// +// - No use of v8::WeakReferenceCallback. The close callback signifies that +// we're done with a handle - external resources can be freed. +// +// - Reusable? +// +// - The uv_close_cb is used to free the c++ object. The close callback +// is not made into javascript land. +// +// - uv_ref, uv_unref counts are managed at this layer to avoid needless +// js/c++ boundary crossing. At the javascript layer that should all be +// taken care of. + class HandleWrap { public: static void Initialize(v8::Handle<v8::Object> target); diff --git a/src/pipe_wrap.cc b/src/pipe_wrap.cc index 4d8f35239e3..adbeb0f8c18 100644 --- a/src/pipe_wrap.cc +++ b/src/pipe_wrap.cc @@ -4,27 +4,6 @@ #include <handle_wrap.h> #include <stream_wrap.h> -// Rules: -// -// - Do not throw from handle methods. Set errno. -// -// - MakeCallback may only be made directly off the event loop. -// That is there can be no JavaScript stack frames underneith it. -// (Is there anyway to assert that?) -// -// - No use of v8::WeakReferenceCallback. The close callback signifies that -// we're done with a handle - external resources can be freed. -// -// - Reusable? -// -// - The uv_close_cb is used to free the c++ object. The close callback -// is not made into javascript land. -// -// - uv_ref, uv_unref counts are managed at this layer to avoid needless -// js/c++ boundary crossing. At the javascript layer that should all be -// taken care of. - - #define UNWRAP \ assert(!args.Holder().IsEmpty()); \ assert(args.Holder()->InternalFieldCount() > 0); \ diff --git a/src/tcp_wrap.cc b/src/tcp_wrap.cc index fd4552c9701..814f7e235b8 100644 --- a/src/tcp_wrap.cc +++ b/src/tcp_wrap.cc @@ -19,27 +19,6 @@ # define uv_inet_ntop inet_ntop #endif -// Rules: -// -// - Do not throw from handle methods. Set errno. -// -// - MakeCallback may only be made directly off the event loop. -// That is there can be no JavaScript stack frames underneith it. -// (Is there anyway to assert that?) -// -// - No use of v8::WeakReferenceCallback. The close callback signifies that -// we're done with a handle - external resources can be freed. -// -// - Reusable? -// -// - The uv_close_cb is used to free the c++ object. The close callback -// is not made into javascript land. -// -// - uv_ref, uv_unref counts are managed at this layer to avoid needless -// js/c++ boundary crossing. At the javascript layer that should all be -// taken care of. - - #define UNWRAP \ assert(!args.Holder().IsEmpty()); \ assert(args.Holder()->InternalFieldCount() > 0); \ diff --git a/src/timer_wrap.cc b/src/timer_wrap.cc index 3d45946ce6d..5e1fd25a543 100644 --- a/src/timer_wrap.cc +++ b/src/timer_wrap.cc @@ -1,27 +1,6 @@ #include <node.h> #include <handle_wrap.h> -// Rules: -// -// - Do not throw from handle methods. Set errno. -// -// - MakeCallback may only be made directly off the event loop. -// That is there can be no JavaScript stack frames underneith it. -// (Is there anyway to assert that?) -// -// - No use of v8::WeakReferenceCallback. The close callback signifies that -// we're done with a handle - external resources can be freed. -// -// - Reusable? -// -// - The uv_close_cb is used to free the c++ object. The close callback -// is not made into javascript land. -// -// - uv_ref, uv_unref counts are managed at this layer to avoid needless -// js/c++ boundary crossing. At the javascript layer that should all be -// taken care of. - - #define UNWRAP \ assert(!args.Holder().IsEmpty()); \ assert(args.Holder()->InternalFieldCount() > 0); \ |