summaryrefslogtreecommitdiff
path: root/gio/src/dbusconnection.ccg
diff options
context:
space:
mode:
authorMurray Cumming <murrayc@murrayc.com>2011-03-25 10:29:03 +0100
committerMurray Cumming <murrayc@murrayc.com>2011-03-25 10:29:03 +0100
commit19a97d1dec0068421d2c2a1478c53419d26a4132 (patch)
tree2a176941e1369d5401cd4b414d10a8d90abb29b0 /gio/src/dbusconnection.ccg
parent98f6dce0e2fb23221f1490fa5f4a13bd1c349145 (diff)
downloadglibmm-19a97d1dec0068421d2c2a1478c53419d26a4132.tar.gz
Gio::DBus: Use VariantContainerBase for tuple Variants.
* gio/src/dbusconnection.[hg|ccg]: * gio/src/dbusproxy.ccg.[hg|ccg]: call_sync(), call(), call_finish(): Use VariantContainerBase, instead of VariantBase, for GVariants that are documented as being tuples. Because the type is known we can also use it as a simple return type instead of an output parameter. * tools/m4/convert_gio.m4: Added a necessary conversion. * examples/dbus/peer.cc: * examples/dbus/userbus.cc: Adapted. These already correctly assumed that the type should be VariantContainerBase.
Diffstat (limited to 'gio/src/dbusconnection.ccg')
-rw-r--r--gio/src/dbusconnection.ccg35
1 files changed, 10 insertions, 25 deletions
diff --git a/gio/src/dbusconnection.ccg b/gio/src/dbusconnection.ccg
index 631eb559..273647f7 100644
--- a/gio/src/dbusconnection.ccg
+++ b/gio/src/dbusconnection.ccg
@@ -42,7 +42,7 @@ static void DBusConnection_Signal_giomm_callback(GDBusConnection* connection,
{
(*the_slot)(Glib::wrap(connection, true), (sender_name ? sender_name : ""),
(object_path ? object_path : ""), (interface_name ? interface_name : ""),
- (signal_name ? signal_name : ""), Glib::VariantBase(parameters, true));
+ (signal_name ? signal_name : ""), Glib::VariantContainerBase(parameters, true));
}
catch(...)
{
@@ -652,7 +652,7 @@ void Connection::call(
const Glib::ustring& object_path,
const Glib::ustring& interface_name,
const Glib::ustring& method_name,
- const Glib::VariantBase& parameters,
+ const Glib::VariantContainerBase& parameters,
const SlotAsyncReady& slot,
const Glib::RefPtr<Cancellable>& cancellable,
const Glib::ustring& bus_name,
@@ -678,7 +678,7 @@ void Connection::call(
const Glib::ustring& object_path,
const Glib::ustring& interface_name,
const Glib::ustring& method_name,
- const Glib::VariantBase& parameters,
+ const Glib::VariantContainerBase& parameters,
const SlotAsyncReady& slot,
const Glib::ustring& bus_name,
int timeout_msec,
@@ -698,25 +698,11 @@ void Connection::call(
&SignalProxy_async_callback, slot_copy);
}
-void Connection::call_finish(
- Glib::VariantBase& output,
- const Glib::RefPtr<AsyncResult>& res
-)
-{
- GError* gerror = 0;
- GVariant* const gvariant =
- g_dbus_connection_call_finish(gobj(), Glib::unwrap(res), &gerror);
- if(gerror)
- ::Glib::Error::throw_exception(gerror);
- output.init(gvariant); // No need for extra ref.
-}
-
-void Connection::call_sync(
- Glib::VariantBase& output,
+Glib::VariantContainerBase Connection::call_sync(
const Glib::ustring& object_path,
const Glib::ustring& interface_name,
const Glib::ustring& method_name,
- const Glib::VariantBase& parameters,
+ const Glib::VariantContainerBase& parameters,
const Glib::RefPtr<Cancellable>& cancellable,
const Glib::ustring& bus_name,
int timeout_msec,
@@ -736,16 +722,15 @@ void Connection::call_sync(
if(gerror)
::Glib::Error::throw_exception(gerror);
- output.init(gvariant); // No need to take extra reference.
+ return Glib::VariantContainerBase(gvariant, false); //Dont' take an extra reference.
}
// Non-cancellable version.
-void Connection::call_sync(
- Glib::VariantBase& output,
+Glib::VariantContainerBase Connection::call_sync(
const Glib::ustring& object_path,
const Glib::ustring& interface_name,
const Glib::ustring& method_name,
- const Glib::VariantBase& parameters,
+ const Glib::VariantContainerBase& parameters,
const Glib::ustring& bus_name,
int timeout_msec,
CallFlags flags,
@@ -763,7 +748,7 @@ void Connection::call_sync(
if(gerror)
::Glib::Error::throw_exception(gerror);
- output.init(gvariant); // No need to take extra reference.
+ return Glib::VariantContainerBase(gvariant, false); //Dont' take an extra reference.
}
void Connection::emit_signal(
@@ -771,7 +756,7 @@ void Connection::emit_signal(
const Glib::ustring& interface_name,
const Glib::ustring& signal_name,
const Glib::ustring& destination_bus_name,
- const Glib::VariantBase& parameters
+ const Glib::VariantContainerBase& parameters
)
{
GError* gerror = 0;