chromium/chromeos/dbus/common/dbus_library_error.cc

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chromeos/dbus/common/dbus_library_error.h"

#include <dbus/dbus-protocol.h>

#include <map>
#include <string>

#include "base/no_destructor.h"

namespace chromeos {

DBusLibraryError DBusLibraryErrorFromString(
    const std::string& dbus_error_string) {
  static const base::NoDestructor<std::map<std::string, DBusLibraryError>>
      error_string_map({
          {DBUS_ERROR_NO_REPLY, DBusLibraryError::kNoReply},
          {DBUS_ERROR_TIMEOUT, DBusLibraryError::kTimeout},
      });

  auto it = error_string_map->find(dbus_error_string);
  return it != error_string_map->end() ? it->second
                                       : DBusLibraryError::kGenericError;
}

}  // namespace chromeos