--- a/browserui/browser/BrowserAppSrc/BrowserCommsModel.cpp Tue Feb 02 00:12:41 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,288 +0,0 @@
-/*
-* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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:
-* Implementation of CBrowserCommsModel.
-*
-*
-*/
-
-
-// INCLUDE FILES
-
-#include <ActiveApDb.h>
-#include <ApUtils.h>
-#include <ApSelect.h>
-#include <ApListItemList.h>
-#include <ApListItem.h>
-#include <BrowserNG.rsg>
-#include "BrowserCommsModel.h"
-#include "BrowserDialogs.h"
-#include "Browser.hrh"
-
-// CONSTANTS
-
-/// Granularity of observer list.
-LOCAL_D const TInt KObserverListGranularity = 4;
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::NewL
-// ---------------------------------------------------------
-//
-CBrowserCommsModel* CBrowserCommsModel::NewL()
- {
- CBrowserCommsModel* model = new (ELeave) CBrowserCommsModel();
- CleanupStack::PushL( model );
- model->ConstructL();
- CleanupStack::Pop(); // model
- return model;
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::~CBrowserCommsModel
-// ---------------------------------------------------------
-//
-CBrowserCommsModel::~CBrowserCommsModel()
- {
- delete iObservers;
- if ( iDb )
- {
- iDb->RemoveObserver( this );
- }
- delete iCachedApList;
- delete iDb;
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::CBrowserCommsModel
-// ---------------------------------------------------------
-//
-CBrowserCommsModel::CBrowserCommsModel(): iUpdatePending( EFalse )
- {
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::ConstructL
-// ---------------------------------------------------------
-//
-void CBrowserCommsModel::ConstructL()
- {
- iDb = CActiveApDb::NewL( EDatabaseTypeIAP );
- iDb->AddObserverL( this );
- iCachedApList = new (ELeave) CApListItemList();
- iObservers = new (ELeave) CArrayPtrFlat<MCommsModelObserver>
- ( KObserverListGranularity );
- iDelayedRefresh = ETrue;
- //GetAccessPointsL();
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::HandleApDbEventL
-// ---------------------------------------------------------
-//
-void CBrowserCommsModel::HandleApDbEventL
-( MActiveApDbObserver::TEvent aEvent )
- {
- // We try to refresh AP list in two cases:
- // 1. Database changed;
- // 2. Database unlocked and we have a pending update (previous update was
- // unsuccessful).
- if ( aEvent == MActiveApDbObserver::EDbChanged ||
- ( aEvent == MActiveApDbObserver::EDbAvailable && iUpdatePending ) )
- {
- // Try to refresh cached AP list.
- iDelayedRefresh = ETrue;
- //GetAccessPointsL();
- NotifyObserversL();
- }
- // MActiveApDbObserver::EDbClosing:
- // MActiveApDbObserver::EDbAvailable:
- // These events will never come. Commdb cannot be closed
- // with a notifier still on it. (It must be deleted to close.)
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::ApDb
-// ---------------------------------------------------------
-//
-CActiveApDb& CBrowserCommsModel::ApDb() const
- {
- return *iDb;
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::CommsDb
-// ---------------------------------------------------------
-//
-CCommsDatabase& CBrowserCommsModel::CommsDb() const
- {
- return *(iDb->Database());
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::CopyAccessPointsL
-// ---------------------------------------------------------
-//
-CApListItemList* CBrowserCommsModel::CopyAccessPointsL()
- {
- if ( iDelayedRefresh )
- {
- GetAccessPointsL();
- iDelayedRefresh = EFalse;
- }
- CApListItemList* accessPoints = new (ELeave) CApListItemList();
- CleanupStack::PushL( accessPoints );
- CApListItem* ap;
- TInt i;
- TInt count = iCachedApList->Count();
- for ( i = 0; i < count; i++ )
- {
- ap = CApListItem::NewLC( iCachedApList->At( i ) );
- accessPoints->AppendL( ap );
- CleanupStack::Pop(); // ap; owner is now the list.
- }
- CleanupStack::Pop(); // accessPoints
- return accessPoints;
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::AccessPoints
-// ---------------------------------------------------------
-//
-const CApListItemList* CBrowserCommsModel::AccessPointsL()
- {
- if ( iDelayedRefresh )
- {
- GetAccessPointsL();
- iDelayedRefresh = EFalse;
- }
- return iCachedApList;
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::RefreshAccessPointsL
-// ---------------------------------------------------------
-//
-void CBrowserCommsModel::RefreshAccessPointsL()
- {
- iDelayedRefresh = ETrue;
- //GetAccessPointsL();
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::AddObserverL
-// ---------------------------------------------------------
-//
-void CBrowserCommsModel::AddObserverL( MCommsModelObserver& aObserver )
- {
- iObservers->AppendL( &aObserver );
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::RemoveObserver
-// ---------------------------------------------------------
-//
-void CBrowserCommsModel::RemoveObserver( MCommsModelObserver& aObserver )
- {
- TInt i;
- TInt count = iObservers->Count();
- for ( i = 0; i < count; i++ )
- {
- if ( iObservers->At( i ) == &aObserver )
- {
- iObservers->Delete( i );
- break;
- }
- }
- }
-
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::GetAccessPointsL
-// ---------------------------------------------------------
-//
-void CBrowserCommsModel::GetAccessPointsL()
- {
- CApListItemList* apList = new (ELeave) CApListItemList();
- CleanupStack::PushL( apList );
- TRAPD( err, DoGetAccessPointsL( *apList ) );
- switch ( err )
- {
- case KErrNone:
- {
- // Got new data.
- delete iCachedApList;
- CleanupStack::Pop(); // apList: now member.
- iCachedApList = apList;
- iUpdatePending = EFalse;
- //NotifyObserversL();
- break;
- }
-
- case KErrLocked:
- case KErrAccessDenied:
- case KErrPermissionDenied:
- {
- // Could not access database. Update now pending, old data remains.
- CleanupStack::PopAndDestroy(); // apList
- iUpdatePending = ETrue;
- break;
- }
-
- default:
- {
- // Other error. Propagate.
- User::Leave( err );
- break;
- }
- }
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::DoGetAccessPointsL
-// ---------------------------------------------------------
-//
-void CBrowserCommsModel::DoGetAccessPointsL( CApListItemList& aList ) const
- {
- CApSelect* apSelect = CApSelect::NewLC
- (
- *(iDb->Database()),
- KEApIspTypeAll,
-// KEApIspTypeAll | KEApIspTypeWAPMandatory,
- EApBearerTypeAll,
- KEApSortNameAscending,
- EIPv4 | EIPv6
- );
- (void)apSelect->AllListItemDataL( aList );
- CleanupStack::PopAndDestroy(); // apSelect
- }
-
-// ---------------------------------------------------------
-// CBrowserCommsModel::NotifyObserversL
-// ---------------------------------------------------------
-//
-void CBrowserCommsModel::NotifyObserversL()
- {
- if ( iObservers )
- {
- TInt i;
- TInt count = iObservers->Count();
- for ( i = 0; i < count; i++ )
- {
- iObservers->At( i )->HandleCommsModelChangeL();
- }
- }
- }
-// End of File