obj factory is singleton now

This commit is contained in:
2021-06-05 20:16:57 +02:00
parent dfc2e6bf67
commit 0747db41ff
11 changed files with 32 additions and 30 deletions

View File

@ -1,6 +1,5 @@
#include "InitMission.h"
#include "OBSWConfig.h"
#include "objects/systemObjectList.h"
#include "pollingsequence/pollingSequenceFactory.h"
@ -8,7 +7,7 @@
#include "mission/assemblies/TestAssembly.h"
#include "fsfw/returnvalues/HasReturnvaluesIF.h"
#include "fsfw/serviceinterface/ServiceInterfaceStream.h"
#include "fsfw/serviceinterface/ServiceInterface.h"
#include "fsfw/tasks/FixedTimeslotTaskIF.h"
#include "fsfw/tasks/PeriodicTaskIF.h"
#include "fsfw/tasks/TaskFactory.h"
@ -195,7 +194,7 @@ void InitMission::createTasks() {
#endif
#if OBSW_ADD_DEVICE_HANDLER_DEMO
HasModesIF* assembly = objectManager->get<HasModesIF>(objects::TEST_ASSEMBLY);
HasModesIF* assembly = ObjectManager::instance()->get<HasModesIF>(objects::TEST_ASSEMBLY);
if (assembly == nullptr){
return;
}

View File

@ -17,7 +17,7 @@
#include <fsfw/tmtcservices/CommandingServiceBase.h>
#include <fsfw/tmtcservices/PusServiceBase.h>
void ObjectFactory::produce() {
void ObjectFactory::produce(void* args) {
/* Located inside GenericFactory source file */
Factory::setStaticFrameworkObjectIds();

View File

@ -4,7 +4,7 @@
namespace ObjectFactory {
void setStatics();
void produce();
void produce(void* args);
};
#endif /* MISSION_CORE_OBJECTFACTORY_H_ */

View File

@ -33,8 +33,6 @@ ServiceInterfaceStream sif::warning("WARNING", true);
ServiceInterfaceStream sif::error("ERROR", true);
#endif
ObjectManagerIF *objectManager = nullptr;
void initTask(void *parameters);
/**
@ -70,8 +68,10 @@ void initTask(void *parameters) {
sif::printInfo("Creating objects..\n\r");
#endif
objectManager = new ObjectManager(ObjectFactory::produce);
objectManager->initialize();
ObjectManager* objManager = ObjectManager::instance();
objManager->setObjectFactoryFunction(ObjectFactory::produce, nullptr);
objManager->initialize();
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::info << "Creating tasks.." << std::endl;
#else