#ifndef node_events_h #define node_events_h #include "node.h" #include namespace node { class EventEmitter : public ObjectWrap { public: static void Initialize (v8::Handle target); static v8::Persistent constructor_template; bool Emit (const char *event, int argc, v8::Handle argv[]); protected: static v8::Handle Emit (const v8::Arguments& args); EventEmitter () : ObjectWrap () { } }; class Promise : public EventEmitter { public: static void Initialize (v8::Handle target); static v8::Persistent constructor_template; bool EmitSuccess (int argc, v8::Handle argv[]); bool EmitError (int argc, v8::Handle argv[]); static Promise* Create (void); v8::Handle Handle(void) { return handle_; } protected: Promise () : EventEmitter() { } }; class EIOPromise : public Promise { public: static EIOPromise* Create (void); protected: void Attach (void); void Detach (void); EIOPromise () : Promise() { } }; } // namespace node #endif