[Lldb-commits] [lldb] Define TelemetryVendor plugin. (PR #126588)

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Wed Feb 12 02:25:09 PST 2025


================
@@ -0,0 +1,46 @@
+//===-- TelemetryVendor.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
+//
+//===----------------------------------------------------------------------===//
+#ifdef LLDB_BUILD_TELEMETRY
+
+#include "lldb/Core/TelemetryVendor.h"
+
+namespace lldb_private {
+
+llvm::StringRef TelemetryVendor::GetPluginName() {
+  return "UpstreamTelemetryVendor";
+}
+
+void TelemetryVendor::Initialize() {
+  // The default (upstream) impl will have telemetry disabled by default.
+  SetTelemetryConfig(std::make_shared<new llvm::telemetry::Config>(
+      /*enable_telemetry*/ false));
+  SetTelemetryManager(nullptr);
+}
+
+lldb::TelemetryConfigSP TelemetryVendor::GetTelemetryConfig() {
+  static lldb::TelemetryConfigSP g_config_sp;
+  return g_config_sp;
+}
+
+void TelemetryVendor::SetTelemetryConfig(
+    const lldb::TelemetryConfigSP &config) {
+  GetTelemetryCOnfig() = config;
+}
+
+lldb::TelemetryManagerSP TelemetryVendor::GetTelemetryManager() {
+  static TelemteryManagerSP g_telemetry_manager_sp;
+  return g_telemetry_manager_sp;
+}
+
+void SetTelemetryManager(const lldb::TelemetryManagerSP &manager_sp) {
+  GetTelemetryManager() = manager_sp;
----------------
labath wrote:

This doesn't actually work, as it assigns the copy of the pointer returned by `GetTelemetryManager`. Given that shared_ptr (and unique_ptr, which I think would be a better choice) are trivially constructible, the simplest way to implement this would be
```
static std::some_ptr<TelemetryManager> g_manager_sp;
void TelemetryVendor::SetTelemetryManager(std::some_ptr<TelemetryManager> manager_sp) { g_manager_sp = std::move(manager_sp); }
```

https://github.com/llvm/llvm-project/pull/126588


More information about the lldb-commits mailing list