From a7e369f7f954ac1f8ed41b5d5add2b5e58a780c0 Mon Sep 17 00:00:00 2001 From: Yuanyao Zhong Date: Thu, 19 Dec 2024 11:43:35 -0500 Subject: [PATCH 1/2] Remove default Event scheduler pointer in EventManagement --- src/app/EventManagement.cpp | 31 +++++++++---------------------- src/app/EventManagement.h | 6 ++++-- src/app/server/Server.cpp | 9 ++++++--- 3 files changed, 19 insertions(+), 27 deletions(-) diff --git a/src/app/EventManagement.cpp b/src/app/EventManagement.cpp index 1321475d3e8314..a62a4e7d2f6cae 100644 --- a/src/app/EventManagement.cpp +++ b/src/app/EventManagement.cpp @@ -80,26 +80,19 @@ struct CopyAndAdjustDeltaTimeContext EventLoadOutContext * mpContext = nullptr; }; -void EventManagement::Init(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers, +CHIP_ERROR EventManagement::Init(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers, CircularEventBuffer * apCircularEventBuffer, const LogStorageResources * const apLogStorageResources, MonotonicallyIncreasingCounter * apEventNumberCounter, System::Clock::Milliseconds64 aMonotonicStartupTime, EventReporter * apEventReporter) { + VerifyOrReturnError(apEventReporter != nullptr, CHIP_ERROR_INVALID_ARGUMENT); + VerifyOrReturnError(aNumBuffers != 0, CHIP_ERROR_INVALID_ARGUMENT); + VerifyOrReturnError(mState == EventManagementStates::Shutdown, CHIP_ERROR_INCORRECT_STATE); + CircularEventBuffer * current = nullptr; CircularEventBuffer * prev = nullptr; CircularEventBuffer * next = nullptr; - if (aNumBuffers == 0) - { - ChipLogError(EventLogging, "Invalid aNumBuffers"); - return; - } - - if (mState != EventManagementStates::Shutdown) - { - ChipLogError(EventLogging, "Invalid EventManagement State"); - return; - } mpExchangeMgr = apExchangeManager; for (uint32_t bufferIndex = 0; bufferIndex < aNumBuffers; bufferIndex++) @@ -125,15 +118,9 @@ void EventManagement::Init(Messaging::ExchangeManager * apExchangeManager, uint3 mMonotonicStartupTime = aMonotonicStartupTime; - // TODO(#36890): Should remove using the global instance and rely only on passed in variable. - if (apEventReporter == nullptr) - { - mpEventReporter = &InteractionModelEngine::GetInstance()->GetReportingEngine(); - } - else - { - mpEventReporter = apEventReporter; - } + mpEventReporter = apEventReporter; + + return CHIP_NO_ERROR; } CHIP_ERROR EventManagement::CopyToNextBuffer(CircularEventBuffer * apEventBuffer) @@ -355,7 +342,7 @@ void EventManagement::CreateEventManagement(Messaging::ExchangeManager * apExcha { sInstance.Init(apExchangeManager, aNumBuffers, apCircularEventBuffer, apLogStorageResources, apEventNumberCounter, - aMonotonicStartupTime); + aMonotonicStartupTime, &InteractionModelEngine::GetInstance()->GetReportingEngine()); } /** diff --git a/src/app/EventManagement.h b/src/app/EventManagement.h index f5687b586e02f4..eecf6f6e343f80 100644 --- a/src/app/EventManagement.h +++ b/src/app/EventManagement.h @@ -228,11 +228,13 @@ class EventManagement : public DataModel::EventsGenerator * * @param[in] apEventReporter Event reporter to be notified when events are generated. * + * @return CHIP_ERROR CHIP Error Code + * */ - void Init(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers, CircularEventBuffer * apCircularEventBuffer, + CHIP_ERROR Init(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers, CircularEventBuffer * apCircularEventBuffer, const LogStorageResources * const apLogStorageResources, MonotonicallyIncreasingCounter * apEventNumberCounter, - System::Clock::Milliseconds64 aMonotonicStartupTime, EventReporter * apEventReporter = nullptr); + System::Clock::Milliseconds64 aMonotonicStartupTime, EventReporter * apEventReporter); static EventManagement & GetInstance(); diff --git a/src/app/server/Server.cpp b/src/app/server/Server.cpp index 2e4a10a452fa9e..3ff2cb725002bb 100644 --- a/src/app/server/Server.cpp +++ b/src/app/server/Server.cpp @@ -284,9 +284,12 @@ CHIP_ERROR Server::Init(const ServerInitParams & initParams) { &sCritEventBuffer[0], sizeof(sCritEventBuffer), app::PriorityLevel::Critical } }; - app::EventManagement::GetInstance().Init(&mExchangeMgr, CHIP_NUM_EVENT_LOGGING_BUFFERS, &sLoggingBuffer[0], - &logStorageResources[0], &sGlobalEventIdCounter, - std::chrono::duration_cast(mInitTimestamp)); + err = app::EventManagement::GetInstance().Init(&mExchangeMgr, CHIP_NUM_EVENT_LOGGING_BUFFERS, &sLoggingBuffer[0], + &logStorageResources[0], &sGlobalEventIdCounter, + std::chrono::duration_cast(mInitTimestamp), + &app::InteractionModelEngine::GetInstance()->GetReportingEngine()); + + SuccessOrExit(err); } #endif // CHIP_CONFIG_ENABLE_SERVER_IM_EVENT From 4353715e175e0d8a671b2b788257393f7e5bd3ec Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Thu, 19 Dec 2024 16:50:09 +0000 Subject: [PATCH 2/2] Restyled by clang-format --- src/app/EventManagement.cpp | 7 ++++--- src/app/EventManagement.h | 8 ++++---- src/app/server/Server.cpp | 6 +++--- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/app/EventManagement.cpp b/src/app/EventManagement.cpp index a62a4e7d2f6cae..bcac83c2348957 100644 --- a/src/app/EventManagement.cpp +++ b/src/app/EventManagement.cpp @@ -81,9 +81,10 @@ struct CopyAndAdjustDeltaTimeContext }; CHIP_ERROR EventManagement::Init(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers, - CircularEventBuffer * apCircularEventBuffer, const LogStorageResources * const apLogStorageResources, - MonotonicallyIncreasingCounter * apEventNumberCounter, - System::Clock::Milliseconds64 aMonotonicStartupTime, EventReporter * apEventReporter) + CircularEventBuffer * apCircularEventBuffer, + const LogStorageResources * const apLogStorageResources, + MonotonicallyIncreasingCounter * apEventNumberCounter, + System::Clock::Milliseconds64 aMonotonicStartupTime, EventReporter * apEventReporter) { VerifyOrReturnError(apEventReporter != nullptr, CHIP_ERROR_INVALID_ARGUMENT); VerifyOrReturnError(aNumBuffers != 0, CHIP_ERROR_INVALID_ARGUMENT); diff --git a/src/app/EventManagement.h b/src/app/EventManagement.h index eecf6f6e343f80..81babec13df12f 100644 --- a/src/app/EventManagement.h +++ b/src/app/EventManagement.h @@ -231,10 +231,10 @@ class EventManagement : public DataModel::EventsGenerator * @return CHIP_ERROR CHIP Error Code * */ - CHIP_ERROR Init(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers, CircularEventBuffer * apCircularEventBuffer, - const LogStorageResources * const apLogStorageResources, - MonotonicallyIncreasingCounter * apEventNumberCounter, - System::Clock::Milliseconds64 aMonotonicStartupTime, EventReporter * apEventReporter); + CHIP_ERROR Init(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers, + CircularEventBuffer * apCircularEventBuffer, const LogStorageResources * const apLogStorageResources, + MonotonicallyIncreasingCounter * apEventNumberCounter, + System::Clock::Milliseconds64 aMonotonicStartupTime, EventReporter * apEventReporter); static EventManagement & GetInstance(); diff --git a/src/app/server/Server.cpp b/src/app/server/Server.cpp index 3ff2cb725002bb..5c26b7c8f5bde7 100644 --- a/src/app/server/Server.cpp +++ b/src/app/server/Server.cpp @@ -285,9 +285,9 @@ CHIP_ERROR Server::Init(const ServerInitParams & initParams) }; err = app::EventManagement::GetInstance().Init(&mExchangeMgr, CHIP_NUM_EVENT_LOGGING_BUFFERS, &sLoggingBuffer[0], - &logStorageResources[0], &sGlobalEventIdCounter, - std::chrono::duration_cast(mInitTimestamp), - &app::InteractionModelEngine::GetInstance()->GetReportingEngine()); + &logStorageResources[0], &sGlobalEventIdCounter, + std::chrono::duration_cast(mInitTimestamp), + &app::InteractionModelEngine::GetInstance()->GetReportingEngine()); SuccessOrExit(err); }