summaryrefslogtreecommitdiff
path: root/src/js_stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/js_stream.h')
-rw-r--r--src/js_stream.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/js_stream.h b/src/js_stream.h
index 6a2d3bfb4f..8e2ff13258 100644
--- a/src/js_stream.h
+++ b/src/js_stream.h
@@ -8,11 +8,39 @@
namespace node {
-class JSStream : public StreamBase {
+class JSStream : public StreamBase, public AsyncWrap {
public:
static void Initialize(v8::Handle<v8::Object> target,
v8::Handle<v8::Value> unused,
v8::Handle<v8::Context> context);
+
+ void* Cast() override;
+ bool IsAlive() override;
+ bool IsClosing() override;
+ int ReadStart() override;
+ int ReadStop() override;
+
+ int DoShutdown(ShutdownWrap* req_wrap) override;
+ int DoWrite(WriteWrap* w,
+ uv_buf_t* bufs,
+ size_t count,
+ uv_stream_t* send_handle) override;
+
+ protected:
+ JSStream(Environment* env, v8::Handle<v8::Object> obj, AsyncWrap* parent);
+ ~JSStream();
+
+ AsyncWrap* GetAsyncWrap() override;
+
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void DoAlloc(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void DoRead(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void DoAfterWrite(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void ReadBuffer(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void EmitEOF(const v8::FunctionCallbackInfo<v8::Value>& args);
+
+ template <class Wrap>
+ static void Finish(const v8::FunctionCallbackInfo<v8::Value>& args);
};
} // namespace node