[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