diff -r 65a3ef1d5bd0 -r f742655b05bf convergedconnectionhandler/cchserver/src/cchstartupcounter.cpp --- a/convergedconnectionhandler/cchserver/src/cchstartupcounter.cpp Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,186 +0,0 @@ -/* -* Copyright (c) 2008 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: CCchStartupCounter implementation -* -*/ - - -// INCLUDE FILES -#include "cchlogger.h" -#include "cchstartupcounter.h" -#include "cchserverbase.h" -#include "cchspshandler.h" -#include "cchservicehandler.h" -#include "cchprivatecrkeys.h" -#include - -// EXTERNAL DATA STRUCTURES -// None - -// EXTERNAL FUNCTION PROTOTYPES -// None - -// CONSTANTS -// Some critical process has crashed three times during startup registration -// to avoid bootlock situation set startup flag to OFF after max count -const TInt KCCHMaxStartupCount = 3; - -// MACROS -// None - -// LOCAL CONSTANTS AND MACROS -// None - -// MODULE DATA STRUCTURES -// None - -// LOCAL FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -// None - -// ============================= LOCAL FUNCTIONS ============================= - -// ============================ MEMBER FUNCTIONS ============================= - -// --------------------------------------------------------------------------- -// CCchStartupCounter::CCchStartupCounter -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------- -// -CCchStartupCounter::CCchStartupCounter( CCCHServerBase& aServer ) - : iServer( aServer ) - { - // No implementation required - } - -// --------------------------------------------------------------------------- -// CCchStartupCounter::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------- -// -void CCchStartupCounter::ConstructL() - { - iStartupRepository = CRepository::NewL( KCRUidCch ); - } - -// --------------------------------------------------------------------------- -// CCchStartupCounter::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CCchStartupCounter* CCchStartupCounter::NewL( CCCHServerBase& aServer ) - { - CCchStartupCounter* self = new (ELeave) CCchStartupCounter( aServer ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// Destructor -CCchStartupCounter::~CCchStartupCounter() - { - delete iStartupRepository; - } - -// --------------------------------------------------------------------------- -// CCchStartupCounter::StartupOccuredL -// -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -void CCchStartupCounter::StartupOccuredL() - { - CCHLOGSTRING( "CCchStartupCounter::StartupOccuredL IN" ); - - TInt startupCounter( KErrNone ); - User::LeaveIfError( iStartupRepository->Get( - KCCHStartupCounter, startupCounter ) ); - - startupCounter++; - CCHLOGSTRING2( - "CCchStartupCounter -> startup counter: %d", startupCounter ); - - if ( startupCounter >= KCCHMaxStartupCount ) - { - CCHLOGSTRING( "CCchStartupCounter -> set startup flag to OFF" ); - // Some critical process has crashed three times during startup registration.. - startupCounter = 0; - // ..to avoid bootlock situation set startup flag to OFF - HandleStartupExceptionsL(); - } - - User::LeaveIfError( iStartupRepository->Set( - KCCHStartupCounter, startupCounter ) ); - - CCHLOGSTRING( "CCchStartupCounter::StartupOccuredL OUT" ); - } - -// --------------------------------------------------------------------------- -// CCchStartupCounter::HandleStartupExceptionsL -// -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -void CCchStartupCounter::HandleStartupExceptionsL() - { - CCHLOGSTRING( "CCchStartupCounter::HandleStartupExceptionsL IN" ); - - RArray serviceIds; - CleanupClosePushL( serviceIds ); - RArray subserviceTypes; - CleanupClosePushL( subserviceTypes ); - - iServer.SPSHandler().GetServiceIdsL( serviceIds ); - for ( TInt i( 0 ); i < serviceIds.Count(); i++ ) - { - iServer.ServiceHandler().GetSubserviceTypesL( - serviceIds[ i ], subserviceTypes ); - - for ( TInt j( 0 ); j < subserviceTypes.Count(); j++ ) - { - iServer.ServiceHandler().SetStartupFlag( TServiceSelection( - serviceIds[ i ], subserviceTypes[ j ] ), EFalse ); - iServer.SPSHandler().SetLoadAtStartUpL( - serviceIds[ i ], subserviceTypes[ j ], EFalse ); - } - } - - CleanupStack::PopAndDestroy( &subserviceTypes ); - CleanupStack::PopAndDestroy( &serviceIds ); - - CCHLOGSTRING( "CCchStartupCounter::HandleStartupExceptionsL OUT" ); - } - -// --------------------------------------------------------------------------- -// CCchStartupCounter::ResetStartupCounter -// -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -void CCchStartupCounter::ResetStartupCounter() - { - CCHLOGSTRING( "CCchStartupCounter::ResetStartupCounter IN" ); - - iStartupRepository->Set( - KCCHStartupCounter, KErrNone ); - - CCHLOGSTRING( "CCchStartupCounter::ResetStartupCounter OUT" ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ======================= - -// End of File