gio2 0.90.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/ChangeLog +60 -0
  2. data/README +34 -0
  3. data/Rakefile +76 -0
  4. data/ext/gio2/depend +5 -0
  5. data/ext/gio2/extconf.rb +91 -0
  6. data/ext/gio2/gappinfo.c +318 -0
  7. data/ext/gio2/gapplaunchcontext.c +79 -0
  8. data/ext/gio2/gasyncinitable.c +244 -0
  9. data/ext/gio2/gasyncresult.c +39 -0
  10. data/ext/gio2/gbufferedinputstream.c +184 -0
  11. data/ext/gio2/gbufferedoutputstream.c +82 -0
  12. data/ext/gio2/gcancellable.c +177 -0
  13. data/ext/gio2/gcharsetconverter.c +72 -0
  14. data/ext/gio2/gcontenttype.c +135 -0
  15. data/ext/gio2/gconverter.c +117 -0
  16. data/ext/gio2/gconverterinputstream.c +48 -0
  17. data/ext/gio2/gconverteroutputstream.c +48 -0
  18. data/ext/gio2/gdatainputstream.c +341 -0
  19. data/ext/gio2/gdataoutputstream.c +202 -0
  20. data/ext/gio2/gdesktopappinfo.c +90 -0
  21. data/ext/gio2/gdrive.c +267 -0
  22. data/ext/gio2/gemblem.c +71 -0
  23. data/ext/gio2/gemblemedicon.c +63 -0
  24. data/ext/gio2/gfile.c +2058 -0
  25. data/ext/gio2/gfileattribute.c +263 -0
  26. data/ext/gio2/gfileattributematcher.c +90 -0
  27. data/ext/gio2/gfiledescriptorbased.c +42 -0
  28. data/ext/gio2/gfileenumerator.c +167 -0
  29. data/ext/gio2/gfileicon.c +46 -0
  30. data/ext/gio2/gfileinfo.c +641 -0
  31. data/ext/gio2/gfileinputstream.c +92 -0
  32. data/ext/gio2/gfileiostream.c +98 -0
  33. data/ext/gio2/gfilemonitor.c +63 -0
  34. data/ext/gio2/gfilenamecompleter.c +72 -0
  35. data/ext/gio2/gfileoutputstream.c +100 -0
  36. data/ext/gio2/gfilterinputstream.c +56 -0
  37. data/ext/gio2/gfilteroutputstream.c +56 -0
  38. data/ext/gio2/gicon.c +69 -0
  39. data/ext/gio2/ginetaddress.c +188 -0
  40. data/ext/gio2/ginetsocketaddress.c +54 -0
  41. data/ext/gio2/ginitable.c +195 -0
  42. data/ext/gio2/ginputstream.c +341 -0
  43. data/ext/gio2/gio2.c +120 -0
  44. data/ext/gio2/gio2.def +2 -0
  45. data/ext/gio2/gio2.h +343 -0
  46. data/ext/gio2/gioerror.c +67 -0
  47. data/ext/gio2/giomodule.c +63 -0
  48. data/ext/gio2/gioscheduler.c +195 -0
  49. data/ext/gio2/giostream.c +129 -0
  50. data/ext/gio2/gloadableicon.c +91 -0
  51. data/ext/gio2/gmemoryinputstream.c +65 -0
  52. data/ext/gio2/gmemoryoutputstream.c +65 -0
  53. data/ext/gio2/gmount.c +283 -0
  54. data/ext/gio2/gmountoperation.c +168 -0
  55. data/ext/gio2/gnetworkaddress.c +71 -0
  56. data/ext/gio2/gnetworkservice.c +64 -0
  57. data/ext/gio2/goutputstream.c +343 -0
  58. data/ext/gio2/gresolver.c +230 -0
  59. data/ext/gio2/gseekable.c +89 -0
  60. data/ext/gio2/gsimpleasyncresult.c +153 -0
  61. data/ext/gio2/gsocket.c +451 -0
  62. data/ext/gio2/gsocketaddress.c +45 -0
  63. data/ext/gio2/gsocketclient.c +273 -0
  64. data/ext/gio2/gsocketconnectable.c +97 -0
  65. data/ext/gio2/gsocketconnection.c +82 -0
  66. data/ext/gio2/gsocketcontrolmessage.c +82 -0
  67. data/ext/gio2/gsocketlistener.c +239 -0
  68. data/ext/gio2/gsocketservice.c +64 -0
  69. data/ext/gio2/gsrvtarget.c +77 -0
  70. data/ext/gio2/gtcpconnection.c +48 -0
  71. data/ext/gio2/gthemedicon.c +86 -0
  72. data/ext/gio2/gthreadedsocketservice.c +39 -0
  73. data/ext/gio2/gunixconnection.c +69 -0
  74. data/ext/gio2/gunixfdlist.c +112 -0
  75. data/ext/gio2/gunixfdmessage.c +81 -0
  76. data/ext/gio2/gunixinputstream.c +73 -0
  77. data/ext/gio2/gunixmounts.c +346 -0
  78. data/ext/gio2/gunixoutputstream.c +73 -0
  79. data/ext/gio2/gunixsocketaddress.c +79 -0
  80. data/ext/gio2/gvfs.c +84 -0
  81. data/ext/gio2/gvolume.c +191 -0
  82. data/ext/gio2/gvolumemonitor.c +77 -0
  83. data/ext/gio2/gzlibcompressor.c +47 -0
  84. data/ext/gio2/gzlibdecompressor.c +43 -0
  85. data/ext/gio2/util.c +323 -0
  86. data/extconf.rb +49 -0
  87. data/lib/gio2.rb +141 -0
  88. metadata +184 -0
