diff -r 000000000000 -r 4e1aa6a622a0 mediator/src/Server/MediatorCommandTimer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediator/src/Server/MediatorCommandTimer.cpp Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,120 @@ +/* +* Copyright (c) 2005 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: Command expiration timer implementation +* +*/ + + +// INCLUDE FILES +#include +#include "MediatorCommandTimer.h" +#include "Debug.h" + +// CONSTANTS +const TInt KMilliSeconds = 1000; + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CMediatorCommandTimer::CMediatorCommandTimer +// ----------------------------------------------------------------------------- +// +CMediatorCommandTimer::CMediatorCommandTimer() + : CTimer( EPriorityNormal ) + { + } + +// ----------------------------------------------------------------------------- +// CMediatorCommandTimer::ConstructL +// ----------------------------------------------------------------------------- +// +void CMediatorCommandTimer::ConstructL() + { + CTimer::ConstructL(); + CActiveScheduler::Add( this ); + + } + +// ----------------------------------------------------------------------------- +// CMediatorCommandTimer::NewL +// ----------------------------------------------------------------------------- +// +CMediatorCommandTimer* CMediatorCommandTimer::NewL() + { + CMediatorCommandTimer* self = new( ELeave ) CMediatorCommandTimer(); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + return self; + } + +// ----------------------------------------------------------------------------- +// CMediatorCommandTimer::~CMediatorCommandTimer +// ----------------------------------------------------------------------------- +// +CMediatorCommandTimer::~CMediatorCommandTimer() + { + Cancel(); + iCallBack = NULL; + } + +// ----------------------------------------------------------------------------- +// CMediatorCommandTimer::RunL +// +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CMediatorCommandTimer::RunL() + { + if ( iCallBack ) + { + iCallBack->TimerCallBack( iDomain, iCategory, iCommandId ); + } + } + +// ----------------------------------------------------------------------------- +// CMediatorCommandTimer::StartTimer +// +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CMediatorCommandTimer::StartTimer( MMediatorTimerCallback* aCallBack, + TUid aDomain, + TUid aCategory, + TInt aCommandId, + TInt aInterval ) + { + TInt error = KErrNone; + if ( IsActive() ) + { + ERROR_TRACE(Print(_L("[Mediator] CMediatorCommandTimer::StartTimer: failure, command %d in category %d of domain %d\n"), aCommandId, + aCategory.iUid, + aDomain.iUid )); + error = KErrInUse; + } + else + { + iCallBack = aCallBack; + iDomain = aDomain; + iCategory = aCategory; + iCommandId = aCommandId; + CTimer::After( aInterval * KMilliSeconds ); + } + return error; + } + +// End of File