M module-services/service-antenna/ServiceAntenna.cpp => module-services/service-antenna/ServiceAntenna.cpp +1 -6
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <AntennaMessage.hpp>
@@ 148,11 148,6 @@ sys::ReturnCodes ServiceAntenna::DeinitHandler()
return sys::ReturnCodes::Success;
}
-void ServiceAntenna::ProcessCloseReason(sys::CloseReason closeReason)
-{
- sendCloseReadyMessage(this);
-}
-
sys::ReturnCodes ServiceAntenna::SwitchPowerModeHandler(const sys::ServicePowerMode mode)
{
LOG_FATAL("[ServiceEvtMgr] PowerModeHandler: %s", c_str(mode));
M module-services/service-antenna/include/service-antenna/ServiceAntenna.hpp => module-services/service-antenna/include/service-antenna/ServiceAntenna.hpp +1 -3
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 77,8 77,6 @@ class ServiceAntenna : public sys::Service
sys::ReturnCodes DeinitHandler() override;
- void ProcessCloseReason(sys::CloseReason closeReason) override;
-
sys::ReturnCodes SwitchPowerModeHandler(const sys::ServicePowerMode mode) override final;
void storeCurrentState(void);
M module-services/service-appmgr/model/ApplicationManagerCommon.cpp => module-services/service-appmgr/model/ApplicationManagerCommon.cpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "ApplicationManagerCommon.hpp"
@@ 169,7 169,6 @@ namespace app::manager
break;
}
handleActionRequest(&act);
- sendCloseReadyMessage(this);
}
auto ApplicationManagerCommon::DataReceivedHandler([[maybe_unused]] sys::DataMessage *msgl,
M module-services/service-audio/ServiceAudio.cpp => module-services/service-audio/ServiceAudio.cpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <AudioMessage.hpp>
@@ 165,7 165,6 @@ void ServiceAudio::ProcessCloseReason(sys::CloseReason closeReason)
const auto activeInput = activeInputOpt.value();
activeInput->audio->Stop();
}
- sendCloseReadyMessage(this);
}
std::optional<std::string> ServiceAudio::AudioServicesCallback(const sys::Message *msg)
M module-services/service-bluetooth/ServiceBluetooth.cpp => module-services/service-bluetooth/ServiceBluetooth.cpp +3 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "service-bluetooth/ServiceBluetooth.hpp"
@@ 129,7 129,8 @@ sys::ReturnCodes ServiceBluetooth::DeinitHandler()
void ServiceBluetooth::ProcessCloseReason(sys::CloseReason closeReason)
{
- sendCloseReadyMessage(this);
+ sendWorkerCommand(bluetooth::Command(bluetooth::Command::Type::DisconnectAudio));
+ sendWorkerCommand(bluetooth::Command(bluetooth::Command::Type::PowerOff));
}
sys::MessagePointer ServiceBluetooth::DataReceivedHandler([[maybe_unused]] sys::DataMessage *msg,
M module-services/service-cellular/ServiceCellular.cpp => module-services/service-cellular/ServiceCellular.cpp +2 -4
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "endpoints/developerMode/event/ATRequest.hpp"
@@ 266,9 266,7 @@ sys::ReturnCodes ServiceCellular::DeinitHandler()
}
void ServiceCellular::ProcessCloseReason(sys::CloseReason closeReason)
-{
- sendCloseReadyMessage(this);
-}
+{}
sys::ReturnCodes ServiceCellular::SwitchPowerModeHandler(const sys::ServicePowerMode mode)
{
M module-services/service-db/ServiceDBCommon.cpp => module-services/service-db/ServiceDBCommon.cpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <service-db/DBNotificationMessage.hpp>
@@ 72,7 72,6 @@ void ServiceDBCommon::ProcessCloseReason(sys::CloseReason closeReason)
}
factoryReset();
}
- sendCloseReadyMessage(this);
}
void ServiceDBCommon::factoryReset() const
M module-services/service-desktop/ServiceDesktop.cpp => module-services/service-desktop/ServiceDesktop.cpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <service-appmgr/messages/DOMRequest.hpp>
@@ 237,7 237,6 @@ void ServiceDesktop::ProcessCloseReason(sys::CloseReason closeReason)
{
LOG_DEBUG(".. close with reason ..");
DeinitHandler();
- sendCloseReadyMessage(this);
}
sys::ReturnCodes ServiceDesktop::SwitchPowerModeHandler(const sys::ServicePowerMode mode)
M module-services/service-eink/ServiceEink.cpp => module-services/service-eink/ServiceEink.cpp +1 -6
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <board.h>
@@ 106,11 106,6 @@ namespace service::eink
return sys::ReturnCodes::Success;
}
- void ServiceEink::ProcessCloseReason(sys::CloseReason closeReason)
- {
- sendCloseReadyMessage(this);
- }
-
sys::ReturnCodes ServiceEink::SwitchPowerModeHandler(const sys::ServicePowerMode mode)
{
LOG_INFO("PowerModeHandler: %s", c_str(mode));
M module-services/service-eink/ServiceEink.hpp => module-services/service-eink/ServiceEink.hpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 38,7 38,6 @@ namespace service::eink
sys::MessagePointer DataReceivedHandler(sys::DataMessage *msgl, sys::ResponseMessage *response) override;
sys::ReturnCodes InitHandler() override;
sys::ReturnCodes DeinitHandler() override;
- void ProcessCloseReason(sys::CloseReason closeReason) override;
sys::ReturnCodes SwitchPowerModeHandler(const sys::ServicePowerMode mode) override;
private:
M module-services/service-evtmgr/EventManager.cpp => module-services/service-evtmgr/EventManager.cpp +3 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "service-evtmgr/BatteryMessages.hpp"
@@ 258,8 258,9 @@ sys::ReturnCodes EventManagerCommon::DeinitHandler()
return sys::ReturnCodes::Success;
}
-void EventManagerCommon::ProcessCloseReason(sys::CloseReason closeReason)
+void EventManagerCommon::ProcessCloseReasonHandler(sys::CloseReason closeReason)
{
+ ProcessCloseReason(closeReason);
sendCloseReadyMessage(this);
}
M module-services/service-evtmgr/service-evtmgr/EventManagerCommon.hpp => module-services/service-evtmgr/service-evtmgr/EventManagerCommon.hpp +2 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 48,7 48,7 @@ class EventManagerCommon : public sys::Service
sys::ReturnCodes DeinitHandler() override;
- void ProcessCloseReason(sys::CloseReason closeReason) override;
+ void ProcessCloseReasonHandler(sys::CloseReason closeReason) override;
sys::ReturnCodes SwitchPowerModeHandler(const sys::ServicePowerMode mode) override final;
M module-services/service-fileindexer/ServiceFileIndexer.cpp => module-services/service-fileindexer/ServiceFileIndexer.cpp +4 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <service-fileindexer/ServiceFileIndexer.hpp>
@@ 60,6 60,8 @@ namespace service
if (closeReason == sys::CloseReason::FactoryReset) {
mStartupIndexer.reset();
}
- sendCloseReadyMessage(this);
+ else {
+ mStartupIndexer.stop();
+ }
}
} // namespace service
M module-services/service-fileindexer/StartupIndexer.cpp => module-services/service-fileindexer/StartupIndexer.cpp +7 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "Common.hpp"
@@ 99,10 99,15 @@ namespace service::detail
}
}
- void StartupIndexer::reset()
+ void StartupIndexer::stop()
{
mForceStop = true;
mIdxTimer.stop();
+ }
+
+ void StartupIndexer::reset()
+ {
+ stop();
removeLockFile();
}
M module-services/service-fileindexer/include/service-fileindexer/StartupIndexer.hpp => module-services/service-fileindexer/include/service-fileindexer/StartupIndexer.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 19,6 19,7 @@ namespace service::detail
StartupIndexer &operator=(StartupIndexer) = delete;
auto start(std::shared_ptr<sys::Service> svc, std::string_view svc_name) -> void;
void reset();
+ void stop();
private:
// Process single entry
M module-services/service-time/ServiceTime.cpp => module-services/service-time/ServiceTime.cpp +1 -6
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "AlarmMessageHandler.hpp"
@@ 71,11 71,6 @@ namespace stm
return sys::ReturnCodes::Success;
}
- void ServiceTime::ProcessCloseReason(sys::CloseReason closeReason)
- {
- sendCloseReadyMessage(this);
- }
-
sys::ReturnCodes ServiceTime::SwitchPowerModeHandler(const sys::ServicePowerMode mode)
{
LOG_FATAL("[ServiceTime] PowerModeHandler: %s", c_str(mode));
M module-services/service-time/ServiceTime.hpp => module-services/service-time/ServiceTime.hpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 57,7 57,6 @@ namespace stm
sys::ReturnCodes InitHandler() override;
sys::ReturnCodes DeinitHandler() override;
- void ProcessCloseReason(sys::CloseReason closeReason) override;
sys::ReturnCodes SwitchPowerModeHandler(const sys::ServicePowerMode mode) override final;
sys::MessagePointer DataReceivedHandler(sys::DataMessage *msgl, sys::ResponseMessage *resp = nullptr) override;
M module-sys/Service/Service.cpp => module-sys/Service/Service.cpp +10 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <Service/Service.hpp>
@@ 207,6 207,14 @@ namespace sys
auto Service::ProcessCloseReason(CloseReason closeReason) -> void{};
+ auto Service::ProcessCloseReasonHandler(CloseReason closeReason) -> void
+ {
+ ProcessCloseReason(closeReason);
+ // to reject all messages except system ones
+ isReady = false;
+ sendCloseReadyMessage(this);
+ };
+
auto Service::TimerHandle(SystemMessage &message) -> ReturnCodes
{
auto timer_message = dynamic_cast<sys::TimerMessage *>(&message);
@@ 292,7 300,7 @@ namespace sys
}
break;
case SystemMessageType::ServiceCloseReason:
- service->ProcessCloseReason(static_cast<ServiceCloseReasonMessage *>(message)->getCloseReason());
+ service->ProcessCloseReasonHandler(static_cast<ServiceCloseReasonMessage *>(message)->getCloseReason());
break;
}
return std::make_shared<ResponseMessage>(ret);
M module-sys/Service/include/Service/Service.hpp => module-sys/Service/include/Service/Service.hpp +16 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 55,8 55,23 @@ namespace sys
*/
virtual ReturnCodes DeinitHandler() = 0;
+ /**
+ * @brief Pre close clean up service specific procedure.
+ * Should be implemented in derived class. Empty by default.
+ *
+ * Should not be called directly - part of strategy pattern
+ */
virtual auto ProcessCloseReason(CloseReason closeReason) -> void;
+ /**
+ * @brief Pre close clean up procedure.
+ * It calls ProcessCloseReason and disable all messages handling
+ * except system ones.
+ *
+ * Should be requested before full service closure.
+ */
+ virtual auto ProcessCloseReasonHandler(CloseReason closeReason) -> void;
+
virtual ReturnCodes SwitchPowerModeHandler(const ServicePowerMode mode) = 0;
/**
M products/BellHybrid/services/audio/ServiceAudio.cpp => products/BellHybrid/services/audio/ServiceAudio.cpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "ServiceAudio.hpp"
@@ 120,7 120,6 @@ namespace service
const auto activeInput = activeInputOpt.value();
activeInput->audio->Stop();
}
- sendCloseReadyMessage(this);
}
auto Audio::handleStart(const audio::Operation::Type opType,
const std::string &fileName,
M products/PurePhone/services/evtmgr/EventManager.cpp => products/PurePhone/services/evtmgr/EventManager.cpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <evtmgr/EventManager.hpp>
@@ 125,7 125,6 @@ void EventManager::toggleTorchColor()
void EventManager::ProcessCloseReason(sys::CloseReason closeReason)
{
bsp::torch::turn(bsp::torch::State::off);
- EventManagerCommon::ProcessCloseReason(closeReason);
}
sys::MessagePointer EventManager::DataReceivedHandler(sys::DataMessage *msgl, sys::ResponseMessage *resp)