From 20eb232bf50e6c6374112686bb2d167bea8f4212 Mon Sep 17 00:00:00 2001 From: Ulrich Mohr Date: Fri, 19 Aug 2022 12:16:40 +0200 Subject: [PATCH] added access to objectlist and a produce function to ObjectManager --- src/fsfw/objectmanager/ObjectManager.cpp | 10 +++++++++- src/fsfw/objectmanager/ObjectManager.h | 2 ++ src/fsfw/objectmanager/ObjectManagerIF.h | 4 ++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/fsfw/objectmanager/ObjectManager.cpp b/src/fsfw/objectmanager/ObjectManager.cpp index 2017938a..f82a6a9a 100644 --- a/src/fsfw/objectmanager/ObjectManager.cpp +++ b/src/fsfw/objectmanager/ObjectManager.cpp @@ -78,7 +78,7 @@ SystemObjectIF* ObjectManager::getSystemObject(object_id_t id) { } } -void ObjectManager::initialize() { +void ObjectManager::produce() { if (objectFactoryFunction == nullptr) { #if FSFW_CPP_OSTREAM_ENABLED == 1 sif::error << "ObjectManager::initialize: Passed produceObjects " @@ -90,6 +90,10 @@ void ObjectManager::initialize() { return; } objectFactoryFunction(factoryArgs); +} + +void ObjectManager::initialize() { + produce(); ReturnValue_t result = RETURN_FAILED; uint32_t errorCount = 0; for (auto const& it : objectList) { @@ -140,3 +144,7 @@ void ObjectManager::printList() { } #endif } + +const std::map * ObjectManager::getObjectList(){ + return &objectList; +} diff --git a/src/fsfw/objectmanager/ObjectManager.h b/src/fsfw/objectmanager/ObjectManager.h index 50e4af00..2bdcfc28 100644 --- a/src/fsfw/objectmanager/ObjectManager.h +++ b/src/fsfw/objectmanager/ObjectManager.h @@ -42,7 +42,9 @@ class ObjectManager : public ObjectManagerIF { ReturnValue_t insert(object_id_t id, SystemObjectIF* object) override; ReturnValue_t remove(object_id_t id) override; void initialize() override; + void produce() override; void printList() override; + const std::map * getObjectList() override; protected: SystemObjectIF* getSystemObject(object_id_t id) override; diff --git a/src/fsfw/objectmanager/ObjectManagerIF.h b/src/fsfw/objectmanager/ObjectManagerIF.h index 32a0942f..e4347673 100644 --- a/src/fsfw/objectmanager/ObjectManagerIF.h +++ b/src/fsfw/objectmanager/ObjectManagerIF.h @@ -1,6 +1,8 @@ #ifndef FSFW_OBJECTMANAGER_OBJECTMANAGERIF_H_ #define FSFW_OBJECTMANAGER_OBJECTMANAGERIF_H_ +#include + #include "../returnvalues/HasReturnvaluesIF.h" #include "../serviceinterface/ServiceInterface.h" #include "SystemObjectIF.h" @@ -58,12 +60,14 @@ class ObjectManagerIF : public HasReturnvaluesIF { * @li RETURN_OK in case the object was successfully removed */ virtual ReturnValue_t remove(object_id_t id) = 0; + virtual void produce() = 0; virtual void initialize() = 0; /** * @brief This is a debug function, that prints the current content of the * object list. */ virtual void printList() = 0; + virtual const std::map* getObjectList() = 0; }; #endif /* OBJECTMANAGERIF_H_ */