-
Notifications
You must be signed in to change notification settings - Fork 3
/
check-wrapper.dylan
51 lines (42 loc) · 1.34 KB
/
check-wrapper.dylan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
module: uv
author: Bruce Mitchener <bruce.mitchener@gmail.com>
copyright: MIT
define C-subtype <%uv-check> (<%uv-handle>) end;
define class <uv-check> (<uv-handle>) end;
define inline C-function %uv-check-init
parameter loop :: <uv-loop>;
parameter check :: <%uv-check>;
result xxx :: <C-int>;
c-name: "uv_check_init";
end;
define inline C-function %uv-check-start
parameter check :: <%uv-check>;
parameter callback :: <C-function-pointer>;
result xxx :: <C-int>;
c-name: "uv_check_start";
end;
define inline C-function %uv-check-stop
parameter check :: <%uv-check>;
result xxx :: <C-int>;
c-name: "uv_check_stop";
end;
define inline function uv-check-start
(check :: <uv-check>, callback :: <function>)
=> (result :: <integer>)
check.callback := callback;
%uv-check-start(check.raw-handle, %invoke-callback)
end;
define inline function uv-check-stop (check :: <uv-check>) => (_)
%uv-check-stop(check.raw-handle)
end;
define inline C-function %uv-dylan-check-new
result check :: <%uv-check>;
c-name: "uv_dylan_check_new";
end;
define sealed domain make (singleton(<uv-check>));
define sealed domain initialize (singleton(<uv-check>));
define sealed method initialize (check :: <uv-check>, #key loop = uv-default-loop())
check.raw-handle := %uv-dylan-check-new();
next-method();
%uv-check-init(loop, check.raw-handle);
end;