diff options
author | Igor Zinkovsky <igorzi@microsoft.com> | 2011-10-27 16:47:37 -0700 |
---|---|---|
committer | Igor Zinkovsky <igorzi@microsoft.com> | 2011-10-27 16:47:37 -0700 |
commit | cc2ac1ccc7724b920cbc7bbb777f057ac062028c (patch) | |
tree | 9a988759fa858be6f8d318fa8053995c81686213 /src | |
parent | 173f91c7918f8c5f7c23ba3bfb2a56eb2e1b2814 (diff) | |
download | nodejs-cc2ac1ccc7724b920cbc7bbb777f057ac062028c.tar.gz nodejs-cc2ac1ccc7724b920cbc7bbb777f057ac062028c.tar.bz2 nodejs-cc2ac1ccc7724b920cbc7bbb777f057ac062028c.zip |
remove node_io_watcher
Diffstat (limited to 'src')
-rw-r--r-- | src/node.cc | 10 | ||||
-rw-r--r-- | src/node_io_watcher.cc | 168 | ||||
-rw-r--r-- | src/node_io_watcher.h | 64 |
3 files changed, 0 insertions, 242 deletions
diff --git a/src/node.cc b/src/node.cc index 377fbe64a..31f4633fd 100644 --- a/src/node.cc +++ b/src/node.cc @@ -70,9 +70,6 @@ typedef int mode_t; #include "platform.h" #include <node_buffer.h> -#ifdef __POSIX__ -# include <node_io_watcher.h> -#endif #include <node_file.h> #include <node_http_parser.h> #ifdef __POSIX__ @@ -1890,13 +1887,6 @@ static Handle<Value> Binding(const Arguments& args) { DefineConstants(exports); binding_cache->Set(module, exports); -#ifdef __POSIX__ - } else if (!strcmp(*module_v, "io_watcher")) { - exports = Object::New(); - IOWatcher::Initialize(exports); - binding_cache->Set(module, exports); -#endif - } else if (!strcmp(*module_v, "natives")) { exports = Object::New(); DefineJavaScript(exports); diff --git a/src/node_io_watcher.cc b/src/node_io_watcher.cc deleted file mode 100644 index 4854a8fa9..000000000 --- a/src/node_io_watcher.cc +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -#include <node_io_watcher.h> - -#include <node.h> -#include <v8.h> - -#include <assert.h> - -namespace node { - -using namespace v8; - -Persistent<FunctionTemplate> IOWatcher::constructor_template; -Persistent<String> callback_symbol; - - -void IOWatcher::Initialize(Handle<Object> target) { - HandleScope scope; - - Local<FunctionTemplate> t = FunctionTemplate::New(IOWatcher::New); - constructor_template = Persistent<FunctionTemplate>::New(t); - constructor_template->InstanceTemplate()->SetInternalFieldCount(1); - constructor_template->SetClassName(String::NewSymbol("IOWatcher")); - - NODE_SET_PROTOTYPE_METHOD(constructor_template, "start", IOWatcher::Start); - NODE_SET_PROTOTYPE_METHOD(constructor_template, "stop", IOWatcher::Stop); - NODE_SET_PROTOTYPE_METHOD(constructor_template, "set", IOWatcher::Set); - - target->Set(String::NewSymbol("IOWatcher"), constructor_template->GetFunction()); - - callback_symbol = NODE_PSYMBOL("callback"); -} - - -void IOWatcher::Callback(EV_P_ ev_io *w, int revents) { - IOWatcher *io = static_cast<IOWatcher*>(w->data); - assert(w == &io->watcher_); - HandleScope scope; - - Local<Value> callback_v = io->handle_->Get(callback_symbol); - if (!callback_v->IsFunction()) { - io->Stop(); - return; - } - - Local<Function> callback = Local<Function>::Cast(callback_v); - - TryCatch try_catch; - - Local<Value> argv[2]; - argv[0] = Local<Value>::New(revents & EV_READ ? True() : False()); - argv[1] = Local<Value>::New(revents & EV_WRITE ? True() : False()); - - callback->Call(io->handle_, 2, argv); - - if (try_catch.HasCaught()) { - FatalException(try_catch); - } -} - - -// -// var io = new process.IOWatcher(); -// process.callback = function (readable, writable) { ... }; -// io.set(fd, true, false); -// io.start(); -// -Handle<Value> IOWatcher::New(const Arguments& args) { - if (!args.IsConstructCall()) { - return FromConstructorTemplate(constructor_template, args); - } - - HandleScope scope; - IOWatcher *s = new IOWatcher(); - s->Wrap(args.This()); - return args.This(); -} - - -Handle<Value> IOWatcher::Start(const Arguments& args) { - HandleScope scope; - IOWatcher *io = ObjectWrap::Unwrap<IOWatcher>(args.Holder()); - io->Start(); - return Undefined(); -} - - -Handle<Value> IOWatcher::Stop(const Arguments& args) { - HandleScope scope; - IOWatcher *io = ObjectWrap::Unwrap<IOWatcher>(args.Holder()); - io->Stop(); - return Undefined(); -} - - -void IOWatcher::Start() { - if (!ev_is_active(&watcher_)) { - ev_io_start(EV_DEFAULT_UC_ &watcher_); - Ref(); - } -} - - -void IOWatcher::Stop() { - if (ev_is_active(&watcher_)) { - ev_io_stop(EV_DEFAULT_UC_ &watcher_); - Unref(); - } -} - - -Handle<Value> IOWatcher::Set(const Arguments& args) { - HandleScope scope; - - IOWatcher *io = ObjectWrap::Unwrap<IOWatcher>(args.Holder()); - - if (!args[0]->IsInt32()) { - return ThrowException(Exception::TypeError( - String::New("First arg should be a file descriptor."))); - } - - int fd = args[0]->Int32Value(); - - if (!args[1]->IsBoolean()) { - return ThrowException(Exception::TypeError( - String::New("Second arg should boolean (readable)."))); - } - - int events = 0; - - if (args[1]->IsTrue()) events |= EV_READ; - - if (!args[2]->IsBoolean()) { - return ThrowException(Exception::TypeError( - String::New("Third arg should boolean (writable)."))); - } - - if (args[2]->IsTrue()) events |= EV_WRITE; - - assert(!io->watcher_.active); - ev_io_set(&io->watcher_, fd, events); - - return Undefined(); -} - - - -} // namespace node diff --git a/src/node_io_watcher.h b/src/node_io_watcher.h deleted file mode 100644 index 81014feb3..000000000 --- a/src/node_io_watcher.h +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -#ifndef NODE_IO_H_ -#define NODE_IO_H_ - -#include <node_object_wrap.h> -#include <uv-private/ev.h> - -namespace node { - -class IOWatcher : ObjectWrap { - public: - static void Initialize(v8::Handle<v8::Object> target); - - protected: - static v8::Persistent<v8::FunctionTemplate> constructor_template; - - IOWatcher() : ObjectWrap() { - ev_init(&watcher_, IOWatcher::Callback); - watcher_.data = this; - } - - ~IOWatcher() { - ev_io_stop(EV_DEFAULT_UC_ &watcher_); - assert(!ev_is_active(&watcher_)); - assert(!ev_is_pending(&watcher_)); - } - - static v8::Handle<v8::Value> New(const v8::Arguments& args); - static v8::Handle<v8::Value> Start(const v8::Arguments& args); - static v8::Handle<v8::Value> Stop(const v8::Arguments& args); - static v8::Handle<v8::Value> Set(const v8::Arguments& args); - - private: - static void Callback(EV_P_ ev_io *watcher, int revents); - - void Start(); - void Stop(); - - ev_io watcher_; -}; - -} // namespace node -#endif // NODE_IO_H_ - |