@@ -0,0 +1,48 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /*
3
+ * Ruby/GIO: a Ruby binding of gio-2.0.x.
4
+ * Copyright (C) 2008-2009 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ */
20
+
21
+ #include "gio2.h"
22
+
23
+ #define _SELF(value) G_TCP_CONNECTION(RVAL2GOBJ(value))
24
+
25
+ static VALUE
26
+ tcpconnection_set_graceful_disconnect(VALUE self, VALUE graceful_disconnect)
27
+ {
28
+ g_tcp_connection_set_graceful_disconnect(_SELF(self),
29
+ RVAL2CBOOL(graceful_disconnect));
30
+
31
+ return self;
32
+ }
33
+
34
+ static VALUE
35
+ tcpconnection_get_graceful_disconnect(VALUE self)
36
+ {
37
+ return CBOOL2RVAL(g_tcp_connection_get_graceful_disconnect(_SELF(self)));
38
+ }
39
+
40
+ void
41
+ Init_gtcpconnection(VALUE glib)
42
+ {
43
+ VALUE tcpconnection = G_DEF_CLASS(G_TYPE_TCP_CONNECTION, "TcpConnection", glib);
44
+
45
+ rb_define_method(tcpconnection, "set_graceful_disconnect", tcpconnection_set_graceful_disconnect, 1);
46
+ G_DEF_SETTER(tcpconnection, "graceful_disconnect");
47
+ rb_define_method(tcpconnection, "graceful_disconnect?", tcpconnection_get_graceful_disconnect, 0);
48
+ }
@@ -0,0 +1,86 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /*
3
+ * Ruby/GIO: a Ruby binding of gio-2.0.x.
4
+ * Copyright (C) 2008-2009 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ */
20
+
21
+ #include "gio2.h"
22
+
23
+ #define _SELF(value) G_THEMED_ICON(RVAL2GOBJ(value))
24
+
25
+ /* TODO: Is this unnecessarily complicated? */
26
+ static VALUE
27
+ themedicon_initialize(int argc, VALUE *argv, VALUE self)
28
+ {
29
+ VALUE rbiconnames, with_default_fallbacks;
30
+ char **iconnames;
31
+ GIcon *icon;
32
+
33
+ rb_scan_args(argc, argv, "11", &rbiconnames, &with_default_fallbacks);
34
+
35
+ if (TYPE(rbiconnames) != T_ARRAY) {
36
+ const char *iconname = RVAL2CSTR(rbiconnames);
37
+
38
+ icon = RVAL2CBOOL(with_default_fallbacks) ?
39
+ g_themed_icon_new_with_default_fallbacks(iconname) :
40
+ g_themed_icon_new(iconname);
41
+
42
+ G_INITIALIZE(self, icon);
43
+
44
+ return Qnil;
45
+ }
46
+
47
+ if (argc > 1)
48
+ rb_raise(rb_eArgError,
49
+ "only one argument allowed when first argument is an Array");
50
+
51
+ iconnames = ARY2STRVECTOR(rbiconnames);
52
+
53
+ icon = g_themed_icon_new_from_names(iconnames, -1);
54
+
55
+ g_free(iconnames);
56
+
57
+ G_INITIALIZE(self, icon);
58
+
59
+ return Qnil;
60
+ }
61
+
62
+ static VALUE
63
+ themedicon_prepend_name(VALUE self, VALUE iconname)
64
+ {
65
+ g_themed_icon_prepend_name(_SELF(self), RVAL2CSTR(iconname));
66
+
67
+ return self;
68
+ }
69
+
70
+ static VALUE
71
+ themedicon_append_name(VALUE self, VALUE iconname)
72
+ {
73
+ g_themed_icon_append_name(_SELF(self), RVAL2CSTR(iconname));
74
+
75
+ return self;
76
+ }
77
+
78
+ void
79
+ Init_gthemedicon(VALUE glib)
80
+ {
81
+ VALUE themedicon = G_DEF_INTERFACE(G_TYPE_THEMED_ICON, "ThemedIcon", glib);
82
+
83
+ rb_define_method(themedicon, "initialize", themedicon_initialize, 1);
84
+ rb_define_method(themedicon, "prepend_name", themedicon_prepend_name, 1);
85
+ rb_define_method(themedicon, "append_name", themedicon_append_name, 1);
86
+ }
@@ -0,0 +1,39 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /*
3
+ * Ruby/GIO: a Ruby binding of gio-2.0.x.
4
+ * Copyright (C) 2008-2009 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ */
20
+
21
+ #include "gio2.h"
22
+
23
+ #define _SELF(value) G_THREADED_SOCKET_SERVICE(RVAL2GOBJ(value))
24
+
25
+ static VALUE
26
+ threadedsocketservice_initialize(VALUE self)
27
+ {
28
+ G_INITIALIZE(self, g_socket_service_new());
29
+
30
+ return Qnil;
31
+ }
32
+
33
+ void
34
+ Init_gthreadedsocketservice(VALUE glib)
35
+ {
36
+ VALUE threadedsocketservice = G_DEF_CLASS(G_TYPE_THREADED_SOCKET_SERVICE, "ThreadedSocketService", glib);
37
+
38
+ rb_define_method(threadedsocketservice, "initialize", threadedsocketservice_initialize, 0);
39
+ }
@@ -0,0 +1,69 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /*
3
+ * Ruby/GIO: a Ruby binding of gio-2.0.x.
4
+ * Copyright (C) 2008-2009 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ */
20
+
21
+ #include "gio2.h"
22
+
23
+ #ifdef HAVE_GIO_UNIX
24
+ #include <gio/gunixconnection.h>
25
+
26
+ #define _SELF(value) G_UNIX_CONNECTION(RVAL2GOBJ(value))
27
+
28
+ static VALUE
29
+ unixconnection_receive_fd(int argc, VALUE *argv, VALUE self)
30
+ {
31
+ VALUE cancellable;
32
+ GError *error = NULL;
33
+ gint fd;
34
+
35
+ rb_scan_args(argc, argv, "01", &cancellable);
36
+ fd = g_unix_connection_receive_fd(_SELF(self),
37
+ RVAL2GCANCELLABLE(cancellable),
38
+ &error);
39
+ if (fd == -1)
40
+ rbgio_raise_error(error);
41
+
42
+ return FD2RVAL(fd);
43
+ }
44
+
45
+ static VALUE
46
+ unixconnection_send_fd(int argc, VALUE *argv, VALUE self)
47
+ {
48
+ VALUE fd, cancellable;
49
+ GError *error = NULL;
50
+
51
+ rb_scan_args(argc, argv, "11", &fd, &cancellable);
52
+ if (!g_unix_connection_send_fd(_SELF(self), RVAL2FD(fd),
53
+ RVAL2GCANCELLABLE(cancellable), &error))
54
+ rbgio_raise_error(error);
55
+
56
+ return self;
57
+ }
58
+ #endif
59
+
60
+ void
61
+ Init_gunixconnection(G_GNUC_UNUSED VALUE glib)
62
+ {
63
+ #ifdef HAVE_GIO_UNIX
64
+ VALUE unixconnection = G_DEF_CLASS(G_TYPE_UNIX_CONNECTION, "UnixConnection", glib);
65
+
66
+ rb_define_method(unixconnection, "receive_fd", unixconnection_receive_fd, -1);
67
+ rb_define_method(unixconnection, "send_fd", unixconnection_send_fd, -1);
68
+ #endif
69
+ }
@@ -0,0 +1,112 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /*
3
+ * Ruby/GIO: a Ruby binding of gio-2.0.x.
4
+ * Copyright (C) 2008-2009 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ */
20
+
21
+ #include "gio2.h"
22
+
23
+ #ifdef HAVE_GIO_UNIX
24
+ #include <gio/gunixfdlist.h>
25
+
26
+ #define _SELF(value) RVAL2GUNIXFDLIST(value)
27
+
28
+ static VALUE
29
+ unixfdlist_initialize(int argc, VALUE *argv, VALUE self)
30
+ {
31
+ VALUE rbfds;
32
+ gint i, n_fds;
33
+ gint *fds;
34
+
35
+ rb_scan_args(argc, argv, "0*", &rbfds);
36
+ n_fds = RARRAY_LEN(rbfds);
37
+ if (n_fds == 0) {
38
+ G_INITIALIZE(self, g_unix_fd_list_new());
39
+ return Qnil;
40
+ }
41
+
42
+ fds = ALLOCA_N(gint, n_fds);
43
+ for (i = 0; i < n_fds; i++)
44
+ fds[0] = RVAL2FD(RARRAY_PTR(rbfds)[i]);
45
+
46
+ G_INITIALIZE(self, g_unix_fd_list_new_from_array(fds, n_fds));
47
+
48
+ return Qnil;
49
+ }
50
+
51
+ static VALUE
52
+ unixfdlist_get_length(VALUE self)
53
+ {
54
+ return GINT2RVAL(g_unix_fd_list_get_length(_SELF(self)));
55
+ }
56
+
57
+ static VALUE
58
+ unixfdlist_get(VALUE self, VALUE index)
59
+ {
60
+ GError *error = NULL;
61
+ gint fd;
62
+
63
+ fd = g_unix_fd_list_get(_SELF(self), RVAL2GINT(index), &error);
64
+ if (fd == -1)
65
+ rbgio_raise_error(error);
66
+
67
+ /* TODO: This fd must be closed properly. How do we deal with that? */
68
+ return FD2RVAL(fd);
69
+ }
70
+
71
+ static VALUE
72
+ unixfdlist_peek_fds(VALUE self)
73
+ {
74
+ return GFDS2ARY(g_unix_fd_list_peek_fds(_SELF(self), NULL));
75
+ }
76
+
77
+ static VALUE
78
+ unixfdlist_steal_fds(VALUE self)
79
+ {
80
+ return GFDS2ARY_FREE(g_unix_fd_list_steal_fds(_SELF(self), NULL));
81
+ }
82
+
83
+ static VALUE
84
+ unixfdlist_append(VALUE self, VALUE fd)
85
+ {
86
+ GError *error = NULL;
87
+ int index;
88
+
89
+ index = g_unix_fd_list_append(_SELF(self), RVAL2FD(fd), &error);
90
+ if (index == -1)
91
+ rbgio_raise_error(error);
92
+
93
+ return self;
94
+ }
95
+ #endif
96
+
97
+ void
98
+ Init_gunixfdlist(G_GNUC_UNUSED VALUE glib)
99
+ {
100
+ #ifdef HAVE_GIO_UNIX
101
+ VALUE unixfdlist = G_DEF_CLASS(G_TYPE_UNIX_FD_LIST, "UnixFdList", glib);
102
+
103
+ rb_define_method(unixfdlist, "initialize", unixfdlist_initialize, -1);
104
+ rb_define_method(unixfdlist, "length", unixfdlist_get_length, 0);
105
+ rb_define_method(unixfdlist, "get", unixfdlist_get, 1);
106
+ rb_define_alias(unixfdlist, "[]", "get");
107
+ rb_define_method(unixfdlist, "peek_fds", unixfdlist_peek_fds, 0);
108
+ rb_define_method(unixfdlist, "steal_fds", unixfdlist_steal_fds, 0);
109
+ rb_define_method(unixfdlist, "append", unixfdlist_append, 1);
110
+ rb_define_alias(unixfdlist, "<<", "append");
111
+ #endif
112
+ }
@@ -0,0 +1,81 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /*
3
+ * Ruby/GIO: a Ruby binding of gio-2.0.x.
4
+ * Copyright (C) 2008-2009 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ */
20
+
21
+ #include "gio2.h"
22
+
23
+ #ifdef HAVE_GIO_UNIX
24
+ #include <gio/gunixfdmessage.h>
25
+
26
+ #define _SELF(value) G_UNIX_FD_MESSAGE(RVAL2GOBJ(value))
27
+
28
+ static VALUE
29
+ unixfdmessage_initialize(int argc, VALUE *argv, VALUE self)
30
+ {
31
+ VALUE fd_list;
32
+ GSocketControlMessage *message;
33
+
34
+ rb_scan_args(argc, argv, "01", &fd_list);
35
+ message = NIL_P(fd_list) ?
36
+ g_unix_fd_message_new() :
37
+ g_unix_fd_message_new_with_fd_list(RVAL2GUNIXFDLIST(fd_list));
38
+ G_INITIALIZE(self, message);
39
+
40
+ return Qnil;
41
+ }
42
+
43
+ static VALUE
44
+ unixfdmessage_get_fd_list(VALUE self)
45
+ {
46
+ /* TODO: Should we relate the return value with self? It’s apparently
47
+ * valid as long as self is valid. */
48
+ return GOBJ2RVAL(g_unix_fd_message_get_fd_list(_SELF(self)));
49
+ }
50
+
51
+ static VALUE
52
+ unixfdmessage_append_fd(VALUE self, VALUE fd)
53
+ {
54
+ GError *error = NULL;
55
+
56
+ if (!g_unix_fd_message_append_fd(_SELF(self), RVAL2FD(fd), &error))
57
+ rbgio_raise_error(error);
58
+
59
+ return self;
60
+ }
61
+
62
+ static VALUE
63
+ unixfdmessage_steal_fds(VALUE self)
64
+ {
65
+ return GFDS2ARY_FREE(g_unix_fd_message_steal_fds(_SELF(self), NULL));
66
+ }
67
+ #endif
68
+
69
+ void
70
+ Init_gunixfdmessage(G_GNUC_UNUSED VALUE glib)
71
+ {
72
+ #ifdef HAVE_GIO_UNIX
73
+ VALUE unixfdmessage = G_DEF_CLASS(G_TYPE_UNIX_FD_MESSAGE, "UnixFDMessage", glib);
74
+
75
+ rb_define_method(unixfdmessage, "initialize", unixfdmessage_initialize, -1);
76
+ rb_define_method(unixfdmessage, "fd_list", unixfdmessage_get_fd_list, 0);
77
+ rb_define_method(unixfdmessage, "append_fd", unixfdmessage_append_fd, 1);
78
+ rb_define_alias(unixfdmessage, "<<", "append_fd");
79
+ rb_define_method(unixfdmessage, "steal_fds", unixfdmessage_steal_fds, 0);
80
+ #endif
81
+ }
@@ -0,0 +1,73 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /*
3
+ * Ruby/GIO: a Ruby binding of gio-2.0.x.
4
+ * Copyright (C) 2008-2009 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ */
20
+
21
+ #include "gio2.h"
22
+
23
+ #ifdef HAVE_GIO_UNIX
24
+ #include <gio/gunixinputstream.h>
25
+
26
+ #define _SELF(value) G_UNIX_INPUT_STREAM(RVAL2GOBJ(value))
27
+
28
+ static VALUE
29
+ unixinputstream_initialize(int argc, VALUE *argv, VALUE self)
30
+ {
31
+ VALUE fd, close_fd;
32
+
33
+ rb_scan_args(argc, argv, "11", &fd, &close_fd);
34
+ G_INITIALIZE(self, g_unix_input_stream_new(RVAL2FD(fd),
35
+ RVAL2CBOOL(close_fd)));
36
+
37
+ return Qnil;
38
+ }
39
+
40
+ static VALUE
41
+ unixinputstream_set_close_fd(VALUE self, VALUE close_fd)
42
+ {
43
+ g_unix_input_stream_set_close_fd(_SELF(self), RVAL2CBOOL(close_fd));
44
+
45
+ return self;
46
+ }
47
+
48
+ static VALUE
49
+ unixinputstream_get_close_fd(VALUE self)
50
+ {
51
+ return CBOOL2RVAL(g_unix_input_stream_get_close_fd(_SELF(self)));
52
+ }
53
+
54
+ static VALUE
55
+ unixinputstream_get_fd(VALUE self)
56
+ {
57
+ return FD2RVAL(g_unix_input_stream_get_fd(_SELF(self)));
58
+ }
59
+ #endif
60
+
61
+ void
62
+ Init_gunixinputstream(G_GNUC_UNUSED VALUE glib)
63
+ {
64
+ #ifdef HAVE_GIO_UNIX
65
+ VALUE unixinputstream = G_DEF_CLASS(G_TYPE_UNIX_INPUT_STREAM, "UnixInputStream", glib);
66
+
67
+ rb_define_method(unixinputstream, "initialize", unixinputstream_initialize, -1);
68
+ rb_define_method(unixinputstream, "set_close_fd", unixinputstream_set_close_fd, 1);
69
+ G_DEF_SETTER(unixinputstream, "close_fd");
70
+ rb_define_method(unixinputstream, "close_fd?", unixinputstream_get_close_fd, 0);
71
+ rb_define_method(unixinputstream, "fd", unixinputstream_get_fd, 0);
72
+ #endif
73
+ }