diff -r 000000000000 -r af10295192d8 linklayercontrol/networkinterfacemgr/src/MTIMER.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/linklayercontrol/networkinterfacemgr/src/MTIMER.CPP Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,102 @@ +// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// One-shot timer mixin +// +// + +/** + @file +*/ + + +#include +#include "NI_STD.H" + +NONSHARABLE_CLASS(COneShotTimer) : public CTimer +/** +@internalComponent +*/ + { +public: + COneShotTimer(MTimer* aTimer, TInt aPriority); + void ConstructL(); + virtual void RunL(); +private: + MTimer *iTimer; + }; + +#if !defined(__EABI__) && !defined(__X86GCC__) +EXPORT_C MTimer::MTimer() + : iTimer(NULL) +/** +Constructor +*/ + { + } +#endif + +EXPORT_C void MTimer::TimerDelete() + { + delete iTimer; + iTimer=NULL; + } + +EXPORT_C void MTimer::TimerConstructL(TInt aPriority) + { + iTimer = new (ELeave) COneShotTimer(this, aPriority); + ((COneShotTimer*)iTimer)->ConstructL(); + } + +EXPORT_C void MTimer::TimerAt(const TTime& aTime) + { + __ASSERT_DEBUG(iTimer!=NULL, NetUtilPanic(ENuPanic_NotConstructed)); + iTimer->At(aTime); + } + +EXPORT_C void MTimer::TimerAfter(TTimeIntervalMicroSeconds32 aInterval) + { + __ASSERT_DEBUG(iTimer!=NULL, NetUtilPanic(ENuPanic_NotConstructed)); + iTimer->After(aInterval); + } + +EXPORT_C void MTimer::TimerLock(TTimerLockSpec aLock) + { + __ASSERT_DEBUG(iTimer!=NULL, NetUtilPanic(ENuPanic_NotConstructed)); + iTimer->Lock(aLock); + } + +EXPORT_C void MTimer::TimerCancel() + { + if (iTimer!=NULL) + iTimer->Cancel(); + } + +COneShotTimer::COneShotTimer(MTimer* aTimer, TInt aPriority) + : CTimer(aPriority), iTimer(aTimer) +/** +Constructor +*/ + { + CActiveScheduler::Add(this); + } + +void COneShotTimer::RunL() + { + iTimer->TimerComplete(iStatus.Int()); + } + +void COneShotTimer::ConstructL() + { + CTimer::ConstructL(); + }