diff options
author | José Alburquerque <jaalburqu@svn.gnome.org> | 2010-11-19 01:30:02 -0500 |
---|---|---|
committer | José Alburquerque <jaalburqu@svn.gnome.org> | 2010-11-19 01:33:36 -0500 |
commit | 2294de4884210fa4749587030645ac42b2b4fe88 (patch) | |
tree | 3c5ba6e009ee4b74d856d0899c50d74f2ffa535b /gio/src/dbusaddress.ccg | |
parent | 0239bb5eb006a26f751c3208a01132551d0f2282 (diff) | |
download | glibmm-2294de4884210fa4749587030645ac42b2b4fe88.tar.gz |
Gio::DBus::Address: Wrap the gio dbus address API in this namespace.
* gio/giomm.h:
* gio/src/dbusaddress.{ccg,hg}:
* gio/src/filelist.am: Add new sources and make sure they are built.
* gio/src/dbusconnection.hg:
* gio/src/dbuserror.hg: Typos.
Diffstat (limited to 'gio/src/dbusaddress.ccg')
-rw-r--r-- | gio/src/dbusaddress.ccg | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/gio/src/dbusaddress.ccg b/gio/src/dbusaddress.ccg new file mode 100644 index 00000000..529f7665 --- /dev/null +++ b/gio/src/dbusaddress.ccg @@ -0,0 +1,187 @@ +// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*- + +/* Copyright (C) 2010 The giomm Development Team + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include <gio/gio.h> +#include "slot_async.h" + +namespace Gio +{ + +namespace DBus +{ + +namespace Address +{ + +bool is_address(const Glib::ustring& string) +{ + return static_cast<bool>(g_dbus_is_address(string.c_str())); +} + +bool is_supported(const Glib::ustring& address) +{ + GError* gerror = 0; + bool const result = g_dbus_is_supported_address(address.c_str(), &gerror); + if(gerror) + ::Glib::Error::throw_exception(gerror); + return result; +} + +void get_stream(const Glib::ustring& address, const SlotAsyncReady slot, + const Glib::RefPtr<Cancellable>& cancellable) +{ + SlotAsyncReady* slot_copy = new SlotAsyncReady(slot); + g_dbus_address_get_stream(address.c_str(), Glib::unwrap(cancellable), + &SignalProxy_async_callback, slot_copy); +} + +void get_stream(const Glib::ustring& address, const SlotAsyncReady slot) +{ + SlotAsyncReady* slot_copy = new SlotAsyncReady(slot); + g_dbus_address_get_stream(address.c_str(), 0, &SignalProxy_async_callback, + slot_copy); +} + +Glib::RefPtr<IOStream> get_stream_finish(const Glib::RefPtr<AsyncResult>& res, + Glib::ustring& out_guid) +{ + GError* gerror = 0; + gchar* g_out_guid = 0; + + Glib::RefPtr<IOStream> result = + Glib::wrap(g_dbus_address_get_stream_finish(Glib::unwrap(res), + &g_out_guid, &gerror)); + + if(gerror) + ::Glib::Error::throw_exception(gerror); + + out_guid = g_out_guid; + return result; +} + +Glib::RefPtr<IOStream> get_stream_finish(const Glib::RefPtr<AsyncResult>& res) +{ + GError* gerror = 0; + + Glib::RefPtr<IOStream> result = + Glib::wrap(g_dbus_address_get_stream_finish(Glib::unwrap(res), 0, + &gerror)); + + if(gerror) + ::Glib::Error::throw_exception(gerror); + + return result; +} + +Glib::RefPtr<IOStream> get_stream_sync(const Glib::ustring& address, + const Glib::RefPtr<Cancellable>& cancellable, Glib::ustring& out_guid) +{ + GError* gerror = 0; + gchar* g_out_guid = 0; + + Glib::RefPtr<IOStream> result = + Glib::wrap(g_dbus_address_get_stream_sync(address.c_str(), + &g_out_guid, Glib::unwrap(cancellable), &gerror)); + + if(gerror) + ::Glib::Error::throw_exception(gerror); + + out_guid = g_out_guid; + return result; +} + +Glib::RefPtr<IOStream> get_stream_sync(const Glib::ustring& address, + Glib::ustring& out_guid) +{ + GError* gerror = 0; + gchar* g_out_guid = 0; + + Glib::RefPtr<IOStream> result = + Glib::wrap(g_dbus_address_get_stream_sync(address.c_str(), + &g_out_guid, 0, &gerror)); + + if(gerror) + ::Glib::Error::throw_exception(gerror); + + out_guid = g_out_guid; + return result; +} + +Glib::RefPtr<IOStream> get_stream_sync(const Glib::ustring& address, + const Glib::RefPtr<Cancellable>& cancellable) +{ + GError* gerror = 0; + + Glib::RefPtr<IOStream> result = + Glib::wrap(g_dbus_address_get_stream_sync(address.c_str(), 0, + Glib::unwrap(cancellable), &gerror)); + + if(gerror) + ::Glib::Error::throw_exception(gerror); + + return result; +} + +Glib::RefPtr<IOStream> get_stream_sync(const Glib::ustring& address) +{ + GError* gerror = 0; + + Glib::RefPtr<IOStream> result = + Glib::wrap(g_dbus_address_get_stream_sync(address.c_str(), 0, 0, &gerror)); + + if(gerror) + ::Glib::Error::throw_exception(gerror); + + return result; +} + +Glib::ustring get_for_bus_sync(BusType bus_type, + const Glib::RefPtr<Cancellable>& cancellable) +{ + GError* gerror = 0; + + Glib::ustring result = + Glib::ustring(g_dbus_address_get_for_bus_sync( + static_cast<GBusType>(bus_type), Glib::unwrap(cancellable), &gerror)); + + if(gerror) + ::Glib::Error::throw_exception(gerror); + + return result; +} + +Glib::ustring get_for_bus_sync(BusType bus_type) +{ + GError* gerror = 0; + + Glib::ustring result = + Glib::ustring(g_dbus_address_get_for_bus_sync( + static_cast<GBusType>(bus_type), 0, &gerror)); + + if(gerror) + ::Glib::Error::throw_exception(gerror); + + return result; +} + +} + +} // namespace DBus + +} // namespace Gio |