From c6577b1155669b1e3bb704c64f327947b8d747d3 Mon Sep 17 00:00:00 2001 From: Hayodea Hakol Date: Sat, 11 Jan 2025 06:40:43 -0400 Subject: [PATCH] Add stringifiers to SenseApi related classes --- hcore/include/senseApis/senseApiLib.h | 15 +++++++++++++++ hcore/include/senseApis/senseApiManager.h | 2 ++ hcore/senseApis/senseApiManager.cpp | 9 +++++++++ main.cpp | 2 ++ 4 files changed, 28 insertions(+) diff --git a/hcore/include/senseApis/senseApiLib.h b/hcore/include/senseApis/senseApiLib.h index 47cb233..abf075c 100644 --- a/hcore/include/senseApis/senseApiLib.h +++ b/hcore/include/senseApis/senseApiLib.h @@ -51,6 +51,15 @@ public: std::string name; // These are the implexors whose APIs this lib exports. std::vector exportedImplexorApis; + + std::string stringify() const { + std::string result = "Name: " + name + "\n"; + result += "Exported Implexor APIs:\n"; + for (const auto& api : exportedImplexorApis) { + result += " - " + api.name + "\n"; + } + return result; + } }; class SenseApiLib @@ -111,6 +120,12 @@ public: * descriptor. */ SenseApiDesc senseApiDesc; + + std::string stringify() const { + std::string result = "Library Path: " + libraryPath + "\n"; + result += "Sense API Descriptor: " + senseApiDesc.stringify() + "\n"; + return result; + } }; } // namespace sense_api diff --git a/hcore/include/senseApis/senseApiManager.h b/hcore/include/senseApis/senseApiManager.h index d8af54f..919b1a4 100644 --- a/hcore/include/senseApis/senseApiManager.h +++ b/hcore/include/senseApis/senseApiManager.h @@ -26,6 +26,8 @@ public: void unloadSenseApiLib(const std::string& libraryPath); void loadAllSenseApiLibsFromOptions(void); + std::string stringifyLibs() const; + private: SenseApiManager() = default; ~SenseApiManager() = default; diff --git a/hcore/senseApis/senseApiManager.cpp b/hcore/senseApis/senseApiManager.cpp index cc5b617..7a306e0 100644 --- a/hcore/senseApis/senseApiManager.cpp +++ b/hcore/senseApis/senseApiManager.cpp @@ -151,5 +151,14 @@ void SenseApiManager::loadAllSenseApiLibsFromOptions() } } +std::string SenseApiManager::stringifyLibs() const +{ + std::string result; + for (const auto& lib : senseApiLibs) { + result += lib->stringify() + "\n"; + } + return result; +} + } // namespace sense_api } // namespace hk diff --git a/main.cpp b/main.cpp index 9807879..6b325c7 100644 --- a/main.cpp +++ b/main.cpp @@ -90,6 +90,8 @@ static int initializeHarikoff(int argc, char **argv, char **envp) DeviceManager::getInstance().parseAllDeviceSpecs(); std::cout << DeviceManager::stringifyDeviceSpecs() << std::endl; sense_api::SenseApiManager::getInstance().loadAllSenseApiLibsFromOptions(); + std::cout << sense_api::SenseApiManager::getInstance().stringifyLibs() + << std::endl; /* Start the threads */ for (const auto& [id, componentThread]