~yolanda.robla/ubuntu/trusty/nodejs/add_distribution

« back to all changes in this revision

Viewing changes to src/node_io_watcher.h

  • Committer: Package Import Robot
  • Author(s): Jérémy Lal
  • Date: 2013-08-14 00:16:46 UTC
  • mfrom: (7.1.40 sid)
  • Revision ID: package-import@ubuntu.com-20130814001646-bzlysfh8sd6mukbo
Tags: 0.10.15~dfsg1-4
* Update 2005 patch, adding a handful of tests that can fail on
  slow platforms.
* Add 1004 patch to fix test failures when writing NaN to buffer
  on mipsel.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Copyright Joyent, Inc. and other Node contributors.
2
 
//
3
 
// Permission is hereby granted, free of charge, to any person obtaining a
4
 
// copy of this software and associated documentation files (the
5
 
// "Software"), to deal in the Software without restriction, including
6
 
// without limitation the rights to use, copy, modify, merge, publish,
7
 
// distribute, sublicense, and/or sell copies of the Software, and to permit
8
 
// persons to whom the Software is furnished to do so, subject to the
9
 
// following conditions:
10
 
//
11
 
// The above copyright notice and this permission notice shall be included
12
 
// in all copies or substantial portions of the Software.
13
 
//
14
 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
 
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
 
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17
 
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
 
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
 
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
 
// USE OR OTHER DEALINGS IN THE SOFTWARE.
21
 
 
22
 
#ifndef NODE_IO_H_
23
 
#define NODE_IO_H_
24
 
 
25
 
#include <node_object_wrap.h>
26
 
#include <ev.h>
27
 
 
28
 
namespace node {
29
 
 
30
 
class IOWatcher : ObjectWrap {
31
 
 public:
32
 
  static void Initialize(v8::Handle<v8::Object> target);
33
 
 
34
 
 protected:
35
 
  static v8::Persistent<v8::FunctionTemplate> constructor_template;
36
 
 
37
 
  IOWatcher() : ObjectWrap() {
38
 
    ev_init(&watcher_, IOWatcher::Callback);
39
 
    watcher_.data = this;
40
 
  }
41
 
 
42
 
  ~IOWatcher() {
43
 
    ev_io_stop(EV_DEFAULT_UC_ &watcher_);
44
 
    assert(!ev_is_active(&watcher_));
45
 
    assert(!ev_is_pending(&watcher_));
46
 
  }
47
 
 
48
 
  static v8::Handle<v8::Value> New(const v8::Arguments& args);
49
 
  static v8::Handle<v8::Value> Start(const v8::Arguments& args);
50
 
  static v8::Handle<v8::Value> Stop(const v8::Arguments& args);
51
 
  static v8::Handle<v8::Value> Set(const v8::Arguments& args);
52
 
 
53
 
 private:
54
 
  static void Callback(EV_P_ ev_io *watcher, int revents);
55
 
 
56
 
  void Start();
57
 
  void Stop();
58
 
 
59
 
  ev_io watcher_;
60
 
};
61
 
 
62
 
}  // namespace node
63
 
#endif  // NODE_IO_H_
64