| //===-- CancelRequestHandler.cpp ------------------------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "Handler/RequestHandler.h" |
| #include "Protocol/ProtocolRequests.h" |
| #include "llvm/Support/Error.h" |
| |
| using namespace llvm; |
| using namespace lldb_dap::protocol; |
| |
| namespace lldb_dap { |
| |
| /// The `cancel` request is used by the client in two situations: |
| /// |
| /// - to indicate that it is no longer interested in the result produced by a |
| /// specific request issued earlier |
| /// - to cancel a progress sequence. |
| /// |
| /// Clients should only call this request if the corresponding capability |
| /// `supportsCancelRequest` is true. |
| /// |
| /// This request has a hint characteristic: a debug adapter can only be |
| /// expected to make a 'best effort' in honoring this request but there are no |
| /// guarantees. |
| /// |
| /// The `cancel` request may return an error if it could not cancel |
| /// an operation but a client should refrain from presenting this error to end |
| /// users. |
| /// |
| /// The request that got cancelled still needs to send a response back. |
| /// This can either be a normal result (`success` attribute true) or an error |
| /// response (`success` attribute false and the `message` set to `cancelled`). |
| /// |
| /// Returning partial results from a cancelled request is possible but please |
| /// note that a client has no generic way for detecting that a response is |
| /// partial or not. |
| /// |
| /// The progress that got cancelled still needs to send a `progressEnd` event |
| /// back. |
| /// |
| /// A client cannot assume that progress just got cancelled after sending |
| /// the `cancel` request. |
| Error CancelRequestHandler::Run(const CancelArguments &arguments) const { |
| // Cancel support is built into the DAP::Loop handler for detecting |
| // cancellations of pending or inflight requests. |
| dap.ClearCancelRequest(arguments); |
| return Error::success(); |
| } |
| |
| } // namespace lldb_dap |