blob: 44c101cadcd4e6fad4d2e50516de4c50d374dcd8 [file] [log] [blame]
// Copyright 2022 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 MODEMFWD_ERROR_H_
#define MODEMFWD_ERROR_H_
#include <map>
#include <string>
#include <utility>
#include <vector>
#include <brillo/errors/error.h>
namespace modemfwd {
extern const char kModemfwdErrorDomain[];
namespace error {
extern const char kDlcServiceReturnedErrorOnGetDlcState[];
extern const char kDlcServiceReturnedErrorOnGetExistingDlcs[];
extern const char kDlcServiceReturnedErrorOnInstall[];
extern const char kDlcServiceReturnedErrorOnPurge[];
extern const char kUnexpectedDlcState[];
extern const char kUnexpectedEmptyDlcId[];
extern const char kUnexpectedEmptyVariant[];
extern const char kTimeoutWaitingForInstalledState[];
extern const char kTimeoutWaitingForDlcService[];
extern const char kTimeoutWaitingForDlcInstall[];
}; // namespace error
class Error {
public:
// Returns a brillo error object with error code and error message set.
static brillo::ErrorPtr Create(const base::Location& location,
const std::string& code,
const std::string& msg);
// Add an error to the error chain.
static void AddTo(brillo::ErrorPtr* error,
const base::Location& location,
const std::string& code,
const std::string& message);
// Returns a brillo error object with error details extracted from a dbus
// error.
static brillo::ErrorPtr CreateFromDbusError(brillo::Error* dbus_error);
Error(const Error&) = delete;
Error& operator=(const Error&) = delete;
};
} // namespace modemfwd
#endif // MODEMFWD_ERROR_H_