================ @@ -119,6 +120,32 @@ class Progress { bool m_complete = false; }; +/// A class used to group progress reports by category. This is done by using a +/// map that maintains a refcount of each category of progress reports that have +/// come in. Keeping track of progress reports this way will be done if a +/// debugger is listening to the eBroadcastBitProgressByCategory broadcast bit. +class ProgressManager { +public: + ProgressManager(); + ~ProgressManager(); + + static void Initialize(); + static void Terminate(); + // Control the refcount of the progress report category as needed + void Increment(std::string); + void Decrement(std::string); + + // Public accessor for the class instance + static ProgressManager &Instance(); + +private: + // Manage the class instance internally using a std::optional + static std::optional<ProgressManager> &InstanceImpl(); + + llvm::StringMap<uint64_t> m_progress_map; ---------------- clayborg wrote:
maybe `m_category_map`? https://github.com/llvm/llvm-project/pull/81319 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits