summaryrefslogtreecommitdiff
path: root/gio/src/socketconnection.hg
diff options
context:
space:
mode:
authorJosé Alburquerque <jaalburqu@svn.gnome.org>2012-11-04 16:40:38 -0500
committerJosé Alburquerque <jaalburqu@svn.gnome.org>2012-11-04 17:25:24 -0500
commitdb6b3a380dc8a5cd718fab1ae7597d29d91d0303 (patch)
tree575de4b2a44e33820afb1a309e425944e43a4906 /gio/src/socketconnection.hg
parentda08d039f5f03f26ed9dcf677fb263607852b111 (diff)
downloadglibmm-db6b3a380dc8a5cd718fab1ae7597d29d91d0303.tar.gz
SocketConnection: Add connect*() and is_connected() methods.
* gio/src/socketconnection.{ccg,hg}: Add connect(), connect_async(), connect_finish() and is_connected() methods (wrapping the corresponding C functions). * gio/src/resolver.hg: Add an _IGNORE.
Diffstat (limited to 'gio/src/socketconnection.hg')
-rw-r--r--gio/src/socketconnection.hg47
1 files changed, 36 insertions, 11 deletions
diff --git a/gio/src/socketconnection.hg b/gio/src/socketconnection.hg
index e5c87d55..6bcd3775 100644
--- a/gio/src/socketconnection.hg
+++ b/gio/src/socketconnection.hg
@@ -54,20 +54,45 @@ class SocketConnection : public Gio::IOStream
_CLASS_GOBJECT(SocketConnection, GSocketConnection, G_SOCKET_CONNECTION, Gio::IOStream, GIOStream)
public:
-_WRAP_METHOD(Glib::RefPtr<Socket> get_socket(), g_socket_connection_get_socket, refreturn)
-_WRAP_METHOD(Glib::RefPtr<const Socket> get_socket() const, g_socket_connection_get_socket, constversion, refreturn)
-_WRAP_METHOD(Glib::RefPtr<SocketAddress> get_local_address(), g_socket_connection_get_local_address, errthrow)
-_WRAP_METHOD(Glib::RefPtr<const SocketAddress> get_local_address() const, g_socket_connection_get_local_address, constversion, errthrow)
-_WRAP_METHOD(Glib::RefPtr<SocketAddress> get_remote_address(), g_socket_connection_get_remote_address, errthrow)
-_WRAP_METHOD(Glib::RefPtr<const SocketAddress> get_remote_address() const, g_socket_connection_get_remote_address, constversion, errthrow)
+ _WRAP_METHOD(bool connect(const Glib::RefPtr<SocketAddress>& address, const Glib::RefPtr<Cancellable>& cancellable{?}), g_socket_connection_connect, errthrow)
-// Not sure that registering new GTypes with the factory is useful for the C++ binding
-//_WRAP_METHOD(void factory_register_type(GType g_type, GSocketFamily family, GSocketType type, gint protocol);
-//_WRAP_METHOD(GType factory_lookup_type(GSocketFamily family, GSocketType type, gint protocol_id);
+ /** Asynchronously connect this connection to the specified remote address.
+ * This clears the "blocking" flag on this connection's underlying socket if
+ * it is currently set.
+ *
+ * Use connect_finish() to retrieve the result.
+ *
+ * @param address A SocketAddress specifying the remote address.
+ * @param slot A SlotAsyncReady slot.
+ * @param cancellable A Cancellable.
+ * @newin{2,36}
+ */
+ void connect_async(const Glib::RefPtr<SocketAddress>& address,
+ const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable);
+ _IGNORE(g_socket_connection_connect_async)
-_WRAP_METHOD(static Glib::RefPtr<SocketConnection> create(const Glib::RefPtr<Socket>& socket), g_socket_connection_factory_create_connection)
+ /// A Non-cancellable version of connect_async().
+ void connect_async(const Glib::RefPtr<SocketAddress>& address,
+ const SlotAsyncReady& slot);
-_WRAP_PROPERTY("socket", Glib::RefPtr<Socket>)
+ _WRAP_METHOD(bool connect_finish(const Glib::RefPtr<AsyncResult>& result), g_socket_connection_connect_finish, errthrow)
+
+ _WRAP_METHOD(bool is_connected() const, g_socket_connection_is_connected)
+
+ _WRAP_METHOD(Glib::RefPtr<Socket> get_socket(), g_socket_connection_get_socket, refreturn)
+ _WRAP_METHOD(Glib::RefPtr<const Socket> get_socket() const, g_socket_connection_get_socket, constversion, refreturn)
+ _WRAP_METHOD(Glib::RefPtr<SocketAddress> get_local_address(), g_socket_connection_get_local_address, errthrow)
+ _WRAP_METHOD(Glib::RefPtr<const SocketAddress> get_local_address() const, g_socket_connection_get_local_address, constversion, errthrow)
+ _WRAP_METHOD(Glib::RefPtr<SocketAddress> get_remote_address(), g_socket_connection_get_remote_address, errthrow)
+ _WRAP_METHOD(Glib::RefPtr<const SocketAddress> get_remote_address() const, g_socket_connection_get_remote_address, constversion, errthrow)
+
+ // Not sure that registering new GTypes with the factory is useful for the C++ binding
+ //_WRAP_METHOD(void factory_register_type(GType g_type, GSocketFamily family, GSocketType type, gint protocol);
+ //_WRAP_METHOD(GType factory_lookup_type(GSocketFamily family, GSocketType type, gint protocol_id);
+
+ _WRAP_METHOD(static Glib::RefPtr<SocketConnection> create(const Glib::RefPtr<Socket>& socket), g_socket_connection_factory_create_connection)
+
+ _WRAP_PROPERTY("socket", Glib::RefPtr<Socket>)
};
} // namespace Gio