Move HandleWrap rules to one place
This commit is contained in:
parent
e5cceffe6a
commit
85404c5c55
@ -3,6 +3,26 @@
|
|||||||
|
|
||||||
namespace node {
|
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 {
|
class HandleWrap {
|
||||||
public:
|
public:
|
||||||
static void Initialize(v8::Handle<v8::Object> target);
|
static void Initialize(v8::Handle<v8::Object> target);
|
||||||
|
@ -4,27 +4,6 @@
|
|||||||
#include <handle_wrap.h>
|
#include <handle_wrap.h>
|
||||||
#include <stream_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 \
|
#define UNWRAP \
|
||||||
assert(!args.Holder().IsEmpty()); \
|
assert(!args.Holder().IsEmpty()); \
|
||||||
assert(args.Holder()->InternalFieldCount() > 0); \
|
assert(args.Holder()->InternalFieldCount() > 0); \
|
||||||
|
@ -19,27 +19,6 @@
|
|||||||
# define uv_inet_ntop inet_ntop
|
# define uv_inet_ntop inet_ntop
|
||||||
#endif
|
#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 \
|
#define UNWRAP \
|
||||||
assert(!args.Holder().IsEmpty()); \
|
assert(!args.Holder().IsEmpty()); \
|
||||||
assert(args.Holder()->InternalFieldCount() > 0); \
|
assert(args.Holder()->InternalFieldCount() > 0); \
|
||||||
|
@ -1,27 +1,6 @@
|
|||||||
#include <node.h>
|
#include <node.h>
|
||||||
#include <handle_wrap.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 \
|
#define UNWRAP \
|
||||||
assert(!args.Holder().IsEmpty()); \
|
assert(!args.Holder().IsEmpty()); \
|
||||||
assert(args.Holder()->InternalFieldCount() > 0); \
|
assert(args.Holder()->InternalFieldCount() > 0); \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user