Switch PersistedCounter over to using a PersistentStorageDelegate. (#17377)
diff --git a/src/app/EventManagement.cpp b/src/app/EventManagement.cpp
index 6cb20a2..6ee98aa 100644
--- a/src/app/EventManagement.cpp
+++ b/src/app/EventManagement.cpp
@@ -82,32 +82,9 @@
EventLoadOutContext * mpContext = nullptr;
};
-void EventManagement::InitializeCounter(Platform::PersistedStorage::Key * apCounterKey, uint32_t aCounterEpoch,
- PersistedCounter * apPersistedCounter)
-{
- PersistedCounter * eventNumberCounter = nullptr;
- if (apPersistedCounter != nullptr && apCounterKey != nullptr && aCounterEpoch != 0)
- {
- eventNumberCounter =
- (apPersistedCounter->Init(*apCounterKey, aCounterEpoch) == CHIP_NO_ERROR) ? apPersistedCounter : nullptr;
- }
-
- if (eventNumberCounter == nullptr)
- {
- mNonPersistedCounter.Init(0);
- mpEventNumberCounter = &(mNonPersistedCounter);
- }
- else
- {
- mpEventNumberCounter = eventNumberCounter;
- }
- mLastEventNumber = mpEventNumberCounter->GetValue();
-}
-
void EventManagement::Init(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers,
CircularEventBuffer * apCircularEventBuffer, const LogStorageResources * const apLogStorageResources,
- Platform::PersistedStorage::Key * apCounterKey, uint32_t aCounterEpoch,
- PersistedCounter * apPersistedCounter)
+ MonotonicallyIncreasingCounter * apEventNumberCounter)
{
CircularEventBuffer * current = nullptr;
CircularEventBuffer * prev = nullptr;
@@ -140,7 +117,8 @@
current->mAppData = nullptr;
}
- InitializeCounter(apCounterKey, aCounterEpoch, apPersistedCounter);
+ mpEventNumberCounter = apEventNumberCounter;
+ mLastEventNumber = mpEventNumberCounter->GetValue();
mpEventBuffer = apCircularEventBuffer;
mState = EventManagementStates::Idle;
@@ -357,12 +335,10 @@
void EventManagement::CreateEventManagement(Messaging::ExchangeManager * apExchangeManager, uint32_t aNumBuffers,
CircularEventBuffer * apCircularEventBuffer,
const LogStorageResources * const apLogStorageResources,
- Platform::PersistedStorage::Key * apCounterKey, uint32_t aCounterEpoch,
- PersistedCounter * apPersistedCounter)
+ MonotonicallyIncreasingCounter * apEventNumberCounter)
{
- sInstance.Init(apExchangeManager, aNumBuffers, apCircularEventBuffer, apLogStorageResources, apCounterKey, aCounterEpoch,
- apPersistedCounter);
+ sInstance.Init(apExchangeManager, aNumBuffers, apCircularEventBuffer, apLogStorageResources, apEventNumberCounter);
}
/**
@@ -893,10 +869,9 @@
CircularEventBuffer * apNext, PriorityLevel aPriorityLevel)
{
CHIPCircularTLVBuffer::Init(apBuffer, aBufferLength);
- mpPrev = apPrev;
- mpNext = apNext;
- mPriority = aPriorityLevel;
- mpEventNumberCounter = nullptr;
+ mpPrev = apPrev;
+ mpNext = apNext;
+ mPriority = aPriorityLevel;
}
bool CircularEventBuffer::IsFinalDestinationForPriority(PriorityLevel aPriority) const