#include "v8.h"
+using v8::Context;
using v8::Function;
using v8::Handle;
+using v8::HandleScope;
+using v8::Integer;
+using v8::Isolate;
using v8::Local;
using v8::Object;
using v8::TryCatch;
namespace node {
+static void Initialize(Handle<Object> target,
+ Handle<Value> unused,
+ Handle<Context> context) {
+ Environment* env = Environment::GetCurrent(context);
+ Isolate* isolate = env->isolate();
+ HandleScope scope(isolate);
+
+ Local<Object> async_providers = Object::New(isolate);
+#define V(PROVIDER) \
+ async_providers->Set(FIXED_ONE_BYTE_STRING(isolate, #PROVIDER), \
+ Integer::New(isolate, AsyncWrap::PROVIDER_ ## PROVIDER));
+ NODE_ASYNC_PROVIDER_TYPES(V)
+#undef V
+ target->Set(FIXED_ONE_BYTE_STRING(isolate, "Providers"), async_providers);
+}
+
+
Handle<Value> AsyncWrap::MakeCallback(const Handle<Function> cb,
int argc,
Handle<Value>* argv) {
}
} // namespace node
+
+NODE_MODULE_CONTEXT_AWARE_BUILTIN(async_wrap, node::Initialize)
namespace node {
+#define NODE_ASYNC_PROVIDER_TYPES(V) \
+ V(NONE) \
+ V(CARES) \
+ V(CONNECTWRAP) \
+ V(CRYPTO) \
+ V(FSEVENTWRAP) \
+ V(FSREQWRAP) \
+ V(GETADDRINFOREQWRAP) \
+ V(GETNAMEINFOREQWRAP) \
+ V(PIPEWRAP) \
+ V(PROCESSWRAP) \
+ V(QUERYWRAP) \
+ V(REQWRAP) \
+ V(SHUTDOWNWRAP) \
+ V(SIGNALWRAP) \
+ V(STATWATCHER) \
+ V(TCPWRAP) \
+ V(TIMERWRAP) \
+ V(TLSWRAP) \
+ V(TTYWRAP) \
+ V(UDPWRAP) \
+ V(WRITEWRAP) \
+ V(ZLIB)
+
class AsyncWrap : public BaseObject {
public:
enum ProviderType {
- PROVIDER_NONE,
- PROVIDER_CARES,
- PROVIDER_CONNECTWRAP,
- PROVIDER_CRYPTO,
- PROVIDER_FSEVENTWRAP,
- PROVIDER_FSREQWRAP,
- PROVIDER_GETADDRINFOREQWRAP,
- PROVIDER_GETNAMEINFOREQWRAP,
- PROVIDER_PIPEWRAP,
- PROVIDER_PROCESSWRAP,
- PROVIDER_QUERYWRAP,
- PROVIDER_REQWRAP,
- PROVIDER_SHUTDOWNWRAP,
- PROVIDER_SIGNALWRAP,
- PROVIDER_STATWATCHER,
- PROVIDER_TCPWRAP,
- PROVIDER_TIMERWRAP,
- PROVIDER_TLSWRAP,
- PROVIDER_TTYWRAP,
- PROVIDER_UDPWRAP,
- PROVIDER_WRITEWRAP,
- PROVIDER_ZLIB
+#define V(PROVIDER) \
+ PROVIDER_ ## PROVIDER,
+ NODE_ASYNC_PROVIDER_TYPES(V)
+#undef V
};
inline AsyncWrap(Environment* env,