1973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko// Copyright 2014 The Chromium OS Authors. All rights reserved.
2973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko// Use of this source code is governed by a BSD-style license that can be
3973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko// found in the LICENSE file.
4973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko
59ed0cab99f18acb3570a35e9408f24355f6b8324Alex Vakulenko#include <brillo/dbus/dbus_method_invoker.h>
6973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko
79ed0cab99f18acb3570a35e9408f24355f6b8324Alex Vakulenkonamespace brillo {
8973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenkonamespace dbus_utils {
9973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko
10973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenkovoid TranslateErrorResponse(const AsyncErrorCallback& callback,
11973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko                            dbus::ErrorResponse* resp) {
12973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko  if (!callback.is_null()) {
13973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko    ErrorPtr error;
14973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko    dbus::MessageReader reader(resp);
15973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko    std::string error_message;
16973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko    if (ExtractMessageParameters(&reader, &error, &error_message))
17973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko      AddDBusError(&error, resp->GetErrorName(), error_message);
18973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko    callback.Run(error.get());
19973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko  }
20973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko}
21973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko
22973ba0a0bbe2edd7a9a43f59f0a3343bf7d30e1cAlex Vakulenko}  // namespace dbus_utils
239ed0cab99f18acb3570a35e9408f24355f6b8324Alex Vakulenko}  // namespace brillo
24