// Copyright 2017 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 LOGIN_MANAGER_DBUS_UTIL_H_
#define LOGIN_MANAGER_DBUS_UTIL_H_

#include <string>

#include <base/logging.h>
#include <brillo/errors/error.h>

namespace login_manager {

// Creates a D-Bus error instance.
brillo::ErrorPtr CreateError(const std::string& code,
                             const std::string& message);

// Creates a D-Bus error, but also logs the message. Written as a macro
// to preserve file and line information.
#define DBUS_ERROR_WITH_LOG(log, code, message) \
  ({                                            \
    constexpr char __message[] = (message);     \
    LOG(log) << __message;                      \
    CreateError((code), __message);             \
  })

#define CREATE_ERROR_AND_LOG(code, message) \
  DBUS_ERROR_WITH_LOG(ERROR, (code), (message))
#define CREATE_WARNING_AND_LOG(code, message) \
  DBUS_ERROR_WITH_LOG(WARNING, (code), (message))

}  // namespace login_manager

#endif  // LOGIN_MANAGER_DBUS_UTIL_H_
