diff -r 000000000000 -r 09774dfdd46b internetradio2.0/streamsourcesrc/irsockettimeouttimer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/internetradio2.0/streamsourcesrc/irsockettimeouttimer.cpp Mon Apr 19 14:01:53 2010 +0300 @@ -0,0 +1,113 @@ +/* +* Copyright (c) 2006-2007 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: ?Description +* +*/ + + +#include "irdebug.h" +#include "irsockettimeouttimer.h" + +// --------------------------------------------------------------------------- +// Default constructor +// --------------------------------------------------------------------------- +// +CIRSocketTimeOutTimer::CIRSocketTimeOutTimer( const TInt aPriority, + MIRSocketTimeoutNotifier& aNotify) : CTimer( aPriority ), + iNotify( aNotify ) + { + // Definition not required + } + +// --------------------------------------------------------------------------- +// Default destructor +// --------------------------------------------------------------------------- +// +CIRSocketTimeOutTimer::~CIRSocketTimeOutTimer() + { + // Cancel any pending requests + Cancel(); + } + +// --------------------------------------------------------------------------- +// Creates the CTimer object +// --------------------------------------------------------------------------- +// +void CIRSocketTimeOutTimer::ConstructL() + { + // Create the Timer + CTimer::ConstructL(); + // Add the active object active scheduler + CActiveScheduler::Add( this ); + } + +// --------------------------------------------------------------------------- +// CIRSocketTimeOutTimer::NewL +// Creates an object of CIRSocketTimeOutTimer +// --------------------------------------------------------------------------- +// +CIRSocketTimeOutTimer* CIRSocketTimeOutTimer::NewL( const TInt aPriority, + MIRSocketTimeoutNotifier& aNotify ) + { + CIRSocketTimeOutTimer* self = CIRSocketTimeOutTimer::NewLC( aPriority, + aNotify ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CIRSocketTimeOutTimer::NewLC +// Creates an object of CIRSocketTimeOutTimer +// --------------------------------------------------------------------------- +// +CIRSocketTimeOutTimer* CIRSocketTimeOutTimer::NewLC( const TInt aPriority, + MIRSocketTimeoutNotifier& aNotify ) + { + CIRSocketTimeOutTimer* self = new (ELeave) CIRSocketTimeOutTimer( + aPriority, aNotify ); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// CIRSocketTimeOutTimer::RunL +// Called when the timer expires +// This is used to notify the observer that timer has expired +// --------------------------------------------------------------------------- +// +void CIRSocketTimeOutTimer::RunL() + { + IRLOG_INFO2( "CIRSocketTimeOutTimer::RunL - Timer expired (%d).", iStatus.Int() ); + if( iStatus == KErrNone ) + { + iNotify.TimerExpired(); + } + else + { + User::Leave(iStatus.Int()); + } + } + +// --------------------------------------------------------------------------- +// CIRSocketTimeOutTimer::RunError +// Called if RunL leaves +// --------------------------------------------------------------------------- +// +TInt CIRSocketTimeOutTimer::RunError( TInt /*aError*/ ) + { + // Ignore any timer expiry errors as they are not critical in this case + IRLOG_DEBUG( "CIRSocketTimeOutTimer::RunError" ); + return KErrNone; + }