brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 26b1daa Raw
58 lines · c
1//===-- DAPError.h --------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_TOOLS_LLDB_DAP_DAPERROR_H10#define LLDB_TOOLS_LLDB_DAP_DAPERROR_H11 12#include "llvm/Support/Error.h"13#include <optional>14#include <string>15#include <system_error>16 17namespace lldb_dap {18 19/// An error that is reported as a DAP Error Message, which may be presented to20/// the user.21class DAPError : public llvm::ErrorInfo<DAPError> {22public:23  static char ID;24 25  DAPError(std::string message,26           std::error_code EC = llvm::inconvertibleErrorCode(),27           bool show_user = true, std::optional<std::string> url = std::nullopt,28           std::optional<std::string> url_label = std::nullopt);29 30  void log(llvm::raw_ostream &OS) const override;31  std::error_code convertToErrorCode() const override;32 33  const std::string &getMessage() const { return m_message; }34  bool getShowUser() const { return m_show_user; }35  const std::optional<std::string> &getURL() const { return m_url; }36  const std::optional<std::string> &getURLLabel() const { return m_url_label; }37 38private:39  std::string m_message;40  std::error_code m_ec;41  bool m_show_user;42  std::optional<std::string> m_url;43  std::optional<std::string> m_url_label;44};45 46/// An error that indicates the current request handler cannot execute because47/// the process is not stopped.48class NotStoppedError : public llvm::ErrorInfo<NotStoppedError> {49public:50  static char ID;51  void log(llvm::raw_ostream &OS) const override;52  std::error_code convertToErrorCode() const override;53};54 55} // namespace lldb_dap56 57#endif // LLDB_TOOLS_LLDB_DAP_DAPERROR_H58