mirror of
https://github.com/espressif/openthread.git
synced 2026-08-16 15:47:46 +00:00
[mdns] use NextFireTime class (#10304)
This commit updates the mDNS module to use the recently introduced general-purpose `NextFireTime` class, replacing the module-specific `TimerContext` class.
This commit is contained in:
+15
-44
@@ -305,10 +305,7 @@ void Core::HandleEntryTimer(void)
|
||||
|
||||
RemoveEmptyEntries();
|
||||
|
||||
if (context.GetNextTime() != context.GetNow().GetDistantFuture())
|
||||
{
|
||||
mEntryTimer.FireAtIfEarlier(context.GetNextTime());
|
||||
}
|
||||
mEntryTimer.FireAtIfEarlier(context.GetNextFireTime());
|
||||
}
|
||||
|
||||
void Core::RemoveEmptyEntries(void)
|
||||
@@ -823,6 +820,14 @@ void Core::FireTime::ScheduleFireTimeOn(TimerMilli &aTimer)
|
||||
}
|
||||
}
|
||||
|
||||
void Core::FireTime::UpdateNextFireTimeOn(NextFireTime &aNextFireTime) const
|
||||
{
|
||||
if (mHasFireTime)
|
||||
{
|
||||
aNextFireTime.UpdateIfEarlier(mFireTime);
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// Core::Entry
|
||||
|
||||
@@ -1199,10 +1204,7 @@ template <typename EntryType> void Core::Entry::HandleTimer(EntryTimerContext &a
|
||||
thisAsEntryType->DetermineNextFireTime();
|
||||
|
||||
exit:
|
||||
if (HasFireTime())
|
||||
{
|
||||
aContext.UpdateNextTime(GetFireTime());
|
||||
}
|
||||
UpdateNextFireTimeOn(aContext.GetNextFireTime());
|
||||
}
|
||||
|
||||
void Core::Entry::AppendQuestionTo(TxMessage &aTxMessage) const
|
||||
@@ -2673,10 +2675,7 @@ void Core::ServiceType::HandleTimer(EntryTimerContext &aContext)
|
||||
mServicesPtr.UpdateFireTimeOn(*this);
|
||||
|
||||
exit:
|
||||
if (HasFireTime())
|
||||
{
|
||||
aContext.UpdateNextTime(GetFireTime());
|
||||
}
|
||||
UpdateNextFireTimeOn(aContext.GetNextFireTime());
|
||||
}
|
||||
|
||||
void Core::ServiceType::PrepareResponse(TxMessage &aResponse, TimeMilli aNow)
|
||||
@@ -3211,33 +3210,11 @@ bool Core::TxMessage::ShouldClearAppendStateOnReinit(const Entry &aEntry) const
|
||||
return shouldClear;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// Core::TimerContext
|
||||
|
||||
Core::TimerContext::TimerContext(Instance &aInstance)
|
||||
: InstanceLocator(aInstance)
|
||||
, mNow(TimerMilli::GetNow())
|
||||
, mNextTime(mNow.GetDistantFuture())
|
||||
{
|
||||
}
|
||||
|
||||
void Core::TimerContext::UpdateNextTime(TimeMilli aTime)
|
||||
{
|
||||
if (aTime <= mNow)
|
||||
{
|
||||
mNextTime = mNow;
|
||||
}
|
||||
else
|
||||
{
|
||||
mNextTime = Min(mNextTime, aTime);
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// Core::EntryTimerContext
|
||||
|
||||
Core::EntryTimerContext::EntryTimerContext(Instance &aInstance)
|
||||
: TimerContext(aInstance)
|
||||
: InstanceLocator(aInstance)
|
||||
, mProbeMessage(aInstance, TxMessage::kMulticastProbe)
|
||||
, mResponseMessage(aInstance, TxMessage::kMulticastResponse)
|
||||
{
|
||||
@@ -4339,10 +4316,7 @@ void Core::HandleCacheTimer(void)
|
||||
|
||||
context.GetQueryMessage().Send();
|
||||
|
||||
if (context.GetNextTime() != context.GetNow().GetDistantFuture())
|
||||
{
|
||||
mCacheTimer.FireAtIfEarlier(context.GetNextTime());
|
||||
}
|
||||
mCacheTimer.FireAtIfEarlier(context.GetNextFireTime());
|
||||
}
|
||||
|
||||
void Core::HandleCacheTask(void)
|
||||
@@ -4448,7 +4422,7 @@ void Core::ResultCallback::Invoke(Instance &aInstance, const AddressResult &aRes
|
||||
// Core::CacheTimerContext
|
||||
|
||||
Core::CacheTimerContext::CacheTimerContext(Instance &aInstance)
|
||||
: TimerContext(aInstance)
|
||||
: InstanceLocator(aInstance)
|
||||
, mQueryMessage(aInstance, TxMessage::kMulticastQuery)
|
||||
{
|
||||
}
|
||||
@@ -4811,10 +4785,7 @@ void Core::CacheEntry::HandleTimer(CacheTimerContext &aContext)
|
||||
DetermineNextFireTime();
|
||||
|
||||
exit:
|
||||
if (HasFireTime())
|
||||
{
|
||||
aContext.UpdateNextTime(GetFireTime());
|
||||
}
|
||||
UpdateNextFireTimeOn(aContext.GetNextFireTime());
|
||||
}
|
||||
|
||||
Core::ResultCallback *Core::CacheEntry::FindCallbackMatching(const ResultCallback &aCallback)
|
||||
|
||||
+15
-24
@@ -790,6 +790,7 @@ private:
|
||||
|
||||
protected:
|
||||
void ScheduleFireTimeOn(TimerMilli &aTimer);
|
||||
void UpdateNextFireTimeOn(NextFireTime &aNextFireTime) const;
|
||||
|
||||
private:
|
||||
TimeMilli mFireTime;
|
||||
@@ -1189,32 +1190,19 @@ private:
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
class TimerContext : public InstanceLocator
|
||||
{
|
||||
public:
|
||||
TimerContext(Instance &aInstance);
|
||||
|
||||
TimeMilli GetNow(void) const { return mNow; }
|
||||
TimeMilli GetNextTime(void) const { return mNextTime; }
|
||||
void UpdateNextTime(TimeMilli aTime);
|
||||
|
||||
private:
|
||||
TimeMilli mNow;
|
||||
TimeMilli mNextTime;
|
||||
};
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
class EntryTimerContext : public TimerContext // Used by `HandleEntryTimer`.
|
||||
class EntryTimerContext : public InstanceLocator // Used by `HandleEntryTimer`.
|
||||
{
|
||||
public:
|
||||
EntryTimerContext(Instance &aInstance);
|
||||
TxMessage &GetProbeMessage(void) { return mProbeMessage; }
|
||||
TxMessage &GetResponseMessage(void) { return mResponseMessage; }
|
||||
TimeMilli GetNow(void) const { return mNextFireTime.GetNow(); }
|
||||
NextFireTime &GetNextFireTime(void) { return mNextFireTime; }
|
||||
TxMessage &GetProbeMessage(void) { return mProbeMessage; }
|
||||
TxMessage &GetResponseMessage(void) { return mResponseMessage; }
|
||||
|
||||
private:
|
||||
TxMessage mProbeMessage;
|
||||
TxMessage mResponseMessage;
|
||||
NextFireTime mNextFireTime;
|
||||
TxMessage mProbeMessage;
|
||||
TxMessage mResponseMessage;
|
||||
};
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
@@ -1440,14 +1428,17 @@ private:
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
class CacheTimerContext : public TimerContext
|
||||
class CacheTimerContext : public InstanceLocator
|
||||
{
|
||||
public:
|
||||
CacheTimerContext(Instance &aInstance);
|
||||
TxMessage &GetQueryMessage(void) { return mQueryMessage; }
|
||||
TimeMilli GetNow(void) const { return mNextFireTime.GetNow(); }
|
||||
NextFireTime &GetNextFireTime(void) { return mNextFireTime; }
|
||||
TxMessage &GetQueryMessage(void) { return mQueryMessage; }
|
||||
|
||||
private:
|
||||
TxMessage mQueryMessage;
|
||||
NextFireTime mNextFireTime;
|
||||
TxMessage mQueryMessage;
|
||||
};
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
Reference in New Issue
Block a user