diff options
Diffstat (limited to 'unity-shared')
| -rw-r--r-- | unity-shared/UpstartWrapper.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/unity-shared/UpstartWrapper.cpp b/unity-shared/UpstartWrapper.cpp index daf49e7dc..b5986b918 100644 --- a/unity-shared/UpstartWrapper.cpp +++ b/unity-shared/UpstartWrapper.cpp @@ -37,22 +37,23 @@ public: void Emit(std::string const& name); private: - glib::DBusProxy::Ptr upstart_proxy_; + bool test_mode_; }; UpstartWrapper::Impl::Impl(bool test_mode) + : test_mode_(test_mode) +{} + +void UpstartWrapper::Impl::Emit(std::string const& name) { auto flags = static_cast<GDBusProxyFlags>(G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS); - upstart_proxy_ = std::make_shared<unity::glib::DBusProxy>(test_mode ? "com.canonical.Unity.Test.Upstart" : DBUS_SERVICE_UPSTART, - DBUS_PATH_UPSTART, DBUS_INTERFACE_UPSTART, - G_BUS_TYPE_SESSION, flags); -} + auto proxy = std::make_shared<unity::glib::DBusProxy>(test_mode_ ? "com.canonical.Unity.Test.Upstart" : DBUS_SERVICE_UPSTART, + DBUS_PATH_UPSTART, DBUS_INTERFACE_UPSTART, + G_BUS_TYPE_SESSION, flags); -void UpstartWrapper::Impl::Emit(std::string const& name) -{ - upstart_proxy_->Call("EmitEvent", g_variant_new("(sasb)", name.c_str(), nullptr, 0)); + proxy->Call("EmitEvent", g_variant_new("(sasb)", name.c_str(), nullptr, 0), [proxy] (GVariant*) {}); } // |
