//===-- ProgressEvent.cpp ---------------------------------------*- C++ -*-===// // // 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 <atomic> #include <mutex> #include <optional> #include <queue> #include <thread> #include "DAPForward.h" #include "llvm/Support/JSON.h" namespace lldb_dap { enum ProgressEventType { … }; class ProgressEvent; ProgressEventReportCallback; class ProgressEvent { … }; /// Class that keeps the start event and its most recent update. /// It controls when the event should start being reported to the IDE. class ProgressEventManager { … }; ProgressEventManagerSP; /// Class that filters out progress event messages that shouldn't be reported /// to the IDE, because they are invalid, they carry no new information, or they /// don't last long enough. /// /// We need to limit the amount of events that are sent to the IDE, as they slow /// the render thread of the UI user, and they end up spamming the DAP /// connection, which also takes some processing time out of the IDE. class ProgressEventReporter { … }; } // namespace lldb_dap