From fd2e0c0427643a5575f082d64c76c46c35784a72 Mon Sep 17 00:00:00 2001 From: Thad House Date: Thu, 7 Nov 2024 14:19:37 -0800 Subject: [PATCH] [ntcoreffi] Switch ntcoreffi DLM to WPI_String (#7359) We forgot to do this originally. --- ntcoreffi/build.gradle | 1 + ntcoreffi/src/main/native/cpp/DataLogManager.cpp | 16 ++++++++++------ .../src/main/native/include/DataLogManager.h | 8 ++++---- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/ntcoreffi/build.gradle b/ntcoreffi/build.gradle index c642afe734..d20d18b496 100644 --- a/ntcoreffi/build.gradle +++ b/ntcoreffi/build.gradle @@ -119,6 +119,7 @@ task cppHeadersZip(type: Zip) { } } +build.dependsOn cppHeadersZip addTaskToCopyAllOutputs(cppHeadersZip) model { diff --git a/ntcoreffi/src/main/native/cpp/DataLogManager.cpp b/ntcoreffi/src/main/native/cpp/DataLogManager.cpp index 462069f382..3a5be2ebb4 100644 --- a/ntcoreffi/src/main/native/cpp/DataLogManager.cpp +++ b/ntcoreffi/src/main/native/cpp/DataLogManager.cpp @@ -551,24 +551,28 @@ void DataLogManager::SignalNewDSDataOccur() { extern "C" { -void DLM_Start(const char* dir, const char* filename, double period) { - DataLogManager::Start(dir, filename, period); +void DLM_Start(const struct WPI_String* dir, const struct WPI_String* filename, + double period) { + DataLogManager::Start(wpi::to_string_view(dir), wpi::to_string_view(filename), + period); } void DLM_Stop(void) { DataLogManager::Stop(); } -void DLM_Log(const char* message) { - DataLogManager::Log(message); +void DLM_Log(const struct WPI_String* message) { + DataLogManager::Log(wpi::to_string_view(message)); } WPI_DataLog* DLM_GetLog(void) { return reinterpret_cast(&DataLogManager::GetLog()); } -const char* DLM_GetLogDir(void) { - return DataLogManager::GetLogDir().data(); +void DLM_GetLogDir(struct WPI_String* value) { + auto logDir = DataLogManager::GetLogDir(); + char* write = WPI_AllocateString(value, logDir.size()); + std::memcpy(write, logDir.data(), logDir.size()); } void DLM_LogNetworkTables(int enabled) { diff --git a/ntcoreffi/src/main/native/include/DataLogManager.h b/ntcoreffi/src/main/native/include/DataLogManager.h index c0bd6e2b07..442afe29de 100644 --- a/ntcoreffi/src/main/native/include/DataLogManager.h +++ b/ntcoreffi/src/main/native/include/DataLogManager.h @@ -118,7 +118,7 @@ struct WPI_DataLog; * @param period time between automatic flushes to disk, in seconds; * this is a time/storage tradeoff */ -void DLM_Start(const char* dir, const char* filename, double period); +void DLM_Start(const struct WPI_String* dir, const struct WPI_String* filename, double period); /** * Stop data log manager. @@ -131,7 +131,7 @@ void DLM_Stop(void); * * @param message message */ -void DLM_Log(const char* message); +void DLM_Log(const struct WPI_String* message); /** * Get the managed data log (for custom logging). Starts the data log manager @@ -144,9 +144,9 @@ WPI_DataLog* DLM_GetLog(void); /** * Get the log directory. * - * @return log directory + * @param value returned value (output) */ -const char* DLM_GetLogDir(void); +void DLM_GetLogDir(struct WPI_String* value); /** * Enable or disable logging of NetworkTables data. Note that unlike the