diff options
author | Daniel Elstner <danielk@openismus.com> | 2009-09-08 18:03:41 +0200 |
---|---|---|
committer | Daniel Elstner <danielk@openismus.com> | 2009-09-08 18:12:07 +0200 |
commit | a8154e320e5da74564c7f068baeea2c1ab03f949 (patch) | |
tree | 974eaf90fe16635d70dc4d144f2a656115bd8ce8 /gio/src/socket.ccg | |
parent | 9fb2a37f8989cdc965164052aecb095f66ddbebe (diff) | |
download | glibmm-a8154e320e5da74564c7f068baeea2c1ab03f949.tar.gz |
Implement Gio::Socket ctors using Gio::Initable
* gio/src/gio_vfuncs.defs: Add GInitableClass::init() vfunc.
* gio/src/initable.{ccg,hg} (Initable::init): Use _WRAP_METHOD().
(Initable::init_vfunc): Wrap GInitableClass::init() vfunc.
* gio/src/socket.{ccg,hg} (Socket::Socket): Wrap constructors
manually. Call Initable::init() from the constructor body.
(Socket::create), (Socket::create_from_fd): Forward to constructors.
* tools/m4/convert_gio.m4: Add conversion from GCancellable* to
const Glib::RefPtr<Cancellable>&.
Diffstat (limited to 'gio/src/socket.ccg')
-rw-r--r-- | gio/src/socket.ccg | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gio/src/socket.ccg b/gio/src/socket.ccg index 1850a92e..2a950027 100644 --- a/gio/src/socket.ccg +++ b/gio/src/socket.ccg @@ -24,6 +24,35 @@ namespace Gio { +Socket::Socket(SocketFamily family, SocketType type, SocketProtocol protocol, + const Glib::RefPtr<Cancellable>& cancellable) +: + _CONSTRUCT("family", int(family), "type", int(type), "protocol", int(protocol)) +{ + init(cancellable); +} + +Socket::Socket(int fd, const Glib::RefPtr<Cancellable>& cancellable) +: + _CONSTRUCT("fd", fd) +{ + init(cancellable); +} + +// static +Glib::RefPtr<Socket> Socket::create(SocketFamily family, SocketType type, SocketProtocol protocol, + const Glib::RefPtr<Cancellable>& cancellable) +{ + return Glib::RefPtr<Socket>(new Socket(family, type, protocol, cancellable)); +} + +// static +Glib::RefPtr<Socket> Socket::create_from_fd(int fd, const Glib::RefPtr<Cancellable>& cancellable) +{ + return Glib::RefPtr<Socket>(new Socket(fd, cancellable)); +} + + #ifdef GLIBMM_EXCEPTIONS_ENABLED void Socket::connect(const Glib::RefPtr<SocketAddress>& address) #else |