diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2011-07-18 02:32:32 -0700 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2011-07-18 03:08:54 -0700 |
commit | 1ae148909a2bd220cf48218a4c9ff295a611a65e (patch) | |
tree | 59b1f7634e4ffde64a9a982eb7f1ae3b9ef49cc9 /src/req_wrap.h | |
parent | 404a4db6111f9dad8fe1bd924cc3ee6cc9eea06d (diff) | |
download | android-node-v8-1ae148909a2bd220cf48218a4c9ff295a611a65e.tar.gz android-node-v8-1ae148909a2bd220cf48218a4c9ff295a611a65e.tar.bz2 android-node-v8-1ae148909a2bd220cf48218a4c9ff295a611a65e.zip |
Abstract StreamWrap from TCPWrap
Diffstat (limited to 'src/req_wrap.h')
-rw-r--r-- | src/req_wrap.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/req_wrap.h b/src/req_wrap.h new file mode 100644 index 0000000000..cc60547013 --- /dev/null +++ b/src/req_wrap.h @@ -0,0 +1,35 @@ +#ifndef REQ_WRAP_H_ +#define REQ_WRAP_H_ + +namespace node { + +template <typename T> +class ReqWrap { + public: + ReqWrap() { + v8::HandleScope scope; + object_ = v8::Persistent<v8::Object>::New(v8::Object::New()); + } + + ~ReqWrap() { + // Assert that someone has called Dispatched() + assert(req_.data == this); + assert(!object_.IsEmpty()); + object_.Dispose(); + object_.Clear(); + } + + // Call this after the req has been dispatched. + void Dispatched() { + req_.data = this; + } + + v8::Persistent<v8::Object> object_; + T req_; +}; + + +} // namespace node + + +#endif // REQ_WRAP_H_ |