[glibmm] Socket. Add several methods.



commit 4ed74613e54dd4cdc13c51496e35c8324e34205c
Author: Murray Cumming <murrayc murrayc com>
Date:   Fri Sep 7 10:37:43 2012 +0200

    Socket. Add several methods.
    
    * gio/src/socket.hg: Added create_source(),
    get_available_bytes(), get_ttl(), set_ttl(),
    get_broadcast(), set_broadcast(),
    get_multicast_loopback(), set_multicast_loopback(),
    get_multicast_ttl(), set_multicast_ttl(),
    join_multicast_group(), leave_multicast_group(),
    and properties.
    * tools/m4/convert_glib.m4: Added a conversion for
    GIOSource.

 ChangeLog                |   14 ++++++++++++++
 gio/src/socket.hg        |   32 +++++++++++++++++++++++++++++++-
 tools/m4/convert_glib.m4 |    3 +++
 3 files changed, 48 insertions(+), 1 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 2d2badd..0d08834 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2012-09-07  Murray Cumming  <murrayc murrayc com>
 
+	Socket. Add several methods.
+
+	* gio/src/socket.hg: Added create_source(), 
+	get_available_bytes(), get_ttl(), set_ttl(), 
+	get_broadcast(), set_broadcast(), 
+	get_multicast_loopback(), set_multicast_loopback(),
+	get_multicast_ttl(), set_multicast_ttl(),
+	join_multicast_group(), leave_multicast_group(),
+	and properties.
+	* tools/m4/convert_glib.m4: Added a conversion for
+	GIOSource.
+
+2012-09-07  Murray Cumming  <murrayc murrayc com>
+
 	Volume: Add get_sort_key().
 
 	* gio/src/volume.hg: Wrap g_volume_get_sort_key().
diff --git a/gio/src/socket.hg b/gio/src/socket.hg
index 1587c0a..d50acf9 100644
--- a/gio/src/socket.hg
+++ b/gio/src/socket.hg
@@ -24,6 +24,7 @@
 #include <giomm/socketconnectable.h>
 #include <giomm/socketaddress.h>
 #include <giomm/enums.h>
+#include <giomm/inetaddress.h>
 
 _DEFS(giomm,gio)
 _PINCLUDE(glibmm/private/object_p.h)
@@ -149,6 +150,9 @@ public:
   // TODO: wrap g_socket_send_message -- figure out this GOutputVector thing
   _WRAP_METHOD(void close(), g_socket_close, errthrow)
   _WRAP_METHOD(bool is_closed(), g_socket_is_closed)
+
+  _WRAP_METHOD(Glib::RefPtr<Glib::IOSource> create_source(Glib::IOCondition condition, const Glib::RefPtr<Cancellable>& cancellable{?}), g_socket_create_source)
+
   _WRAP_METHOD(void shutdown(bool shutdown_read, bool shutdown_write), g_socket_shutdown, errthrow)
   _WRAP_METHOD(bool is_connected(), g_socket_is_connected)
 
@@ -157,11 +161,18 @@ public:
   // constructor that takes a GSource*
 //#m4 _CONVERSION(`GSource*',`Glib::RefPtr<Glib::Source>',`Glib::RefPtr<Glib::Source>(new ::Glib::Source($3))')
   //_WRAP_METHOD(Glib::RefPtr<Glib::Source> create_source(Glib::IOCondition condition, const Glib::RefPtr<Cancellable>& cancellable), g_socket_create_source)
+
+  _WRAP_METHOD(gssize get_available_bytes() const,  g_socket_get_available_bytes)
+
   _WRAP_METHOD(Glib::IOCondition condition_check(Glib::IOCondition condition), g_socket_condition_check)
 
   _WRAP_METHOD(void condition_wait(Glib::IOCondition condition, const Glib::RefPtr<Cancellable>& cancellable), g_socket_condition_wait, errthrow)
