blob: c6c1d285763996737ad627638a3ae4ff857a295d [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef LIBBRILLO_BRILLO_DBUS_DBUS_PROXY_UTIL_H_
#define LIBBRILLO_BRILLO_DBUS_DBUS_PROXY_UTIL_H_
#include <memory>
#include <string>
#include <tuple>
#include <utility>
#include <brillo/brillo_export.h>
#include <dbus/bus.h>
#include <dbus/exported_object.h>
#include <dbus/message.h>
#include <dbus/object_proxy.h>
namespace brillo {
namespace dbus_utils {
// This function calls a dbus method, and gets the response synchronously. It
// can be called from any thread, including the origin thread and dbus thread.
BRILLO_EXPORT std::unique_ptr<dbus::Response> CallDBusMethod(
scoped_refptr<dbus::Bus> bus,
dbus::ObjectProxy* proxy,
dbus::MethodCall* method_call,
int timeout_ms);
BRILLO_EXPORT std::unique_ptr<dbus::Response> CallDBusMethodWithErrorResponse(
scoped_refptr<dbus::Bus> bus,
dbus::ObjectProxy* proxy,
dbus::MethodCall* method_call,
int timeout_ms,
dbus::ScopedDBusError* error);
} // namespace dbus_utils
} // namespace brillo
#endif // LIBBRILLO_BRILLO_DBUS_DBUS_PROXY_UTIL_H_