From d19044703b667f0531713fc6b902164f8d38c80e Mon Sep 17 00:00:00 2001 From: Matthieu Dorier Date: Thu, 25 Jan 2024 13:52:30 +0000 Subject: [PATCH] fixed undefined reference and added getNumGroups to SSGManager --- include/bedrock/SSGManager.hpp | 5 +++++ python/src/py-bedrock-server.cpp | 1 + src/SSGManager.cpp | 18 ++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/include/bedrock/SSGManager.hpp b/include/bedrock/SSGManager.hpp index 248e33f..e082a9b 100644 --- a/include/bedrock/SSGManager.hpp +++ b/include/bedrock/SSGManager.hpp @@ -113,6 +113,11 @@ class SSGManager { */ std::shared_ptr getGroup(uint32_t index) const; + /** + * @brief Get the number of groups. + */ + size_t getNumGroups() const; + /** * @brief Resolve an address starting with ssg:// * These address may be: diff --git a/python/src/py-bedrock-server.cpp b/python/src/py-bedrock-server.cpp index 0685987..bb0a3f4 100644 --- a/python/src/py-bedrock-server.cpp +++ b/python/src/py-bedrock-server.cpp @@ -134,6 +134,7 @@ PYBIND11_MODULE(pybedrock_server, m) { py11::class_ (m, "SSGManager") .def_property_readonly("config", &SSGManager::getCurrentConfig) + .def_property_readonly("num_groups", &SSGManager::getNumGroups) .def("get_group", [](const SSGManager& ssg, const std::string& name) { return ssg.getGroup(name); }, "name_a") diff --git a/src/SSGManager.cpp b/src/SSGManager.cpp index 881363e..885f35e 100644 --- a/src/SSGManager.cpp +++ b/src/SSGManager.cpp @@ -224,6 +224,24 @@ std::shared_ptr SSGManager::getGroup(const std::string& group_n #endif } +std::shared_ptr SSGManager::getGroup(uint32_t group_index) const { +#ifdef ENABLE_SSG + if(group_index >= self->m_ssg_groups.size()) return nullptr; + return self->m_ssg_groups[group_index]; +#else + (void)group_index; + return nullptr; +#endif +} + +size_t SSGManager::getNumGroups() const { +#ifdef ENABLE_SSG + return self->m_ssg_groups.size(); +#else + return 0; +#endif +} + std::shared_ptr SSGManager::createGroup(const std::string& name, const ssg_group_config_t* config,