================ @@ -59,11 +60,21 @@ struct LLDBBaseTelemetryInfo : public llvm::telemetry::TelemetryInfo { /// The base Telemetry manager instance in LLDB /// This class declares additional instrumentation points /// applicable to LLDB. -class TelemetryManager : public llvm::telemetry::Manager { +class TelemetryManager : public llvm::telemetry::Manager, + public PluginInterface { public: + llvm::Error preDispatch(llvm::telemetry::TelemetryInfo *entry) override; + + // Plugin interface + llvm::StringRef GetPluginName() override { return "TelemetryManager"; } + + static TelemetryManager *getInstance(); + +protected: TelemetryManager(std::unique_ptr<llvm::telemetry::Config> config); - llvm::Error preDispatch(llvm::telemetry::TelemetryInfo *entry) override; + static std::unique_ptr<TelemetryManager> g_instance; ---------------- labath wrote:
This one ought to be private since subclasses should go through `setInstance`. We could also delete the setter and have subclasses set the member directly, but I sort of like the setter approach more. https://github.com/llvm/llvm-project/pull/126588 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits