diff --git a/include/user/comparator.h b/include/user/comparator.h index 84222ff..3dfe1b5 100644 --- a/include/user/comparator.h +++ b/include/user/comparator.h @@ -3,6 +3,8 @@ #include #include +#include +#include #include #include @@ -43,6 +45,14 @@ struct ComparatorTypeId { return !(*this == other); } + + std::string stringify() const + { + std::ostringstream result; + result << std::hex << std::showbase; + result << "vendorId=" << vendorId << " typeId=" << typeId; + return result.str(); + } }; class Comparator diff --git a/include/user/comparatorApiDesc.h b/include/user/comparatorApiDesc.h index 7ae9049..924fcd1 100644 --- a/include/user/comparatorApiDesc.h +++ b/include/user/comparatorApiDesc.h @@ -32,6 +32,11 @@ public: return true; } + std::string stringify() const + { + return name + " (" + typeId.stringify() + ")"; + } + public: std::string name; ComparatorTypeId typeId; @@ -56,6 +61,20 @@ public: return true; } + std::string stringify() const + { + std::string result = "Name: " + name + "\n"; + result += "Exported Comparator Types:\n"; + for (size_t i = 0; i < exportedComparatorTypes.size(); ++i) + { + result += " - " + exportedComparatorTypes[i].stringify(); + if (i + 1 < exportedComparatorTypes.size()) { + result += "\n"; + } + } + return result; + } + public: std::string name; std::vector exportedComparatorTypes; diff --git a/include/user/senseApiDesc.h b/include/user/senseApiDesc.h index 3bad024..913f60d 100644 --- a/include/user/senseApiDesc.h +++ b/include/user/senseApiDesc.h @@ -90,8 +90,12 @@ public: { std::string result = "Name: " + name + "\n"; result += "Exported QualeIface APIs:\n"; - for (const auto& api : exportedQualeIfaceApis) { - result += " - " + api.name + "\n"; + for (size_t i = 0; i < exportedQualeIfaceApis.size(); ++i) + { + result += " - " + exportedQualeIfaceApis[i].name; + if (i + 1 < exportedQualeIfaceApis.size()) { + result += "\n"; + } } return result; } diff --git a/smocore/body/body.cpp b/smocore/body/body.cpp index 7aebe44..0be210d 100644 --- a/smocore/body/body.cpp +++ b/smocore/body/body.cpp @@ -50,8 +50,21 @@ BodyViralPostingInvoker Body::initializeCReq() */ mind.bodyComponentInitialized = true; - std::cout << stim_buff::StimBuffApiManager::getInstance().stringifyLibs() - << std::endl; + const std::string comparatorLibs = + comparator_lib::ComparatorApiManager::getInstance().stringifyLibs(); + const std::string stimBuffLibs = + stim_buff::StimBuffApiManager::getInstance().stringifyLibs(); + + if (!comparatorLibs.empty()) { + std::cout << comparatorLibs; + } + if (!comparatorLibs.empty() && !stimBuffLibs.empty()) { + std::cout << '\n'; + } + if (!stimBuffLibs.empty()) { + std::cout << stimBuffLibs; + } + std::cout << std::endl; if (OptionParser::getOptions().verbose) { diff --git a/smocore/comparatorLibs/comparatorApiManager.cpp b/smocore/comparatorLibs/comparatorApiManager.cpp index b05ae3e..04bad72 100644 --- a/smocore/comparatorLibs/comparatorApiManager.cpp +++ b/smocore/comparatorLibs/comparatorApiManager.cpp @@ -180,5 +180,18 @@ std::unique_ptr ComparatorApiManager::getNewComparatorInsta return comparatorType->getNewInstance(); } +std::string ComparatorApiManager::stringifyLibs() const +{ + std::string result; + for (const auto& lib : s.rsrc.libs) + { + if (!result.empty()) { + result += "\n"; + } + result += lib->stringify(); + } + return result; +} + } // namespace comparator_lib } // namespace smo diff --git a/smocore/include/comparatorLibs/comparatorApiManager.h b/smocore/include/comparatorLibs/comparatorApiManager.h index 616c83d..927297c 100644 --- a/smocore/include/comparatorLibs/comparatorApiManager.h +++ b/smocore/include/comparatorLibs/comparatorApiManager.h @@ -54,6 +54,8 @@ public: const std::shared_ptr& comparatorType); + std::string stringifyLibs() const; + public: sscl::SharedResourceGroup s; diff --git a/smocore/include/comparatorLibs/comparatorLib.h b/smocore/include/comparatorLibs/comparatorLib.h index 4545cfb..5a23377 100644 --- a/smocore/include/comparatorLibs/comparatorLib.h +++ b/smocore/include/comparatorLibs/comparatorLib.h @@ -42,6 +42,15 @@ public: comparatorLibDesc = desc; } + std::string stringify() const + { + std::string result = "Library Path: " + + loadedSharedLibrary->libraryPath + "\n"; + result += "Comparator Library Descriptor: " + + comparatorLibDesc.stringify(); + return result; + } + public: std::shared_ptr loadedSharedLibrary; diff --git a/smocore/include/loadableLib/loadableLibraryManager.h b/smocore/include/loadableLib/loadableLibraryManager.h index 08ee61d..9a9b77e 100644 --- a/smocore/include/loadableLib/loadableLibraryManager.h +++ b/smocore/include/loadableLib/loadableLibraryManager.h @@ -42,6 +42,16 @@ public: { return dlopenHandle.get(); } + + std::string stringify() const + { + std::string result = "Library Path: " + libraryPath + "\n"; + result += "Resolved Path: " + resolvedPath + "\n"; + result += "Is Being Destroyed: "; + result += (isBeingDestroyed.load() ? "true" : "false"); + result += "\n"; + return result; + } }; struct Resources diff --git a/smocore/include/stimBuffApis/stimBuffApiLib.h b/smocore/include/stimBuffApis/stimBuffApiLib.h index c04469f..708670c 100644 --- a/smocore/include/stimBuffApis/stimBuffApiLib.h +++ b/smocore/include/stimBuffApis/stimBuffApiLib.h @@ -76,7 +76,7 @@ public: { std::string result = "Library Path: " + loadedSharedLibrary->libraryPath + "\n"; - result += "Stim Buff API Descriptor: " + stimBuffApiDesc.stringify() + "\n"; + result += "Stim Buff API Descriptor: " + stimBuffApiDesc.stringify(); return result; } }; diff --git a/smocore/stimBuffApis/stimBuffApiManager.cpp b/smocore/stimBuffApis/stimBuffApiManager.cpp index 1759cfc..5bf5a18 100644 --- a/smocore/stimBuffApis/stimBuffApiManager.cpp +++ b/smocore/stimBuffApis/stimBuffApiManager.cpp @@ -245,8 +245,12 @@ void StimBuffApiManager::loadAllStimBuffApiLibsFromOptions(void) std::string StimBuffApiManager::stringifyLibs() const { std::string result; - for (const auto& lib : s.rsrc.libs) { - result += lib->stringify() + "\n"; + for (const auto& lib : s.rsrc.libs) + { + if (!result.empty()) { + result += "\n"; + } + result += lib->stringify(); } return result; }