From 9fb778089ba65f339eecf8b5ce9a141b7eb1a566 Mon Sep 17 00:00:00 2001 From: Simon Lin Date: Fri, 5 Feb 2021 13:29:43 +0800 Subject: [PATCH] [locator] remove OwnerLocator class (#6138) This commit removes the OwnerLocator class since it's actually useless. Timer and Tasklet inherited from OwnerLocator to so that they can use GetOwner() to find the owner object. However, these two classes already inherited from InstanceLocator, thus can use Get() to get any component of the OT instance. --- src/cli/cli.cpp | 14 ++---- src/cli/cli.hpp | 2 +- src/core/backbone_router/bbr_manager.cpp | 7 ++- src/core/backbone_router/bbr_manager.hpp | 2 +- src/core/border_router/routing_manager.cpp | 12 +++--- src/core/common/locator-getters.hpp | 9 ---- src/core/common/locator.hpp | 48 --------------------- src/core/common/notifier.cpp | 4 +- src/core/common/tasklet.cpp | 3 +- src/core/common/tasklet.hpp | 7 ++- src/core/common/time_ticker.cpp | 4 +- src/core/common/timer.hpp | 18 +++----- src/core/common/trickle_timer.cpp | 5 +-- src/core/common/trickle_timer.hpp | 4 +- src/core/mac/data_poll_sender.cpp | 4 +- src/core/mac/mac.cpp | 8 ++-- src/core/mac/sub_mac.cpp | 8 ++-- src/core/meshcop/border_agent.cpp | 4 +- src/core/meshcop/commissioner.cpp | 8 ++-- src/core/meshcop/dataset_manager.cpp | 10 ++--- src/core/meshcop/joiner.cpp | 4 +- src/core/meshcop/joiner_router.cpp | 4 +- src/core/meshcop/meshcop_leader.cpp | 4 +- src/core/net/dhcp6_client.cpp | 4 +- src/core/net/dns_client.cpp | 4 +- src/core/net/ip6.cpp | 4 +- src/core/net/ip6_mpl.cpp | 8 ++-- src/core/net/sntp_client.cpp | 4 +- src/core/net/srp_client.cpp | 4 +- src/core/net/srp_server.cpp | 8 ++-- src/core/radio/trel_link.cpp | 8 ++-- src/core/thread/announce_begin_server.cpp | 2 +- src/core/thread/announce_sender.cpp | 4 +- src/core/thread/discover_scanner.cpp | 4 +- src/core/thread/dua_manager.cpp | 7 ++- src/core/thread/dua_manager.hpp | 2 +- src/core/thread/energy_scan_server.cpp | 4 +- src/core/thread/key_manager.cpp | 4 +- src/core/thread/mesh_forwarder.cpp | 4 +- src/core/thread/mle.cpp | 16 +++---- src/core/thread/mle_router.cpp | 4 +- src/core/thread/network_data_leader_ftd.cpp | 4 +- src/core/thread/network_data_notifier.cpp | 4 +- src/core/thread/panid_query_server.cpp | 4 +- src/core/thread/time_sync_service.cpp | 4 +- src/core/utils/channel_manager.cpp | 4 +- src/core/utils/channel_monitor.cpp | 4 +- src/core/utils/child_supervision.cpp | 4 +- src/core/utils/dataset_updater.cpp | 4 +- src/core/utils/jam_detector.cpp | 4 +- src/ncp/ncp_base.cpp | 2 +- src/ncp/ncp_spi.cpp | 2 +- src/ncp/ncp_uart.cpp | 2 +- tests/unit/test_timer.cpp | 2 +- 54 files changed, 135 insertions(+), 197 deletions(-) diff --git a/src/cli/cli.cpp b/src/cli/cli.cpp index 471269b8b..a9df10f92 100644 --- a/src/cli/cli.cpp +++ b/src/cli/cli.cpp @@ -120,7 +120,7 @@ Interpreter::Interpreter(Instance *aInstance) , mPingHopLimit(0) , mPingAllowZeroHopLimit(false) , mPingIdentifier(0) - , mPingTimer(*aInstance, Interpreter::HandlePingTimer, this) + , mPingTimer(*aInstance, Interpreter::HandlePingTimer) #if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE , mResolvingInProgress(false) #endif @@ -4821,16 +4821,10 @@ void Interpreter::SetUserCommands(const otCliCommand *aCommands, uint8_t aLength mUserCommandsContext = aContext; } -Interpreter &Interpreter::GetOwner(OwnerLocator &aOwnerLocator) +Interpreter &Interpreter::GetOwner(InstanceLocator &aInstanceLocator) { -#if OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE - Interpreter &interpreter = (aOwnerLocator.GetOwner()); -#else - OT_UNUSED_VARIABLE(aOwnerLocator); - - Interpreter &interpreter = Interpreter::GetInterpreter(); -#endif - return interpreter; + OT_UNUSED_VARIABLE(aInstanceLocator); + return Interpreter::GetInterpreter(); } void Interpreter::SignalPingRequest(const Ip6::Address &aPeerAddress, diff --git a/src/cli/cli.hpp b/src/cli/cli.hpp index 7c12afe1d..8cc2abf69 100644 --- a/src/cli/cli.hpp +++ b/src/cli/cli.hpp @@ -596,7 +596,7 @@ private: const char *LinkMetricsStatusToStr(uint8_t aStatus); #endif // OPENTHREAD_CONFIG_MLE_LINK_METRICS_ENABLE - static Interpreter &GetOwner(OwnerLocator &aOwnerLocator); + static Interpreter &GetOwner(InstanceLocator &aInstanceLocator); static void HandleDiscoveryRequest(const otThreadDiscoveryRequestInfo *aInfo, void *aContext) { diff --git a/src/core/backbone_router/bbr_manager.cpp b/src/core/backbone_router/bbr_manager.cpp index 43519f349..af709d118 100644 --- a/src/core/backbone_router/bbr_manager.cpp +++ b/src/core/backbone_router/bbr_manager.cpp @@ -63,7 +63,7 @@ Manager::Manager(Instance &aInstance) #if OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE , mMulticastListenersTable(aInstance) #endif - , mTimer(aInstance, Manager::HandleTimer, this) + , mTimer(aInstance, Manager::HandleTimer) , mBackboneTmfAgent(aInstance) #if OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE #if OPENTHREAD_CONFIG_BACKBONE_ROUTER_DUA_NDPROXYING_ENABLE @@ -141,6 +141,11 @@ void Manager::HandleNotifierEvents(Events aEvents) } } +void Manager::HandleTimer(Timer &aTimer) +{ + aTimer.Get().HandleTimer(); +} + void Manager::HandleTimer(void) { #if OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE diff --git a/src/core/backbone_router/bbr_manager.hpp b/src/core/backbone_router/bbr_manager.hpp index 597aa03f4..aa29524bf 100644 --- a/src/core/backbone_router/bbr_manager.hpp +++ b/src/core/backbone_router/bbr_manager.hpp @@ -229,7 +229,7 @@ private: #endif void HandleNotifierEvents(Events aEvents); - static void HandleTimer(Timer &aTimer) { aTimer.GetOwner().HandleTimer(); } + static void HandleTimer(Timer &aTimer); void HandleTimer(void); #if OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE diff --git a/src/core/border_router/routing_manager.cpp b/src/core/border_router/routing_manager.cpp index 491545dc1..64bf4dc98 100644 --- a/src/core/border_router/routing_manager.cpp +++ b/src/core/border_router/routing_manager.cpp @@ -65,10 +65,10 @@ RoutingManager::RoutingManager(Instance &aInstance) , mAdvertisedOmrPrefixNum(0) , mAdvertisedOnLinkPrefix(nullptr) , mDiscoveredPrefixNum(0) - , mDiscoveredPrefixInvalidTimer(aInstance, HandleDiscoveredPrefixInvalidTimer, this) - , mRouterAdvertisementTimer(aInstance, HandleRouterAdvertisementTimer, this) + , mDiscoveredPrefixInvalidTimer(aInstance, HandleDiscoveredPrefixInvalidTimer) + , mRouterAdvertisementTimer(aInstance, HandleRouterAdvertisementTimer) , mRouterAdvertisementCount(0) - , mRouterSolicitTimer(aInstance, HandleRouterSolicitTimer, this) + , mRouterSolicitTimer(aInstance, HandleRouterSolicitTimer) , mRouterSolicitCount(0) { mLocalOmrPrefix.Clear(); @@ -772,7 +772,7 @@ bool RoutingManager::IsValidOnLinkPrefix(const Ip6::Prefix &aOnLinkPrefix) void RoutingManager::HandleRouterAdvertisementTimer(Timer &aTimer) { - aTimer.GetOwner().HandleRouterAdvertisementTimer(); + aTimer.Get().HandleRouterAdvertisementTimer(); } void RoutingManager::HandleRouterAdvertisementTimer(void) @@ -784,7 +784,7 @@ void RoutingManager::HandleRouterAdvertisementTimer(void) void RoutingManager::HandleRouterSolicitTimer(Timer &aTimer) { - aTimer.GetOwner().HandleRouterSolicitTimer(); + aTimer.Get().HandleRouterSolicitTimer(); } void RoutingManager::HandleRouterSolicitTimer(void) @@ -824,7 +824,7 @@ void RoutingManager::HandleRouterSolicitTimer(void) void RoutingManager::HandleDiscoveredPrefixInvalidTimer(Timer &aTimer) { - aTimer.GetOwner().HandleDiscoveredPrefixInvalidTimer(); + aTimer.Get().HandleDiscoveredPrefixInvalidTimer(); } void RoutingManager::HandleDiscoveredPrefixInvalidTimer(void) diff --git a/src/core/common/locator-getters.hpp b/src/core/common/locator-getters.hpp index 43ed54cf0..dc87b40c5 100644 --- a/src/core/common/locator-getters.hpp +++ b/src/core/common/locator-getters.hpp @@ -63,15 +63,6 @@ template inline Type &InstanceLocator::Get(void) const return GetInstance().Get(); } -#if !OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE - -template OwnerType &OwnerLocator::GetOwner(void) -{ - return Instance::Get().Get(); -} - -#endif - } // namespace ot #endif // LOCATOR_GETTERS_HPP_ diff --git a/src/core/common/locator.hpp b/src/core/common/locator.hpp index e2bc32bc5..30350c31f 100644 --- a/src/core/common/locator.hpp +++ b/src/core/common/locator.hpp @@ -161,54 +161,6 @@ protected: } }; -/** - * This class implements a locator for owner of an object. - * - * This is used as the base class for objects that provide a callback (e.g., `Timer` or `Tasklet`). - * - */ -class OwnerLocator -{ -public: - /** - * This template method returns a reference to the owner object. - * - * The caller needs to provide the `OwnerType` as part of the template type. - * - * @returns A reference to the owner of this object. - * - */ - template OwnerType &GetOwner(void) -#if OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE - { - return *static_cast(mOwner); - } -#else - // Implemented in `locator-getters.hpp` - ; -#endif - -protected: - /** - * This constructor initializes the object. - * - * @param[in] aOwner A pointer to the owner object (as `void *`). - * - */ - explicit OwnerLocator(void *aOwner) -#if OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE - : mOwner(aOwner) -#endif - { - OT_UNUSED_VARIABLE(aOwner); - } - -#if OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE -private: - void *mOwner; -#endif -}; - /** * @} * diff --git a/src/core/common/notifier.cpp b/src/core/common/notifier.cpp index d1b98ab45..6f970f4ba 100644 --- a/src/core/common/notifier.cpp +++ b/src/core/common/notifier.cpp @@ -43,7 +43,7 @@ namespace ot { Notifier::Notifier(Instance &aInstance) : InstanceLocator(aInstance) - , mTask(aInstance, Notifier::EmitEvents, this) + , mTask(aInstance, Notifier::EmitEvents) { for (ExternalCallback &callback : mExternalCallbacks) { @@ -117,7 +117,7 @@ void Notifier::SignalIfFirst(Event aEvent) void Notifier::EmitEvents(Tasklet &aTasklet) { - aTasklet.GetOwner().EmitEvents(); + aTasklet.Get().EmitEvents(); } void Notifier::EmitEvents(void) diff --git a/src/core/common/tasklet.cpp b/src/core/common/tasklet.cpp index de8bab9f5..68ff27e91 100644 --- a/src/core/common/tasklet.cpp +++ b/src/core/common/tasklet.cpp @@ -41,9 +41,8 @@ namespace ot { -Tasklet::Tasklet(Instance &aInstance, Handler aHandler, void *aOwner) +Tasklet::Tasklet(Instance &aInstance, Handler aHandler) : InstanceLocator(aInstance) - , OwnerLocator(aOwner) , mHandler(aHandler) , mNext(nullptr) { diff --git a/src/core/common/tasklet.hpp b/src/core/common/tasklet.hpp index 198858c6f..9d9b9e5be 100644 --- a/src/core/common/tasklet.hpp +++ b/src/core/common/tasklet.hpp @@ -61,7 +61,7 @@ class TaskletScheduler; * This class is used to represent a tasklet. * */ -class Tasklet : public InstanceLocator, public OwnerLocator +class Tasklet : public InstanceLocator { friend class TaskletScheduler; @@ -79,10 +79,9 @@ public: * * @param[in] aInstance A reference to the OpenThread instance object. * @param[in] aHandler A pointer to a function that is called when the tasklet is run. - * @param[in] aOwner A pointer to owner of this `Tasklet` object. * */ - Tasklet(Instance &aInstance, Handler aHandler, void *aOwner); + Tasklet(Instance &aInstance, Handler aHandler); /** * This method puts the tasklet on the tasklet scheduler run queue. @@ -129,7 +128,7 @@ public: * */ TaskletContext(Instance &aInstance, Handler aHandler, void *aContext) - : Tasklet(aInstance, aHandler, aContext) + : Tasklet(aInstance, aHandler) , mContext(aContext) { } diff --git a/src/core/common/time_ticker.cpp b/src/core/common/time_ticker.cpp index 10461d098..28834b98c 100644 --- a/src/core/common/time_ticker.cpp +++ b/src/core/common/time_ticker.cpp @@ -45,7 +45,7 @@ namespace ot { TimeTicker::TimeTicker(Instance &aInstance) : InstanceLocator(aInstance) , mReceivers(0) - , mTimer(aInstance, HandleTimer, this) + , mTimer(aInstance, HandleTimer) { } @@ -71,7 +71,7 @@ void TimeTicker::UnregisterReceiver(Receiver aReceiver) void TimeTicker::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void TimeTicker::HandleTimer(void) diff --git a/src/core/common/timer.hpp b/src/core/common/timer.hpp index 751eff188..7158fb19d 100644 --- a/src/core/common/timer.hpp +++ b/src/core/common/timer.hpp @@ -67,7 +67,7 @@ class TimerMilliScheduler; * This class implements a timer. * */ -class Timer : public InstanceLocator, public OwnerLocator, public LinkedListEntry +class Timer : public InstanceLocator, public LinkedListEntry { friend class TimerScheduler; friend class LinkedListEntry; @@ -92,12 +92,10 @@ public: * * @param[in] aInstance A reference to the OpenThread instance. * @param[in] aHandler A pointer to a function that is called when the timer expires. - * @param[in] aOwner A pointer to owner of the `Timer` object. * */ - Timer(Instance &aInstance, Handler aHandler, void *aOwner) + Timer(Instance &aInstance, Handler aHandler) : InstanceLocator(aInstance) - , OwnerLocator(aOwner) , mHandler(aHandler) , mFireTime() , mNext(this) @@ -153,11 +151,10 @@ public: * * @param[in] aInstance A reference to the OpenThread instance. * @param[in] aHandler A pointer to a function that is called when the timer expires. - * @param[in] aOwner A pointer to the owner of the `TimerMilli` object. * */ - TimerMilli(Instance &aInstance, Handler aHandler, void *aOwner) - : Timer(aInstance, aHandler, aOwner) + TimerMilli(Instance &aInstance, Handler aHandler) + : Timer(aInstance, aHandler) { } @@ -231,7 +228,7 @@ public: * */ TimerMilliContext(Instance &aInstance, Handler aHandler, void *aContext) - : TimerMilli(aInstance, aHandler, aContext) + : TimerMilli(aInstance, aHandler) , mContext(aContext) { } @@ -375,11 +372,10 @@ public: * * @param[in] aInstance A reference to the OpenThread instance. * @param[in] aHandler A pointer to a function that is called when the timer expires. - * @param[in] aOwner A pointer to owner of the `TimerMicro` object. * */ - TimerMicro(Instance &aInstance, Handler aHandler, void *aOwner) - : Timer(aInstance, aHandler, aOwner) + TimerMicro(Instance &aInstance, Handler aHandler) + : Timer(aInstance, aHandler) { } diff --git a/src/core/common/trickle_timer.cpp b/src/core/common/trickle_timer.cpp index b8f46551c..322d2dac4 100644 --- a/src/core/common/trickle_timer.cpp +++ b/src/core/common/trickle_timer.cpp @@ -44,9 +44,8 @@ TrickleTimer::TrickleTimer(Instance &aInstance, uint32_t aRedundancyConstant, #endif Handler aTransmitHandler, - Handler aIntervalExpiredHandler, - void * aOwner) - : TimerMilli(aInstance, TrickleTimer::HandleTimer, aOwner) + Handler aIntervalExpiredHandler) + : TimerMilli(aInstance, TrickleTimer::HandleTimer) #ifdef ENABLE_TRICKLE_TIMER_SUPPRESSION_SUPPORT , mRedundancyConstant(aRedundancyConstant) , mCounter(0) diff --git a/src/core/common/trickle_timer.hpp b/src/core/common/trickle_timer.hpp index e8ed1d015..dda6caecc 100644 --- a/src/core/common/trickle_timer.hpp +++ b/src/core/common/trickle_timer.hpp @@ -86,7 +86,6 @@ public: * @param[in] aRedundancyConstant The redundancy constant for the timer, also known as `k`. * @param[in] aTransmitHandler A pointer to a function that is called when transmission should occur. * @param[in] aIntervalExpiredHandler An optional pointer to a function that is called when the interval expires. - * @param[in] aOwner A pointer to owner of the `TrickleTimer` object. * */ TrickleTimer(Instance &aInstance, @@ -94,8 +93,7 @@ public: uint32_t aRedundancyConstant, #endif Handler aTransmitHandler, - Handler aIntervalExpiredHandler, - void * aOwner); + Handler aIntervalExpiredHandler); /** * This method indicates whether or not the trickle timer instance is running. diff --git a/src/core/mac/data_poll_sender.cpp b/src/core/mac/data_poll_sender.cpp index 0d36fd743..a99913919 100644 --- a/src/core/mac/data_poll_sender.cpp +++ b/src/core/mac/data_poll_sender.cpp @@ -52,7 +52,7 @@ DataPollSender::DataPollSender(Instance &aInstance) , mPollPeriod(0) , mExternalPollPeriod(0) , mFastPollsUsers(0) - , mTimer(aInstance, DataPollSender::HandlePollTimer, this) + , mTimer(aInstance, DataPollSender::HandlePollTimer) , mEnabled(false) , mAttachMode(false) , mRetxMode(false) @@ -499,7 +499,7 @@ uint32_t DataPollSender::CalculatePollPeriod(void) const void DataPollSender::HandlePollTimer(Timer &aTimer) { - IgnoreError(aTimer.GetOwner().SendDataPoll()); + IgnoreError(aTimer.Get().SendDataPoll()); } uint32_t DataPollSender::GetDefaultPollPeriod(void) const diff --git a/src/core/mac/mac.cpp b/src/core/mac/mac.cpp index 9fffcde9a..eb767c7ee 100644 --- a/src/core/mac/mac.cpp +++ b/src/core/mac/mac.cpp @@ -115,8 +115,8 @@ Mac::Mac(Instance &aInstance) , mActiveScanHandler(nullptr) // Initialize `mActiveScanHandler` and `mEnergyScanHandler` union , mScanHandlerContext(nullptr) , mLinks(aInstance) - , mOperationTask(aInstance, Mac::HandleOperationTask, this) - , mTimer(aInstance, Mac::HandleTimer, this) + , mOperationTask(aInstance, Mac::HandleOperationTask) + , mTimer(aInstance, Mac::HandleTimer) , mOobFrame(nullptr) , mKeyIdMode2FrameCounter(0) , mCcaSampleCount(0) @@ -755,7 +755,7 @@ void Mac::StartOperation(Operation aOperation) void Mac::HandleOperationTask(Tasklet &aTasklet) { - aTasklet.GetOwner().PerformNextOperation(); + aTasklet.Get().PerformNextOperation(); } void Mac::PerformNextOperation(void) @@ -1681,7 +1681,7 @@ exit: void Mac::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void Mac::HandleTimer(void) diff --git a/src/core/mac/sub_mac.cpp b/src/core/mac/sub_mac.cpp index 1facf3703..3f94674c8 100644 --- a/src/core/mac/sub_mac.cpp +++ b/src/core/mac/sub_mac.cpp @@ -65,14 +65,14 @@ SubMac::SubMac(Instance &aInstance) , mPcapCallbackContext(nullptr) , mFrameCounter(0) , mKeyId(0) - , mTimer(aInstance, SubMac::HandleTimer, this) + , mTimer(aInstance, SubMac::HandleTimer) #if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE , mCslTimeout(OPENTHREAD_CONFIG_CSL_TIMEOUT) , mCslPeriod(0) , mCslChannel(0) , mIsCslChannelSpecified(false) , mCslState(kCslIdle) - , mCslTimer(aInstance, SubMac::HandleCslTimer, this) + , mCslTimer(aInstance, SubMac::HandleCslTimer) #endif { mExtAddress.Clear(); @@ -657,7 +657,7 @@ void SubMac::HandleEnergyScanDone(int8_t aMaxRssi) void SubMac::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void SubMac::HandleTimer(void) @@ -971,7 +971,7 @@ void SubMac::SetCslTimeout(uint32_t aTimeout) void SubMac::HandleCslTimer(Timer &aTimer) { - aTimer.GetOwner().HandleCslTimer(); + aTimer.Get().HandleCslTimer(); } void SubMac::HandleCslTimer(void) diff --git a/src/core/meshcop/border_agent.cpp b/src/core/meshcop/border_agent.cpp index a3970f64c..2e13beab2 100644 --- a/src/core/meshcop/border_agent.cpp +++ b/src/core/meshcop/border_agent.cpp @@ -284,7 +284,7 @@ BorderAgent::BorderAgent(Instance &aInstance) , mPendingSet(UriPath::kPendingSet, BorderAgent::HandleRequest<&BorderAgent::mPendingSet>, this) , mProxyTransmit(UriPath::kProxyTx, BorderAgent::HandleRequest<&BorderAgent::mProxyTransmit>, this) , mUdpReceiver(BorderAgent::HandleUdpReceive, this) - , mTimer(aInstance, HandleTimeout, this) + , mTimer(aInstance, HandleTimeout) , mState(kStateStopped) { mCommissionerAloc.InitAsThreadOriginRealmLocalScope(); @@ -594,7 +594,7 @@ exit: void BorderAgent::HandleTimeout(Timer &aTimer) { - aTimer.GetOwner().HandleTimeout(); + aTimer.Get().HandleTimeout(); } void BorderAgent::HandleTimeout(void) diff --git a/src/core/meshcop/commissioner.cpp b/src/core/meshcop/commissioner.cpp index b9537c014..b56d431ed 100644 --- a/src/core/meshcop/commissioner.cpp +++ b/src/core/meshcop/commissioner.cpp @@ -62,8 +62,8 @@ Commissioner::Commissioner(Instance &aInstance) , mJoinerRloc(0) , mSessionId(0) , mTransmitAttempts(0) - , mJoinerExpirationTimer(aInstance, HandleJoinerExpirationTimer, this) - , mTimer(aInstance, HandleTimer, this) + , mJoinerExpirationTimer(aInstance, HandleJoinerExpirationTimer) + , mTimer(aInstance, HandleTimer) , mRelayReceive(UriPath::kRelayRx, &Commissioner::HandleRelayReceive, this) , mDatasetChanged(UriPath::kDatasetChanged, &Commissioner::HandleDatasetChanged, this) , mJoinerFinalize(UriPath::kJoinerFinalize, &Commissioner::HandleJoinerFinalize, this) @@ -605,7 +605,7 @@ exit: void Commissioner::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void Commissioner::HandleTimer(void) @@ -627,7 +627,7 @@ void Commissioner::HandleTimer(void) void Commissioner::HandleJoinerExpirationTimer(Timer &aTimer) { - aTimer.GetOwner().HandleJoinerExpirationTimer(); + aTimer.Get().HandleJoinerExpirationTimer(); } void Commissioner::HandleJoinerExpirationTimer(void) diff --git a/src/core/meshcop/dataset_manager.cpp b/src/core/meshcop/dataset_manager.cpp index 820cd42b6..1d7e20d30 100644 --- a/src/core/meshcop/dataset_manager.cpp +++ b/src/core/meshcop/dataset_manager.cpp @@ -55,7 +55,7 @@ DatasetManager::DatasetManager(Instance &aInstance, Dataset::Type aType, Timer:: , mLocal(aInstance, aType) , mTimestampValid(false) , mCoapPending(false) - , mTimer(aInstance, aTimerHandler, this) + , mTimer(aInstance, aTimerHandler) { mTimestamp.Init(); } @@ -694,12 +694,12 @@ void ActiveDataset::HandleGet(Coap::Message &aMessage, const Ip6::MessageInfo &a void ActiveDataset::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } PendingDataset::PendingDataset(Instance &aInstance) : DatasetManager(aInstance, Dataset::kPending, PendingDataset::HandleTimer) - , mDelayTimer(aInstance, PendingDataset::HandleDelayTimer, this) + , mDelayTimer(aInstance, PendingDataset::HandleDelayTimer) , mResourceGet(UriPath::kPendingGet, &PendingDataset::HandleGet, this) #if OPENTHREAD_FTD , mResourceSet(UriPath::kPendingSet, &PendingDataset::HandleSet, this) @@ -785,7 +785,7 @@ void PendingDataset::StartDelayTimer(void) void PendingDataset::HandleDelayTimer(Timer &aTimer) { - aTimer.GetOwner().HandleDelayTimer(); + aTimer.Get().HandleDelayTimer(); } void PendingDataset::HandleDelayTimer(void) @@ -834,7 +834,7 @@ void PendingDataset::HandleGet(Coap::Message &aMessage, const Ip6::MessageInfo & void PendingDataset::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } } // namespace MeshCoP diff --git a/src/core/meshcop/joiner.cpp b/src/core/meshcop/joiner.cpp index c67fee20d..6ff590324 100644 --- a/src/core/meshcop/joiner.cpp +++ b/src/core/meshcop/joiner.cpp @@ -62,7 +62,7 @@ Joiner::Joiner(Instance &aInstance) , mContext(nullptr) , mJoinerRouterIndex(0) , mFinalizeMessage(nullptr) - , mTimer(aInstance, Joiner::HandleTimer, this) + , mTimer(aInstance, Joiner::HandleTimer) , mJoinerEntrust(UriPath::kJoinerEntrust, &Joiner::HandleJoinerEntrust, this) { SetIdFromIeeeEui64(); @@ -615,7 +615,7 @@ exit: void Joiner::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void Joiner::HandleTimer(void) diff --git a/src/core/meshcop/joiner_router.cpp b/src/core/meshcop/joiner_router.cpp index 7ceb9be47..c6c7ad040 100644 --- a/src/core/meshcop/joiner_router.cpp +++ b/src/core/meshcop/joiner_router.cpp @@ -55,7 +55,7 @@ JoinerRouter::JoinerRouter(Instance &aInstance) : InstanceLocator(aInstance) , mSocket(aInstance) , mRelayTransmit(UriPath::kRelayTx, &JoinerRouter::HandleRelayTransmit, this) - , mTimer(aInstance, JoinerRouter::HandleTimer, this) + , mTimer(aInstance, JoinerRouter::HandleTimer) , mJoinerUdpPort(0) , mIsJoinerPortConfigured(false) { @@ -249,7 +249,7 @@ exit: void JoinerRouter::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void JoinerRouter::HandleTimer(void) diff --git a/src/core/meshcop/meshcop_leader.cpp b/src/core/meshcop/meshcop_leader.cpp index 9822afdc3..571979096 100644 --- a/src/core/meshcop/meshcop_leader.cpp +++ b/src/core/meshcop/meshcop_leader.cpp @@ -56,7 +56,7 @@ Leader::Leader(Instance &aInstance) : InstanceLocator(aInstance) , mPetition(UriPath::kLeaderPetition, Leader::HandlePetition, this) , mKeepAlive(UriPath::kLeaderKeepAlive, Leader::HandleKeepAlive, this) - , mTimer(aInstance, HandleTimer, this) + , mTimer(aInstance, HandleTimer) , mDelayTimerMinimal(DelayTimerTlv::kDelayTimerMinimal) , mSessionId(Random::NonCrypto::GetUint16()) { @@ -266,7 +266,7 @@ uint32_t Leader::GetDelayTimerMinimal(void) const void Leader::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void Leader::HandleTimer(void) diff --git a/src/core/net/dhcp6_client.cpp b/src/core/net/dhcp6_client.cpp index 43e268c48..20eeec92d 100644 --- a/src/core/net/dhcp6_client.cpp +++ b/src/core/net/dhcp6_client.cpp @@ -50,7 +50,7 @@ namespace Dhcp6 { Client::Client(Instance &aInstance) : InstanceLocator(aInstance) , mSocket(aInstance) - , mTrickleTimer(aInstance, Client::HandleTrickleTimer, nullptr, this) + , mTrickleTimer(aInstance, Client::HandleTrickleTimer, nullptr) , mStartTime(0) , mIdentityAssociationCurrent(nullptr) { @@ -216,7 +216,7 @@ exit: bool Client::HandleTrickleTimer(TrickleTimer &aTrickleTimer) { - return aTrickleTimer.GetOwner().HandleTrickleTimer(); + return aTrickleTimer.Get().HandleTrickleTimer(); } bool Client::HandleTrickleTimer(void) diff --git a/src/core/net/dns_client.cpp b/src/core/net/dns_client.cpp index fba9bbcdf..9adc9ec32 100644 --- a/src/core/net/dns_client.cpp +++ b/src/core/net/dns_client.cpp @@ -50,7 +50,7 @@ namespace Dns { Client::Client(Instance &aInstance) : mSocket(aInstance) - , mRetransmissionTimer(aInstance, Client::HandleRetransmissionTimer, this) + , mRetransmissionTimer(aInstance, Client::HandleRetransmissionTimer) { } @@ -270,7 +270,7 @@ void Client::FinalizeDnsTransaction(Message & aQuery, void Client::HandleRetransmissionTimer(Timer &aTimer) { - aTimer.GetOwner().HandleRetransmissionTimer(); + aTimer.Get().HandleRetransmissionTimer(); } void Client::HandleRetransmissionTimer(void) diff --git a/src/core/net/ip6.cpp b/src/core/net/ip6.cpp index 325cebc7b..0f5d62634 100644 --- a/src/core/net/ip6.cpp +++ b/src/core/net/ip6.cpp @@ -67,7 +67,7 @@ Ip6::Ip6(Instance &aInstance) , mIsReceiveIp6FilterEnabled(false) , mReceiveIp6DatagramCallback(nullptr) , mReceiveIp6DatagramCallbackContext(nullptr) - , mSendQueueTask(aInstance, Ip6::HandleSendQueue, this) + , mSendQueueTask(aInstance, Ip6::HandleSendQueue) , mIcmp(aInstance) , mUdp(aInstance) , mMpl(aInstance) @@ -525,7 +525,7 @@ exit: void Ip6::HandleSendQueue(Tasklet &aTasklet) { - aTasklet.GetOwner().HandleSendQueue(); + aTasklet.Get().HandleSendQueue(); } void Ip6::HandleSendQueue(void) diff --git a/src/core/net/ip6_mpl.cpp b/src/core/net/ip6_mpl.cpp index d59af2c8a..7746f13e0 100644 --- a/src/core/net/ip6_mpl.cpp +++ b/src/core/net/ip6_mpl.cpp @@ -46,11 +46,11 @@ namespace Ip6 { Mpl::Mpl(Instance &aInstance) : InstanceLocator(aInstance) , mMatchingAddress(nullptr) - , mSeedSetTimer(aInstance, Mpl::HandleSeedSetTimer, this) + , mSeedSetTimer(aInstance, Mpl::HandleSeedSetTimer) , mSeedId(0) , mSequence(0) #if OPENTHREAD_FTD - , mRetransmissionTimer(aInstance, Mpl::HandleRetransmissionTimer, this) + , mRetransmissionTimer(aInstance, Mpl::HandleRetransmissionTimer) , mTimerExpirations(0) #endif { @@ -264,7 +264,7 @@ exit: void Mpl::HandleSeedSetTimer(Timer &aTimer) { - aTimer.GetOwner().HandleSeedSetTimer(); + aTimer.Get().HandleSeedSetTimer(); } void Mpl::HandleSeedSetTimer(void) @@ -337,7 +337,7 @@ exit: void Mpl::HandleRetransmissionTimer(Timer &aTimer) { - aTimer.GetOwner().HandleRetransmissionTimer(); + aTimer.Get().HandleRetransmissionTimer(); } void Mpl::HandleRetransmissionTimer(void) diff --git a/src/core/net/sntp_client.cpp b/src/core/net/sntp_client.cpp index 40ce98d5c..4dbc943d9 100644 --- a/src/core/net/sntp_client.cpp +++ b/src/core/net/sntp_client.cpp @@ -92,7 +92,7 @@ QueryMetadata::QueryMetadata(otSntpResponseHandler aHandler, void *aContext) Client::Client(Instance &aInstance) : mSocket(aInstance) - , mRetransmissionTimer(aInstance, Client::HandleRetransmissionTimer, this) + , mRetransmissionTimer(aInstance, Client::HandleRetransmissionTimer) , mUnixEra(0) { } @@ -280,7 +280,7 @@ void Client::FinalizeSntpTransaction(Message & aQuery, void Client::HandleRetransmissionTimer(Timer &aTimer) { - aTimer.GetOwner().HandleRetransmissionTimer(); + aTimer.Get().HandleRetransmissionTimer(); } void Client::HandleRetransmissionTimer(void) diff --git a/src/core/net/srp_client.cpp b/src/core/net/srp_client.cpp index 1e48b8d64..4157c37de 100644 --- a/src/core/net/srp_client.cpp +++ b/src/core/net/srp_client.cpp @@ -144,7 +144,7 @@ Client::Client(Instance &aInstance) , mCallback(nullptr) , mCallbackContext(nullptr) , mDomainName(kDefaultDomainName) - , mTimer(aInstance, Client::HandleTimer, this) + , mTimer(aInstance, Client::HandleTimer) { mHostInfo.Init(); @@ -1399,7 +1399,7 @@ bool Client::ShouldRenewEarly(const Service &aService) const void Client::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void Client::HandleTimer(void) diff --git a/src/core/net/srp_server.cpp b/src/core/net/srp_server.cpp index 79288b7f2..cdfbb4f80 100644 --- a/src/core/net/srp_server.cpp +++ b/src/core/net/srp_server.cpp @@ -85,8 +85,8 @@ Server::Server(Instance &aInstance) , mMaxLease(kDefaultMaxLease) , mMinKeyLease(kDefaultMinKeyLease) , mMaxKeyLease(kDefaultMaxKeyLease) - , mLeaseTimer(aInstance, HandleLeaseTimer, this) - , mOutstandingUpdatesTimer(aInstance, HandleOutstandingUpdatesTimer, this) + , mLeaseTimer(aInstance, HandleLeaseTimer) + , mOutstandingUpdatesTimer(aInstance, HandleOutstandingUpdatesTimer) , mEnabled(false) { IgnoreError(SetDomain(kDefaultDomain)); @@ -1130,7 +1130,7 @@ exit: void Server::HandleLeaseTimer(Timer &aTimer) { - aTimer.GetOwner().HandleLeaseTimer(); + aTimer.Get().HandleLeaseTimer(); } void Server::HandleLeaseTimer(void) @@ -1250,7 +1250,7 @@ void Server::HandleLeaseTimer(void) void Server::HandleOutstandingUpdatesTimer(Timer &aTimer) { - aTimer.GetOwner().HandleOutstandingUpdatesTimer(); + aTimer.Get().HandleOutstandingUpdatesTimer(); } void Server::HandleOutstandingUpdatesTimer(void) diff --git a/src/core/radio/trel_link.cpp b/src/core/radio/trel_link.cpp index 6349c13ea..6f5e2e8c4 100644 --- a/src/core/radio/trel_link.cpp +++ b/src/core/radio/trel_link.cpp @@ -49,8 +49,8 @@ Link::Link(Instance &aInstance) , mRxChannel(0) , mPanId(Mac::kPanIdBroadcast) , mTxPacketNumber(0) - , mTxTasklet(aInstance, HandleTxTasklet, this) - , mTimer(aInstance, HandleTimer, this) + , mTxTasklet(aInstance, HandleTxTasklet) + , mTimer(aInstance, HandleTimer) , mInterface(aInstance) { memset(&mTxFrame, 0, sizeof(mTxFrame)); @@ -115,7 +115,7 @@ void Link::Send(void) void Link::HandleTxTasklet(Tasklet &aTasklet) { - aTasklet.GetOwner().HandleTxTasklet(); + aTasklet.Get().HandleTxTasklet(); } void Link::HandleTxTasklet(void) @@ -248,7 +248,7 @@ void Link::InvokeSendDone(otError aError, Mac::RxFrame *aAckFrame) void Link::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void Link::HandleTimer(void) diff --git a/src/core/thread/announce_begin_server.cpp b/src/core/thread/announce_begin_server.cpp index 9183df4d9..102398041 100644 --- a/src/core/thread/announce_begin_server.cpp +++ b/src/core/thread/announce_begin_server.cpp @@ -92,7 +92,7 @@ exit: void AnnounceBeginServer::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().AnnounceSenderBase::HandleTimer(); + aTimer.Get().AnnounceSenderBase::HandleTimer(); } } // namespace ot diff --git a/src/core/thread/announce_sender.cpp b/src/core/thread/announce_sender.cpp index 10218ab18..88337d511 100644 --- a/src/core/thread/announce_sender.cpp +++ b/src/core/thread/announce_sender.cpp @@ -52,7 +52,7 @@ AnnounceSenderBase::AnnounceSenderBase(Instance &aInstance, Timer::Handler aHand , mJitter(0) , mCount(0) , mChannel(0) - , mTimer(aInstance, aHandler, this) + , mTimer(aInstance, aHandler) { } @@ -116,7 +116,7 @@ AnnounceSender::AnnounceSender(Instance &aInstance) void AnnounceSender::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().AnnounceSenderBase::HandleTimer(); + aTimer.Get().AnnounceSenderBase::HandleTimer(); } void AnnounceSender::CheckState(void) diff --git a/src/core/thread/discover_scanner.cpp b/src/core/thread/discover_scanner.cpp index 1234558ae..20114f9f9 100644 --- a/src/core/thread/discover_scanner.cpp +++ b/src/core/thread/discover_scanner.cpp @@ -48,7 +48,7 @@ DiscoverScanner::DiscoverScanner(Instance &aInstance) : InstanceLocator(aInstance) , mHandler(nullptr) , mHandlerContext(nullptr) - , mTimer(aInstance, DiscoverScanner::HandleTimer, this) + , mTimer(aInstance, DiscoverScanner::HandleTimer) , mFilterIndexes() , mState(kStateIdle) , mScanChannel(0) @@ -258,7 +258,7 @@ void DiscoverScanner::HandleDiscoverComplete(void) void DiscoverScanner::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void DiscoverScanner::HandleTimer(void) diff --git a/src/core/thread/dua_manager.cpp b/src/core/thread/dua_manager.cpp index ab3ad4706..17f23fd14 100644 --- a/src/core/thread/dua_manager.cpp +++ b/src/core/thread/dua_manager.cpp @@ -51,7 +51,7 @@ namespace ot { DuaManager::DuaManager(Instance &aInstance) : InstanceLocator(aInstance) - , mRegistrationTask(aInstance, DuaManager::HandleRegistrationTask, this) + , mRegistrationTask(aInstance, DuaManager::HandleRegistrationTask) , mDuaNotification(UriPath::kDuaRegistrationNotify, &DuaManager::HandleDuaNotification, this) , mIsDuaPending(false) #if OPENTHREAD_CONFIG_DUA_ENABLE @@ -396,6 +396,11 @@ void DuaManager::HandleTimeTick(void) UpdateTimeTickerRegistration(); } +void DuaManager::HandleRegistrationTask(Tasklet &aTasklet) +{ + aTasklet.Get().PerformNextRegistration(); +} + void DuaManager::UpdateTimeTickerRegistration(void) { if (mDelay.mValue == 0) diff --git a/src/core/thread/dua_manager.hpp b/src/core/thread/dua_manager.hpp index ac46c6b6c..dc3a7b95b 100644 --- a/src/core/thread/dua_manager.hpp +++ b/src/core/thread/dua_manager.hpp @@ -190,7 +190,7 @@ private: void HandleTimeTick(void); - static void HandleRegistrationTask(Tasklet &aTasklet) { aTasklet.GetOwner().PerformNextRegistration(); } + static void HandleRegistrationTask(Tasklet &aTasklet); void UpdateTimeTickerRegistration(void); diff --git a/src/core/thread/energy_scan_server.cpp b/src/core/thread/energy_scan_server.cpp index e6d1e7da6..11d2e45e1 100644 --- a/src/core/thread/energy_scan_server.cpp +++ b/src/core/thread/energy_scan_server.cpp @@ -55,7 +55,7 @@ EnergyScanServer::EnergyScanServer(Instance &aInstance) , mCount(0) , mActive(false) , mScanResultsLength(0) - , mTimer(aInstance, EnergyScanServer::HandleTimer, this) + , mTimer(aInstance, EnergyScanServer::HandleTimer) , mEnergyScan(UriPath::kEnergyScan, &EnergyScanServer::HandleRequest, this) { Get().AddResource(mEnergyScan); @@ -106,7 +106,7 @@ exit: void EnergyScanServer::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void EnergyScanServer::HandleTimer(void) diff --git a/src/core/thread/key_manager.cpp b/src/core/thread/key_manager.cpp index 3e0ec2cf7..7b5c18cfd 100644 --- a/src/core/thread/key_manager.cpp +++ b/src/core/thread/key_manager.cpp @@ -66,7 +66,7 @@ KeyManager::KeyManager(Instance &aInstance) , mKeyRotationTime(kDefaultKeyRotationTime) , mKeySwitchGuardTime(kDefaultKeySwitchGuardTime) , mKeySwitchGuardEnabled(false) - , mKeyRotationTimer(aInstance, KeyManager::HandleKeyRotationTimer, this) + , mKeyRotationTimer(aInstance, KeyManager::HandleKeyRotationTimer) , mKekFrameCounter(0) , mSecurityPolicyFlags(kDefaultSecurityPolicyFlags) , mIsPskcSet(false) @@ -323,7 +323,7 @@ void KeyManager::StartKeyRotationTimer(void) void KeyManager::HandleKeyRotationTimer(Timer &aTimer) { - aTimer.GetOwner().HandleKeyRotationTimer(); + aTimer.Get().HandleKeyRotationTimer(); } void KeyManager::HandleKeyRotationTimer(void) diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index fed88d8bb..fe66949cb 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -89,7 +89,7 @@ MeshForwarder::MeshForwarder(Instance &aInstance) , mEnabled(false) , mTxPaused(false) , mSendBusy(false) - , mScheduleTransmissionTask(aInstance, MeshForwarder::ScheduleTransmissionTask, this) + , mScheduleTransmissionTask(aInstance, MeshForwarder::ScheduleTransmissionTask) #if OPENTHREAD_FTD , mIndirectSender(aInstance) #endif @@ -229,7 +229,7 @@ void MeshForwarder::ResumeMessageTransmissions(void) void MeshForwarder::ScheduleTransmissionTask(Tasklet &aTasklet) { - aTasklet.GetOwner().ScheduleTransmissionTask(); + aTasklet.Get().ScheduleTransmissionTask(); } void MeshForwarder::ScheduleTransmissionTask(void) diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index 47ed5171a..7161e8b5a 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -71,9 +71,9 @@ Mle::Mle(Instance &aInstance) , mReattachState(kReattachStop) , mAttachCounter(0) , mAnnounceDelay(kAnnounceTimeout) - , mAttachTimer(aInstance, Mle::HandleAttachTimer, this) - , mDelayedResponseTimer(aInstance, Mle::HandleDelayedResponseTimer, this) - , mMessageTransmissionTimer(aInstance, Mle::HandleMessageTransmissionTimer, this) + , mAttachTimer(aInstance, Mle::HandleAttachTimer) + , mDelayedResponseTimer(aInstance, Mle::HandleDelayedResponseTimer) + , mMessageTransmissionTimer(aInstance, Mle::HandleMessageTransmissionTimer) , mParentLeaderCost(0) , mParentRequestMode(kAttachAny) , mParentPriority(0) @@ -101,7 +101,7 @@ Mle::Mle(Instance &aInstance) , mParentSearchBackoffWasCanceled(false) , mParentSearchRecentlyDetached(false) , mParentSearchBackoffCancelTime(0) - , mParentSearchTimer(aInstance, Mle::HandleParentSearchTimer, this) + , mParentSearchTimer(aInstance, Mle::HandleParentSearchTimer) #endif , mAnnounceChannel(0) , mAlternateChannel(0) @@ -1622,7 +1622,7 @@ exit: void Mle::HandleAttachTimer(Timer &aTimer) { - aTimer.GetOwner().HandleAttachTimer(); + aTimer.Get().HandleAttachTimer(); } void Mle::HandleAttachTimer(void) @@ -1858,7 +1858,7 @@ exit: void Mle::HandleDelayedResponseTimer(Timer &aTimer) { - aTimer.GetOwner().HandleDelayedResponseTimer(); + aTimer.Get().HandleDelayedResponseTimer(); } void Mle::HandleDelayedResponseTimer(void) @@ -2174,7 +2174,7 @@ exit: void Mle::HandleMessageTransmissionTimer(Timer &aTimer) { - aTimer.GetOwner().HandleMessageTransmissionTimer(); + aTimer.Get().HandleMessageTransmissionTimer(); } void Mle::HandleMessageTransmissionTimer(void) @@ -3964,7 +3964,7 @@ exit: #if OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE void Mle::HandleParentSearchTimer(Timer &aTimer) { - aTimer.GetOwner().HandleParentSearchTimer(); + aTimer.Get().HandleParentSearchTimer(); } void Mle::HandleParentSearchTimer(void) diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index 1d4cff3fc..cedd8f2cf 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -56,7 +56,7 @@ namespace Mle { MleRouter::MleRouter(Instance &aInstance) : Mle(aInstance) - , mAdvertiseTimer(aInstance, MleRouter::HandleAdvertiseTimer, nullptr, this) + , mAdvertiseTimer(aInstance, MleRouter::HandleAdvertiseTimer, nullptr) , mAddressSolicit(UriPath::kAddressSolicit, &MleRouter::HandleAddressSolicit, this) , mAddressRelease(UriPath::kAddressRelease, &MleRouter::HandleAddressRelease, this) , mChildTable(aInstance) @@ -388,7 +388,7 @@ void MleRouter::SetStateLeader(uint16_t aRloc16) bool MleRouter::HandleAdvertiseTimer(TrickleTimer &aTimer) { - return aTimer.GetOwner().HandleAdvertiseTimer(); + return aTimer.Get().HandleAdvertiseTimer(); } bool MleRouter::HandleAdvertiseTimer(void) diff --git a/src/core/thread/network_data_leader_ftd.cpp b/src/core/thread/network_data_leader_ftd.cpp index c07db939f..f9b4aaf3a 100644 --- a/src/core/thread/network_data_leader_ftd.cpp +++ b/src/core/thread/network_data_leader_ftd.cpp @@ -57,7 +57,7 @@ namespace NetworkData { Leader::Leader(Instance &aInstance) : LeaderBase(aInstance) - , mTimer(aInstance, Leader::HandleTimer, this) + , mTimer(aInstance, Leader::HandleTimer) , mServerData(UriPath::kServerData, &Leader::HandleServerData, this) , mCommissioningDataGet(UriPath::kCommissionerGet, &Leader::HandleCommissioningGet, this) , mCommissioningDataSet(UriPath::kCommissionerSet, &Leader::HandleCommissioningSet, this) @@ -1331,7 +1331,7 @@ void Leader::UpdateContextsAfterReset(void) void Leader::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void Leader::HandleTimer(void) diff --git a/src/core/thread/network_data_notifier.cpp b/src/core/thread/network_data_notifier.cpp index eed8087f6..12c5adb04 100644 --- a/src/core/thread/network_data_notifier.cpp +++ b/src/core/thread/network_data_notifier.cpp @@ -46,7 +46,7 @@ namespace NetworkData { Notifier::Notifier(Instance &aInstance) : InstanceLocator(aInstance) - , mTimer(aInstance, Notifier::HandleTimer, this) + , mTimer(aInstance, Notifier::HandleTimer) , mNextDelay(0) , mWaitingForResponse(false) { @@ -115,7 +115,7 @@ void Notifier::HandleNotifierEvents(Events aEvents) void Notifier::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void Notifier::HandleTimer(void) diff --git a/src/core/thread/panid_query_server.cpp b/src/core/thread/panid_query_server.cpp index 8d4b0823f..6567b0ad4 100644 --- a/src/core/thread/panid_query_server.cpp +++ b/src/core/thread/panid_query_server.cpp @@ -50,7 +50,7 @@ PanIdQueryServer::PanIdQueryServer(Instance &aInstance) : InstanceLocator(aInstance) , mChannelMask(0) , mPanId(Mac::kPanIdBroadcast) - , mTimer(aInstance, PanIdQueryServer::HandleTimer, this) + , mTimer(aInstance, PanIdQueryServer::HandleTimer) , mPanIdQuery(UriPath::kPanIdQuery, &PanIdQueryServer::HandleQuery, this) { Get().AddResource(mPanIdQuery); @@ -140,7 +140,7 @@ exit: void PanIdQueryServer::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void PanIdQueryServer::HandleTimer(void) diff --git a/src/core/thread/time_sync_service.cpp b/src/core/thread/time_sync_service.cpp index eeee38066..be9121137 100644 --- a/src/core/thread/time_sync_service.cpp +++ b/src/core/thread/time_sync_service.cpp @@ -62,7 +62,7 @@ TimeSync::TimeSync(Instance &aInstance) , mNetworkTimeOffset(0) , mTimeSyncCallback(nullptr) , mTimeSyncCallbackContext(nullptr) - , mTimer(aInstance, HandleTimeout, this) + , mTimer(aInstance, HandleTimeout) , mCurrentStatus(OT_NETWORK_TIME_UNSYNCHRONIZED) { CheckAndHandleChanges(false); @@ -210,7 +210,7 @@ void TimeSync::HandleTimeout(void) void TimeSync::HandleTimeout(Timer &aTimer) { - aTimer.GetOwner().HandleTimeout(); + aTimer.Get().HandleTimeout(); } void TimeSync::CheckAndHandleChanges(bool aTimeUpdated) diff --git a/src/core/utils/channel_manager.cpp b/src/core/utils/channel_manager.cpp index 9990090e1..555e217e2 100644 --- a/src/core/utils/channel_manager.cpp +++ b/src/core/utils/channel_manager.cpp @@ -54,7 +54,7 @@ ChannelManager::ChannelManager(Instance &aInstance) , mDelay(kMinimumDelay) , mChannel(0) , mState(kStateIdle) - , mTimer(aInstance, ChannelManager::HandleTimer, this) + , mTimer(aInstance, ChannelManager::HandleTimer) , mAutoSelectInterval(kDefaultAutoSelectInterval) , mAutoSelectEnabled(false) { @@ -153,7 +153,7 @@ void ChannelManager::HandleDatasetUpdateDone(otError aError) void ChannelManager::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void ChannelManager::HandleTimer(void) diff --git a/src/core/utils/channel_monitor.cpp b/src/core/utils/channel_monitor.cpp index 5c5ba274c..bdf610c62 100644 --- a/src/core/utils/channel_monitor.cpp +++ b/src/core/utils/channel_monitor.cpp @@ -62,7 +62,7 @@ ChannelMonitor::ChannelMonitor(Instance &aInstance) : InstanceLocator(aInstance) , mChannelMaskIndex(0) , mSampleCount(0) - , mTimer(aInstance, ChannelMonitor::HandleTimer, this) + , mTimer(aInstance, ChannelMonitor::HandleTimer) { memset(mChannelOccupancy, 0, sizeof(mChannelOccupancy)); } @@ -114,7 +114,7 @@ exit: void ChannelMonitor::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void ChannelMonitor::HandleTimer(void) diff --git a/src/core/utils/child_supervision.cpp b/src/core/utils/child_supervision.cpp index 1ca45ef09..e6be59fc1 100644 --- a/src/core/utils/child_supervision.cpp +++ b/src/core/utils/child_supervision.cpp @@ -155,7 +155,7 @@ void ChildSupervisor::HandleNotifierEvents(Events aEvents) SupervisionListener::SupervisionListener(Instance &aInstance) : InstanceLocator(aInstance) , mTimeout(0) - , mTimer(aInstance, SupervisionListener::HandleTimer, this) + , mTimer(aInstance, SupervisionListener::HandleTimer) { SetTimeout(kDefaultTimeout); } @@ -206,7 +206,7 @@ void SupervisionListener::RestartTimer(void) void SupervisionListener::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void SupervisionListener::HandleTimer(void) diff --git a/src/core/utils/dataset_updater.cpp b/src/core/utils/dataset_updater.cpp index 10aea32d6..fde10dce3 100644 --- a/src/core/utils/dataset_updater.cpp +++ b/src/core/utils/dataset_updater.cpp @@ -51,7 +51,7 @@ DatasetUpdater::DatasetUpdater(Instance &aInstance) , mWaitInterval(kWaitInterval) , mCallback(nullptr) , mCallbackContext(nullptr) - , mTimer(aInstance, DatasetUpdater::HandleTimer, this) + , mTimer(aInstance, DatasetUpdater::HandleTimer) , mDataset(nullptr) { } @@ -100,7 +100,7 @@ void DatasetUpdater::CancelUpdate(void) void DatasetUpdater::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void DatasetUpdater::HandleTimer(void) diff --git a/src/core/utils/jam_detector.cpp b/src/core/utils/jam_detector.cpp index 7a09aee8c..896025517 100644 --- a/src/core/utils/jam_detector.cpp +++ b/src/core/utils/jam_detector.cpp @@ -49,7 +49,7 @@ JamDetector::JamDetector(Instance &aInstance) : InstanceLocator(aInstance) , mHandler(nullptr) , mContext(nullptr) - , mTimer(aInstance, JamDetector::HandleTimer, this) + , mTimer(aInstance, JamDetector::HandleTimer) , mHistoryBitmap(0) , mCurSecondStartTime(0) , mSampleInterval(0) @@ -161,7 +161,7 @@ exit: void JamDetector::HandleTimer(Timer &aTimer) { - aTimer.GetOwner().HandleTimer(); + aTimer.Get().HandleTimer(); } void JamDetector::HandleTimer(void) diff --git a/src/ncp/ncp_base.cpp b/src/ncp/ncp_base.cpp index aba230e6c..895559a65 100644 --- a/src/ncp/ncp_base.cpp +++ b/src/ncp/ncp_base.cpp @@ -207,7 +207,7 @@ NcpBase::NcpBase(Instance *aInstance) , mDiscoveryScanJoinerFlag(false) , mDiscoveryScanEnableFiltering(false) , mDiscoveryScanPanId(0xffff) - , mUpdateChangedPropsTask(*aInstance, NcpBase::UpdateChangedProps, this) + , mUpdateChangedPropsTask(*aInstance, NcpBase::UpdateChangedProps) , mThreadChangedFlags(0) , mHostPowerState(SPINEL_HOST_POWER_STATE_ONLINE) , mHostPowerReplyFrameTag(Spinel::Buffer::kInvalidTag) diff --git a/src/ncp/ncp_spi.cpp b/src/ncp/ncp_spi.cpp index 92009ea71..0f4257066 100644 --- a/src/ncp/ncp_spi.cpp +++ b/src/ncp/ncp_spi.cpp @@ -82,7 +82,7 @@ NcpSpi::NcpSpi(Instance *aInstance) , mTxState(kTxStateIdle) , mHandlingRxFrame(false) , mResetFlag(true) - , mPrepareTxFrameTask(*aInstance, NcpSpi::PrepareTxFrame, this) + , mPrepareTxFrameTask(*aInstance, NcpSpi::PrepareTxFrame) , mSendFrameLength(0) { SpiFrame sendFrame(mSendFrame); diff --git a/src/ncp/ncp_uart.cpp b/src/ncp/ncp_uart.cpp index 4654efb68..29547b44c 100644 --- a/src/ncp/ncp_uart.cpp +++ b/src/ncp/ncp_uart.cpp @@ -87,7 +87,7 @@ NcpUart::NcpUart(Instance *aInstance) , mState(kStartingFrame) , mByte(0) , mUartSendImmediate(false) - , mUartSendTask(*aInstance, EncodeAndSendToUart, this) + , mUartSendTask(*aInstance, EncodeAndSendToUart) #if OPENTHREAD_ENABLE_NCP_SPINEL_ENCRYPTER , mTxFrameBufferEncrypterReader(mTxFrameBuffer) #endif // OPENTHREAD_ENABLE_NCP_SPINEL_ENCRYPTER diff --git a/tests/unit/test_timer.cpp b/tests/unit/test_timer.cpp index 9ff02ab2e..d3b8e6927 100644 --- a/tests/unit/test_timer.cpp +++ b/tests/unit/test_timer.cpp @@ -87,7 +87,7 @@ template class TestTimer : public TimerType { public: explicit TestTimer(ot::Instance &aInstance) - : TimerType(aInstance, TestTimer::HandleTimerFired, nullptr) + : TimerType(aInstance, TestTimer::HandleTimerFired) , mFiredCounter(0) { }