+
+  //TODO: Documentation.
   void condition_wait(Glib::IOCondition condition);
 
+  _WRAP_METHOD(void condition_timed_wait(Glib::IOCondition condition, gint64 timeout, const Glib::RefPtr<Cancellable>& cancellable{?}), g_socket_condition_timed_wait, errthrow)
+
   _WRAP_METHOD(void set_listen_backlog(int backlog), g_socket_set_listen_backlog)
   _WRAP_METHOD(int get_listen_backlog() const, g_socket_get_listen_backlog)
   _WRAP_METHOD(void set_blocking(bool blocking), g_socket_set_blocking)
@@ -187,7 +198,22 @@ public:
 
   _WRAP_METHOD_DOCS_ONLY(g_socket_send_with_blocking)
   gssize send_with_blocking(gchar* buffer, gsize size, bool blocking, const Glib::RefPtr<Cancellable>& cancellable = Glib::RefPtr<Cancellable>());
-    
+
+  _WRAP_METHOD(guint get_ttl() const, g_socket_get_ttl)
+  _WRAP_METHOD(void set_ttl(guint ttl), g_socket_set_ttl)
+
+  _WRAP_METHOD(bool get_broadcast() const, g_socket_get_broadcast )
+  _WRAP_METHOD(void set_broadcast(bool broadcast), g_socket_set_broadcast)
+
+  _WRAP_METHOD(bool get_multicast_loopback() const, g_socket_get_multicast_loopback)
+  _WRAP_METHOD(void set_multicast_loopback(bool loopback), g_socket_set_multicast_loopback)
+  _WRAP_METHOD(guint get_multicast_ttl() const, g_socket_get_multicast_ttl)
+  _WRAP_METHOD(void set_multicast_ttl(guint ttl), g_socket_set_multicast_ttl)
+
+  _WRAP_METHOD(bool join_multicast_group(const Glib::RefPtr<InetAddress>& group, bool source_specific, const std::string& iface{?}), g_socket_join_multicast_group, errthrow)
+  _WRAP_METHOD(bool leave_multicast_group(const Glib::RefPtr<InetAddress>& ggroup, bool source_specific, const std::string& iface{?}), g_socket_leave_multicast_group, errthrow)
+
+ 
   _WRAP_PROPERTY("blocking", bool)
   _WRAP_PROPERTY("family", SocketFamily)
   _WRAP_PROPERTY("fd", int)
@@ -197,7 +223,11 @@ public:
   _WRAP_PROPERTY("remote-address", Glib::RefPtr<SocketAddress>)
   _WRAP_PROPERTY("timeout", guint)
   _WRAP_PROPERTY("protocol", SocketProtocol)
+  _WRAP_PROPERTY("broadcast", bool)
   _WRAP_PROPERTY("type", SocketType)
+  _WRAP_PROPERTY("ttl", guint)
+  _WRAP_PROPERTY("multicast-loopback", bool)
+  _WRAP_PROPERTY("multicast-ttl", guint)
 };
 
 } // namespace Gio
diff --git a/tools/m4/convert_glib.m4 b/tools/m4/convert_glib.m4
index 580ba6b..3c2e28b 100644
--- a/tools/m4/convert_glib.m4
+++ b/tools/m4/convert_glib.m4
@@ -131,6 +131,9 @@ dnl Regex
 _CONVERSION(`GRegex*',`Glib::RefPtr<Regex>',`Glib::wrap($3)')
 _CONVERSION(`GRegex*',`Glib::RefPtr<const Regex>',`Glib::wrap($3)')
 
+#Source
+_CONVERSION(`GSource*',`Glib::RefPtr<Glib::IOSource>',`Glib::wrap($3)')
+
 dnl TimeVal
 _CONVERSION(`const TimeVal&',`const GTimeVal*',`&($3)')
 _CONVERSION(`TimeVal&',`GTimeVal*',`&($3)')



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]