diff -r 000000000000 -r a4daefaec16c voipplugins/sipconnectionprovider/src/scpdisabled.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/voipplugins/sipconnectionprovider/src/scpdisabled.cpp Mon Jan 18 20:12:36 2010 +0200 @@ -0,0 +1,131 @@ +/* +* Copyright (c) 2002-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: +* +*/ + + +#include "scpdisabled.h" +#include "scpsubservice.h" +#include "scpservicehandlerbase.h" +#include "scplogger.h" +#include "scputility.h" + +// ----------------------------------------------------------------------------- +// TScpDisabled::CTScpDisabled +// ----------------------------------------------------------------------------- +// +TScpDisabled::TScpDisabled() + { + SCPLOGSTRING( "TScpDisabled::TScpDisabled" ); + } + +// ----------------------------------------------------------------------------- +// TScpDisabled::State +// ----------------------------------------------------------------------------- +// +TCCHSubserviceState TScpDisabled::State() const + { + SCPLOGSTRING( "TScpDisabled::State" ); + + return ECCHDisabled; + } + +// ----------------------------------------------------------------------------- +// TScpDisabled::EnableL +// ----------------------------------------------------------------------------- +// +void TScpDisabled::EnableL( CScpSubService& aSubService ) const + { + SCPLOGSTRING( "TScpDisabled::EnableL" ); + + aSubService.SetSubServiceDisconnected( EFalse ); + aSubService.SetEnableRequestedState( CScpSubService::EScpEnabled ); + + CScpServiceHandlerBase& handler = aSubService.ServiceHandler(); + TRAPD( error, handler.EnableSubServiceL() ); + + if ( KErrNoMemory == error ) + { + User::Leave( error ); + } + + if( error != KErrNone ) + { + TInt cchError = TScpUtility::ConvertToCchError( error ); + if( cchError != KErrUnknown ) + { + ChangeState( aSubService, ECCHConnecting, cchError ); + } + else + { + // If another sub service is already in use, no need to + // leave + if( error != KErrInUse ) + { + User::LeaveIfError( error ); + } + } + } + } + +// ----------------------------------------------------------------------------- +// TScpDisabled::NetworkFound +// ----------------------------------------------------------------------------- +// +void TScpDisabled::NetworkFound( CScpSubService& aSubService ) const + { + SCPLOGSTRING( "TScpDisabled::NetworkFound" ); + + ChangeState( aSubService, ECCHConnecting, KErrNone ); + } + +// ----------------------------------------------------------------------------- +// TScpDisabled::NetworkNotFound +// ----------------------------------------------------------------------------- +// +void TScpDisabled::NetworkNotFound( CScpSubService& aSubService ) const + { + SCPLOGSTRING( "TScpDisabled::NetworkNotFound" ); + + // This is because some other app has enabled sip profile + // and we move from disabled to connecting. But should the update + // be done at all? See ServiceManager::UpdateService + + ChangeState( aSubService, ECCHConnecting, KCCHErrorNetworkLost ); + } + +// ----------------------------------------------------------------------------- +// TScpDisabled::NetworkLost +// ----------------------------------------------------------------------------- +// +void TScpDisabled::NetworkLost( CScpSubService& aSubService ) const + { + SCPLOGSTRING( "TScpDisabled::NetworkLost" ); + + ChangeState( aSubService, ECCHConnecting, KCCHErrorNetworkLost ); + } + +// ----------------------------------------------------------------------------- +// TScpDisabled::ServiceConnected +// ----------------------------------------------------------------------------- +// +void TScpDisabled::ServiceConnected( CScpSubService& aSubService ) const + { + SCPLOGSTRING( "TScpDisabled::ServiceConnected" ); + + ChangeState( aSubService, ECCHEnabled, KErrNone ); + } + +// End of File