--- a/connectionmonitoring/connectionmonitorui/src/ConnectionInfoBase.cpp Thu Aug 19 10:18:49 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1345 +0,0 @@
-/*
-* Copyright (c) 2004 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: Represents a connection
-*
-*
-*/
-
-
-// INCLUDE FILES
-#include <stdlib.h>
-#include <nifvar.h>
-#include <StringLoader.h>
-#include <ConnectionMonitorUi.rsg>
-#include <avkon.rsg>
-#include <AknUtils.h>
-#include <apgcli.h>
-
-#include "ConnectionMonitorUiLogger.h"
-#include "ConnectionInfoBase.h"
-#include "ActiveWrapper.h"
-
-// CONSTANTS
-
-const TUint KUpArrowChar = 0x2191; ///< ASCII code of UpArrow
-const TUint KDownArrowChar = 0x2193; ///< ASCII code of DownArrow
-
-#ifndef _DEBUG
-const TUint KHiddenDhcpServerUid = 0x101fd9c5; ///< Hidden DHCP server UID (dhcpserv.exe)
-const TUint KHiddenDnsServerUid = 0x10000882; ///< Hidden DNS server UID (dnd.exe)
-#endif
-
-const TInt KFeedsServerUid = 0x1020728E;
-const TInt KDownloadMgrServerUid = 0x10008D60;
-const TInt KMessagingServerUid = 0x1000484b;
-const TInt KJavaVMUid = 0x102033E6;
-const TInt KSUPLServerUid = 0x102073CA;
-
-LOCAL_D const TInt KStringsGranularity = 5;
-
-_LIT( KMrouterName, "mRouter"); ///< see CheckMrouteIap
-_LIT( KEmpty, ""); ///< Empty string
-
-
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::~CConnectionInfoBase
-// ---------------------------------------------------------
-//
-CConnectionInfoBase::~CConnectionInfoBase()
- {
- delete iDetailsArray;
- delete iAppNames;
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::CConnectionInfoBase
-// ---------------------------------------------------------
-//
-CConnectionInfoBase::CConnectionInfoBase(
- TInt aConnectionId,
- RConnectionMonitor* const aConnectionMonitor,
- TConnMonBearerType aConnectionBearerType,
- CActiveWrapper* aActiveWrapper ) :
- iConnectionMonitor( aConnectionMonitor ),
- iStartTime( NULL ),
- iLastSpeedUpdate( 0 ),
- iDeletedFromCMUI( EFalse ),
- iActiveWrapper( aActiveWrapper )
- {
- CMUILOGGER_WRITE( "CConnectionInfoBase constuctor - start " );
- iConnectionStatus = EConnectionUninitialized;
- iConnectionId = aConnectionId;
- iConnectionBearerType = aConnectionBearerType;
- iClientBuf().iCount = 0;
- CMUILOGGER_WRITE( "CConnectionInfoBase constuctor - end " );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ConstructL
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::ConstructL()
- {
- CMUILOGGER_ENTERFN( "CConnectionInfoBase::ConstructL() start" );
-
- if ( iConnectionBearerType >= EBearerExternalCSD )
- {
- StringLoader::Load( iConnectionName,
- R_QTN_CMON_ITEM_CONN_NAME_MODEM );
- }
- else
- {
- iActiveWrapper->StartGetStringAttribute( iConnectionId,
- iConnectionMonitor,
- KIAPName,
- iConnectionName );
- TInt err( iActiveWrapper->iStatus.Int() );
- CMUILOGGER_WRITE_F( "CConnectionInfoBase::ConstructL() status: %d",
- err );
- CMUILOGGER_WRITE_F( "iConnectionName : %S", &iConnectionName );
- CMUILOGGER_WRITE_F( "iConnectionId : %d", iConnectionId );
- CMUILOGGER_WRITE_F( "iConnectionBearerType : %d",
- ( TInt )iConnectionBearerType );
- if ( err != KErrNone )
- {
- User::Leave( err );
- }
- }
-
- if ( !iAppNames )
- {
- iAppNames = new( ELeave ) CDesCArrayFlat( KStringsGranularity );
- }
-
- StatusChangedL();
- if ( GetStatus() == EConnectionSuspended )
- {
- InitializeConnectionInfoL();
- }
- CMUILOGGER_LEAVEFN( "CConnectionInfoBase::ConstructL() end" );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::StatusChangedL
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::StatusChangedL()
- {
- CMUILOGGER_WRITE( "CConnectionInfoBase::StatusChangedL() start" );
-
- RefreshConnectionStatus();
-
- switch ( iConnectionStatus )
- {
- case EConnectionCreated:
- {
- InitializeConnectionInfoL();
- break;
- }
- case EConnectionSuspended:
- {
- RefreshDetailsL();
- if ( !iDetailsArray )
- {
- ToArrayDetailsL();
- }
- RefreshDetailsArrayL();
- break;
- }
- case EConnectionClosing:
- case EConnectionClosed:
- case EConnectionUninitialized:
- {
- if ( iDetailsArray ) // if there is details array
- {
- RefreshDetailsArrayL();
- }
- break;
- }
- case EConnectionCreating:
- default :
- {
- break;
- }
- }
-
- RefreshConnectionListBoxItemTextL();
-
- CMUILOGGER_WRITE( "CConnectionInfoBase::StatusChangedL() end" );
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::IsAlive
-// ---------------------------------------------------------
-//
-TBool CConnectionInfoBase::IsAlive() const
- {
- TBool alive( EFalse );
- if ( ( iConnectionStatus == EConnectionSuspended ) ||
- ( iConnectionStatus == EConnectionCreated ) )
- {
- alive = ETrue;
- }
- return alive;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::IsSuspended
-// ---------------------------------------------------------
-//
-TBool CConnectionInfoBase::IsSuspended() const
- {
- TBool suspended( EFalse );
- if ( iConnectionStatus == EConnectionSuspended )
- {
- suspended = ETrue;
- }
- return suspended;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::GetConnectionId
-// ---------------------------------------------------------
-//
-CDesCArrayFlat* CConnectionInfoBase::GetDetailsArray() const
- {
- return iDetailsArray;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::GetConnectionId
-// ---------------------------------------------------------
-//
-TUint CConnectionInfoBase::GetConnectionId() const
- {
- return iConnectionId;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::GetStatus
-// ---------------------------------------------------------
-//
-TConnectionStatus CConnectionInfoBase::GetStatus() const
- {
- return iConnectionStatus;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::GetName
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::GetNameLC() const
- {
- HBufC* name = iConnectionName.AllocLC();
- return name;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::GetBearerType
-// ---------------------------------------------------------
-//
-TConnMonBearerType CConnectionInfoBase::GetBearerType() const
- {
- return iConnectionBearerType;
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::GetConnectionListBoxItemText
-// ---------------------------------------------------------
-//
-TPtrC CConnectionInfoBase::GetConnectionListBoxItemText() const
- {
- return iListBoxItemText;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::RefreshConnectionStatus
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::RefreshConnectionStatus()
- {
- TConnectionStatus connStatus( EConnectionUninitialized );
- iActiveWrapper->StartGetIntAttribute( iConnectionId,
- iConnectionMonitor,
- KConnectionStatus,
- ( ( TInt& )( connStatus ) ) );
- TInt err( iActiveWrapper->iStatus.Int() );
- CMUILOGGER_WRITE_F( "RefreshConnectionStatus status : %d",
- err );
- if ( err == KErrNone )
- {
- RefreshConnectionStatus( connStatus );
- }
- else
- {
- iActiveWrapper->Cancel();
- }
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::RefreshConnectionStatus
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::RefreshConnectionStatus(
- const TInt aConnectionStatus )
- {
- CMUILOGGER_ENTERFN( "RefreshConnectionStatus" );
- CMUILOGGER_WRITE_F( "RefreshConnectionStatus aConnectionStatus %d",
- ( TInt )aConnectionStatus );
- CMUILOGGER_WRITE_F( "iConnectionStatus before %d",
- ( TInt )iConnectionStatus );
-
-
- if ( ( aConnectionStatus == KLinkLayerOpen ) ||
- ( ( aConnectionStatus == KConnectionOpen ) &&
- ( iConnectionBearerType >= EBearerExternalCSD ) ) )
- {
- CMUILOGGER_WRITE("1");
- iConnectionStatus = EConnectionCreated;
- }
- else if ( ( aConnectionStatus == KConnectionClosed ) ||
- ( aConnectionStatus == KLinkLayerClosed ) )
- {
- CMUILOGGER_WRITE("2");
- iConnectionStatus = EConnectionClosed;
- }
- else if ( ( ( aConnectionStatus >= KMinAgtProgress ) &&
- ( aConnectionStatus <= KConnectionOpen ) ) ||
- ( aConnectionStatus == KStartingSelection ) ||
- ( aConnectionStatus == KFinishedSelection ) ||
- ( aConnectionStatus == KConfigDaemonStartingRegistration ) ||
- ( aConnectionStatus == KConfigDaemonFinishedRegistration ) )
- // creating
- {
- CMUILOGGER_WRITE("5");
- iConnectionStatus = EConnectionCreating;
- }
- else if ( aConnectionStatus == KDataTransferTemporarilyBlocked )
- {
- CMUILOGGER_WRITE("6");
- iConnectionStatus = EConnectionSuspended;
- }
- else if ( ( iConnectionStatus == EConnectionCreated ) &&
- ( ( aConnectionStatus >= KConnectionStartingClose ) &&
- ( aConnectionStatus < KConnectionClosed ) ||
- ( aConnectionStatus == KConfigDaemonFinishedDeregistrationStop ) ||
- ( aConnectionStatus == KConfigDaemonStartingDeregistration ) ||
- ( aConnectionStatus == KLinkLayerClosed ) ||
- ( aConnectionStatus == KConnectionUninitialised )
- ) )
- // closing
- {
- CMUILOGGER_WRITE("7");
- iConnectionStatus = EConnectionClosing;
- }
- else if ( ( aConnectionStatus == KConnectionUninitialised ) &&
- ( iConnectionStatus == EConnectionSuspended ) )
- { // Back to created from suspended
- CMUILOGGER_WRITE("4");
- iConnectionStatus = EConnectionCreated;
- }
- else if ( aConnectionStatus == KConnectionUninitialised )
- {
- CMUILOGGER_WRITE("3");
- iConnectionStatus = EConnectionUninitialized;
- }
-
- else
- {
- CMUILOGGER_WRITE_F( " else iConnectionStatus %d",
- ( TInt )iConnectionStatus );
- CMUILOGGER_WRITE_F( "else aConnectionStatus %d",
- ( TInt )aConnectionStatus );
-
- CMUILOGGER_WRITE("else");
- }
-
-
- CMUILOGGER_WRITE_F( "iConnectionStatus after %d",
- ( TInt )iConnectionStatus );
- CMUILOGGER_LEAVEFN( "RefreshConnectionStatus" );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::RefreshSentReceivedDataL
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::RefreshSentReceivedDataL()
- {
- CMUILOGGER_ENTERFN( "CConnectionInfoBase::RefreshSentReceivedDataL" );
- // Downloaded
- CMUILOGGER_WRITE("Downloaded before");
- iActiveWrapper->StartGetUintAttribute( iConnectionId,
- iConnectionMonitor,
- KDownlinkData,
- iDownloaded );
- TInt errDownload( iActiveWrapper->iStatus.Int() );
- CMUILOGGER_WRITE_F( "Download status: %d", errDownload );
- if ( errDownload != KErrNone )
- {
- iActiveWrapper->Cancel();
- User::Leave( errDownload );
- }
- CMUILOGGER_WRITE("Downloaded after");
- // Uploaded
- CMUILOGGER_WRITE("Uploaded before");
- iActiveWrapper->StartGetUintAttribute( iConnectionId,
- iConnectionMonitor,
- KUplinkData,
- iUploaded );
- TInt errUpload( iActiveWrapper->iStatus.Int() );
- CMUILOGGER_WRITE_F( "Upload status: %d", errUpload );
- if ( errUpload != KErrNone )
- {
- iActiveWrapper->Cancel();
- User::Leave( errUpload );
- }
- CMUILOGGER_WRITE("Uploaded after");
-
- CMUILOGGER_LEAVEFN( "CConnectionInfoBase::RefreshSentReceivedDataL" );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::RefreshTransferSpeedsL
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::RefreshTransferSpeedsL()
- {
- CMUILOGGER_ENTERFN( "CConnectionInfoBase::RefreshTransferSpeedsL" );
- const TInt KUpdatingIntervalInMillisec = 500;
- const TInt KStandardKilo = 1000;
- const TInt KDataKilo = 1024;
-
- TUint up = iUploaded;
- TUint down = iDownloaded;
-
- RefreshSentReceivedDataL();
-
- TTime now;
- now.UniversalTime();
-
- // calculate time difference in milliseconds
- TInt diffTime = I64INT( now.MicroSecondsFrom( iLastSpeedUpdate ).Int64() /
- TInt64( KStandardKilo ) );
-
- if ( iLastSpeedUpdate.Int64() == 0 )
- {
- iLastSpeedUpdate = now;
-
- // speed cannot be calculated at the first time
- iUpSpeed.quot = 0;
- iUpSpeed.rem = 0;
- iDownSpeed.quot = 0;
- iDownSpeed.rem = 0;
- }
- else if ( diffTime > KUpdatingIntervalInMillisec )
- {
- // bytes/millisec
- TInt upSpeed = ( iUploaded - up ) / diffTime;
- TInt downSpeed = ( iDownloaded - down ) / diffTime;
-
- // bytes/sec
- upSpeed *= KStandardKilo;
- downSpeed *= KStandardKilo;
-
- // kbytes/sec
- iUpSpeed = div( upSpeed, KDataKilo );
- iDownSpeed = div( downSpeed, KDataKilo );
-
- iLastSpeedUpdate = now;
- }
-
- CMUILOGGER_LEAVEFN( "CConnectionInfoBase::RefreshTransferSpeedsL" );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::RefreshDuration
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::RefreshDuration()
- {
- CMUILOGGER_ENTERFN( "CConnectionInfoBase::RefreshDuration" );
- TTime now;
- now.UniversalTime();
-
- // passed time since connection established.
- iDuration = now.MicroSecondsFrom( iStartTime ).Int64();
- CMUILOGGER_LEAVEFN( "CConnectionInfoBase::RefreshDuration" );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::RefreshAppNamesL
-// ---------------------------------------------------------
-//
-TInt CConnectionInfoBase::RefreshAppNamesL()
- {
- CMUILOGGER_ENTERFN( "CConnectionInfoBase::RefreshAppNamesL" );
-
- TInt sharings( 0 );
-
- if ( IsAlive() )
- {
- if ( iAppNames )
- {
- // Check whether it is an internal or external (modem) connection
- // External (modem) connections does not need application name
- if ( iConnectionBearerType >= EBearerExternalCSD )
- {
- CMUILOGGER_WRITE( "External (modem) connections does not need application name" );
- return sharings;
- }
- else
- {
- TInt count( 0 );
- TConnMonClientEnumBuf clientBuf;
- iActiveWrapper->StartGetConnSharings( iConnectionId,
- iConnectionMonitor,
- clientBuf );
-
- TInt err( iActiveWrapper->iStatus.Int() );
- CMUILOGGER_WRITE_F( "RefreshSharings status: %d", err );
-
- if ( !err )
- {
- count = clientBuf().iCount;
- }
- CMUILOGGER_WRITE_F( "clientBuf().iCount: %d", count );
-
- if ( IsTheSameUids( clientBuf ) )
- {
- // Same client list, use cached application names.
- CMUILOGGER_WRITE( "Client list unchanged, use cached names" );
- CMUILOGGER_WRITE_F( "sharings: %d", iAppNames->Count() );
- return iAppNames->Count();
- }
- else
- {
- CMUILOGGER_WRITE( "Client list changed, update names" );
- CopyUidsToBuf ( clientBuf );
- }
-
- iAppNames->Reset();
- HBufC* actAppName = NULL;
-
-#ifndef __WINS__ // Appl. uid is always zero in emulator
-
- RApaLsSession appSess;
- TApaAppInfo appInfo;
-
- // The connection could be shared by several applications
- User::LeaveIfError( appSess.Connect() );
-
- TUint i;
- for ( i = 0; i < count; i++ )
- {
- actAppName = NULL;
- appInfo.iCaption.Zero();
-
- TInt result = appSess.GetAppInfo( appInfo,
- clientBuf().iUid[i] );
-
- //================================
- CMUILOGGER_WRITE_F( "result: %d", result );
- CMUILOGGER_WRITE_F( "iClientInfo.iUid[i].iUid: %x",
- clientBuf().iUid[i].iUid );
-
- if ( result != KErrNone )
- {
- TInt resId = 0;
- switch ( clientBuf().iUid[i].iUid )
- {
- case KMessagingServerUid: // Messaging
- {
- resId = R_QTN_CMON_SHARING_APP_MSG_SERVER;
- break;
- }
- case KDownloadMgrServerUid: // Downloads
- {
- resId = R_QTN_CMON_SHARING_APP_DL_MG;
- break;
- }
- case KFeedsServerUid: // Web Feeds
- {
- resId = R_QTN_CMON_SHARING_APP_RSS_SERVER;
- break;
- }
- case KJavaVMUid: // Application
- {
- resId = R_QTN_CMON_SHARING_APP_JAVA_MIDLET;
- break;
- }
-#ifndef _DEBUG
- // Hide DHCP & DNS from UI in release build.
- case KHiddenDhcpServerUid:
- case KHiddenDnsServerUid:
- {
- break;
- }
-#endif
- case KSUPLServerUid:
- {
- resId = R_QTN_CMON_SHARING_APP_SUPL;
- break;
- }
- default: // (unknown)
- {
- resId = R_QTN_CMON_SHARING_APP_UNKNOWN;
- break;
- }
- }
-
- if ( resId && resId != R_QTN_CMON_SHARING_APP_UNKNOWN )
- {
- actAppName = StringLoader::LoadL( resId );
- }
- else if ( resId ) // Try to find application process name from system.
- {
- TFileName name;
- TFindProcess find;
- TBool name_solved( EFalse );
- while ( find.Next( name ) == KErrNone )
- {
- RProcess ph;
- TInt err2( KErrNone );
- err2 = ph.Open( name );
-
- if ( err2 )
- {
- ph.Close();
- }
- else
- {
- TUidType procUid = ph.Type();
- ph.Close();
-
- // There are three UIDs in procUid. The last one is the second
- // UID defined in MMP file and clientBuf().iUid[i].iUid is also
- // the same kind of UID. So, we only need to compare them to
- // find application name.
- if ( procUid[2].iUid == clientBuf().iUid[i].iUid )
- {
- // Name is in format "app_name[uid]001", so cut rest of
- // string starting from "[".
- TInt index = name.LocateReverse('[');
- if ( index >= 1 )
- {
- name.SetLength( index );
- }
-
- actAppName = HBufC::NewL( name.Length() );
- TPtr actAppNameBuf = actAppName->Des();
- actAppNameBuf.Append( name );
-
-#ifdef _DEBUG
- CMUILOGGER_WRITE( "--------------------" );
- CMUILOGGER_WRITE( " Application is Found:" );
- CMUILOGGER_WRITE_F( "Client Uid: %x", clientBuf().iUid[i].iUid );
- CMUILOGGER_WRITE_F( "Proc Uid: %x", procUid[2].iUid );
- CMUILOGGER_WRITE_F( "App Name: %S", &name);
- CMUILOGGER_WRITE( "--------------------" );
-#endif
-
- name_solved = ETrue;
- break;
- }
- }
- }
-
- if ( !name_solved )
- {
- actAppName = StringLoader::LoadL( R_QTN_CMON_SHARING_APP_UNKNOWN );
- }
- }
- }
- else
- {
- actAppName = HBufC::NewL( appInfo.iCaption.Length() );
- TPtr actAppNameBuf = actAppName->Des();
- actAppNameBuf.Append( appInfo.iCaption );
- }
-
- if ( actAppName )
- {
- iAppNames->AppendL( actAppName->Des() );
- delete actAppName;
- }
- }
-
- iAppNames->Sort();
- appSess.Close();
-#else
- TInt countBan( 0 );
-
-#ifndef _DEBUG
- if ( !err )
- {
- // Remove DHCP and DNS from the client list.
- for ( TUint tmp = 0; tmp < count; tmp++ )
- {
- TUid uid = clientBuf().iUid[tmp];
-
- if ( uid.iUid == KHiddenDhcpServerUid || uid.iUid == KHiddenDnsServerUid )
- {
- countBan++;
- }
- }
- }
-#endif
-
- _LIT( KStrApplication, "Application" );
- // Give a dummy name for all applications.
- for ( TInt i = 0; i < ( count - countBan ); i++ )
- {
- iAppNames->AppendL( KStrApplication );
- }
-
-#endif // __WINS__
- } // End of else in if ( iConnectionBearerType > EBearerExternalCSD )
- sharings = iAppNames->Count();
- CMUILOGGER_WRITE_F( "sharings: %d", sharings );
- } // End of if ( iAppNames )
- } // End of if ( IsAlive() )
-
- CMUILOGGER_LEAVEFN( "CConnectionInfoBase::RefreshAppNamesL" );
- return sharings;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::IsTheSameUids
-// ---------------------------------------------------------
-//
-TBool CConnectionInfoBase::IsTheSameUids( TConnMonClientEnumBuf& aClients )
- {
- TBool ret( EFalse );
-
- if ( iClientBuf().iCount != aClients().iCount )
- {
- return ret;
- }
- else
- {
- TInt count = aClients().iCount;
- for ( TInt i = 0; i < count; i++ )
- {
- // Is the current value inside aClients found from iClientBuf.
- TBool found( EFalse );
- for ( TInt j = 0; j < count; j++ )
- {
- if ( aClients().iUid[i].iUid == iClientBuf().iUid[j].iUid )
- {
- found = ETrue;
- break;
- }
- }
-
- if ( !found )
- {
- return ret;
- }
- }
-
- // If we reach this point, aClients contents are identical with iClientBuf.
- ret = ETrue;
- }
-
- return ret;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::CopyUidsToBuf
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::CopyUidsToBuf( TConnMonClientEnumBuf& aClients )
- {
- TInt count = aClients().iCount;
-
- for ( TInt i = 0; i < count; i++ )
- {
- iClientBuf().iUid[i].iUid = aClients().iUid[i].iUid;
- }
- iClientBuf().iCount = count;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToDetailsListBoxItemTextL
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToDetailsListBoxItemTextL(
- const TUint aResourceId,
- const HBufC* aValueText ) const
- {
- CMUILOGGER_ENTERFN( "CConnectionInfoBase::ToDetailsListBoxItemTextL" );
-
- HBufC* columnName = NULL;
- if ( aResourceId )
- {
- columnName = StringLoader::LoadLC( aResourceId );
- }
- else
- {
- columnName = KEmpty().AllocLC();
- }
-
- HBufC* listBoxItemText = HBufC::NewL( KDetailsListItemText );
-
- TPtr ptrToListBoxItemText = listBoxItemText->Des();
-
- ptrToListBoxItemText.Format( KDetailsListItemTextFormat,
- columnName, aValueText );
- CleanupStack::PopAndDestroy( columnName );
-
-
- CMUILOGGER_LEAVEFN( "CConnectionInfoBase::ToDetailsListBoxItemTextL" );
-
- return listBoxItemText;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToDetailsListBoxItemTextWithAppendL
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::ToDetailsListBoxItemTextWithAppendL(
- const TUint aResourceId,
- const HBufC* aValueText )
- {
- HBufC* listBoxItemText = ToDetailsListBoxItemTextL( aResourceId,
- aValueText );
- CleanupStack::PushL( listBoxItemText );
- CMUILOGGER_WRITE_F( "LISTBOXITEM: %S", listBoxItemText );
- iDetailsArray->AppendL( *listBoxItemText );
- CleanupStack::PopAndDestroy( listBoxItemText );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToDetailsListBoxItemTextWithReplaceL
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::ToDetailsListBoxItemTextWithReplaceL(
- const TUint aResourceId,
- const HBufC* aValueText,
- TInt aIndex )
- {
- CMUILOGGER_ENTERFN
- ( "CConnectionInfoBase::ToDetailsListBoxItemTextWithReplaceL" );
- CMUILOGGER_WRITE_F( "aValueText: %S", aValueText );
-
- if ( /*( iDetailsArray ) && */
- ( aIndex < iDetailsArray->Count() ) &&
- ( aIndex > KErrNotFound ) )
- {
- HBufC* listBoxItemText = ToDetailsListBoxItemTextL( aResourceId,
- aValueText );
- iDetailsArray->Delete( aIndex );
- CleanupStack::PushL( listBoxItemText );
- iDetailsArray->InsertL( aIndex, *listBoxItemText );
- CleanupStack::PopAndDestroy( listBoxItemText );
- iDetailsArray->Compress();
- }
- CMUILOGGER_LEAVEFN
- ( "CConnectionInfoBase::ToDetailsListBoxItemTextWithReplaceL" );
-
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringBearerLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringBearerLC() const
- {
- HBufC* bearer = NULL;
- TUint resourceId( 0 );
-
- // Bearer type
- if ( iConnectionBearerType == EBearerHSCSD ||
- iConnectionBearerType == EBearerExternalHSCSD )
- {
- resourceId = R_QTN_CMON_BEARER_HSCSD;
-
- }
- else if ( iConnectionBearerType == EBearerCSD ||
- iConnectionBearerType == EBearerExternalCSD ||
- iConnectionBearerType == EBearerWcdmaCSD ||
- iConnectionBearerType == EBearerExternalWcdmaCSD )
- {
- resourceId = R_QTN_SET_BEARER_DATA_CALL;
- }
- else if ( iConnectionBearerType == EBearerWLAN )
- {
- resourceId = R_QTN_WLAN_SETT_BEARER_WLAN;
- }
- else
- {
- resourceId = R_QTN_SET_BEARER_PACKET_DATA;
- }
-
- bearer = StringLoader::LoadLC( resourceId );
-
- return bearer;
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringStatusLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringStatusLC( TBool aIsDetailsView ) const
- {
- HBufC* status = NULL;
- TUint resourceId( 0 );
- switch ( iConnectionStatus )
- {
- case EConnectionCreated:
- {
- if ( iUpSpeed.quot || iUpSpeed.rem ||
- iDownSpeed.quot || iDownSpeed.rem )
- {
- resourceId = aIsDetailsView ? R_QTN_CMON_STATUS_DETAILS_ACTIVE
- : R_QTN_CMON_STATUS_ACTIVE;
- }
- else
- {
- resourceId = aIsDetailsView ? R_QTN_CMON_STATUS_DETAILS_IDLE
- : R_QTN_CMON_STATUS_IDLE;
- }
- break;
- }
- case EConnectionUninitialized:
- case EConnectionClosed:
- {
- resourceId = aIsDetailsView ? R_QTN_CMON_STATUS_DETAILS_CLOSED
- : R_QTN_CMON_STATUS_CLOSED;
- break;
- }
- case EConnectionClosing:
- {
- resourceId = aIsDetailsView ? R_QTN_CMON_STATUS_DETAILS_CLOSING
- : R_QTN_CMON_STATUS_CLOSING;
- break;
- }
- case EConnectionSuspended:
- {
- resourceId = aIsDetailsView ? R_QTN_CMON_STATUS_DETAILS_SUSPENDED
- : R_QTN_CMON_STATUS_SUSPENDED;
- break;
- }
- case EConnectionCreating:
- default :
- {
- resourceId = aIsDetailsView ? R_QTN_CMON_STATUS_DETAILS_CREATING
- : R_QTN_CMON_STATUS_CREATING;
- break;
- }
- }
-
- status = StringLoader::LoadLC( resourceId );
-
- return status;
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringTotalTransmittedDataLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringTotalTransmittedDataLC() const
- {
- TUint total = iUploaded + iDownloaded;
- CMUILOGGER_WRITE_F( "iUploaded : %d", iUploaded );
- CMUILOGGER_WRITE_F( "iDownloaded : %d", iDownloaded );
- CMUILOGGER_WRITE_F( "total : %d", total );
-
- return ToStringLoadedDataLC( total );
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringSentDataLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringSentDataLC( TBool aToBeThreeDigit ) const
- {
- return ToStringLoadedDataLC( iUploaded, aToBeThreeDigit, KUpArrowChar );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringReceivedDataLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringReceivedDataLC( TBool aToBeThreeDigit ) const
- {
- return ToStringLoadedDataLC( iDownloaded, aToBeThreeDigit, KDownArrowChar );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringTransferSpeedUpLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringTransferSpeedUpLC() const
- {
- return ToStringTransferSpeedLC( iUpSpeed, KUpArrowChar );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringTransferSpeedDownLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringTransferSpeedDownLC() const
- {
- return ToStringTransferSpeedLC( iDownSpeed, KDownArrowChar );
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringDurationLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringDurationLC() const
- {
- const TUint KTimeStringLength = 64;
- const TUint KTimeFormatBuf = 16;
- const TUint KDateFormatBuf = 16;
- _LIT( KDayFormat, "%d" );
-
-
- TTime now;
- now.UniversalTime();
- HBufC* timeString = NULL;
-
- TTimeIntervalDays days = NULL;
-
- if ( iStartTime != NULL )
- {
- // calculate days passed since connection started
- days = now.DaysFrom( iStartTime );
- CMUILOGGER_WRITEF( _L( "ToStringDurationLC days before: %d" ),
- days.Int() );
- }
-
- // passed time since connection established.
- if ( days.Int() <= 0 )
- // it's still within 1 day
- {
- timeString = HBufC::NewLC( KTimeStringLength );
- TPtr16 tempBuf( timeString->Des() );
-
- HBufC* temp = StringLoader::LoadLC( R_QTN_TIME_DURAT_LONG_WITH_ZERO );
-
- iDuration.FormatL( tempBuf, *temp );
- CleanupStack::PopAndDestroy( temp );
- }
- else
- // more than 1 day
- {
- CMUILOGGER_WRITEF( _L( "ToStringDurationLC days after: %d" ),
- days.Int() );
-
- TBuf<KDateFormatBuf> dayFormat;
- dayFormat.Format( KDayFormat, days.Int() );
-
- // format time format string
- HBufC* tempFormat = StringLoader::LoadLC(
- R_QTN_TIME_DURAT_SHORT_WITH_ZERO );
- TBuf<KTimeFormatBuf> tempBuf;
-
- // format hours:mins
- iDuration.FormatL( tempBuf, *tempFormat );
-
- CDesCArrayFlat* strings = new( ELeave ) CDesCArrayFlat( 2 );
- CleanupStack::PushL( strings );
-
- strings->AppendL( dayFormat );
- strings->AppendL( tempBuf );
-
- timeString = StringLoader::LoadL( R_QTN_CMON_DURATION_OVER_24H,
- *strings );
-
- CleanupStack::PopAndDestroy( strings );
- CleanupStack::PopAndDestroy( tempFormat );
- CleanupStack::PushL( timeString );
- }
-
- CMUILOGGER_WRITE_F( "duration time1: %S", timeString );
-
- TPtr temp( timeString->Des() );
- AknTextUtils::DisplayTextLanguageSpecificNumberConversion( temp );
- CMUILOGGER_WRITE_F( "duration temp: %S", &temp );
-
- CMUILOGGER_WRITE_F( "duration time2: %S", timeString );
-
-
- return timeString;
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::CheckMrouterIap
-// ---------------------------------------------------------
-//
-TBool CConnectionInfoBase::CheckMrouterIap()
- {
- CMUILOGGER_ENTERFN( "CheckMrouterIap" );
- TBool result( ETrue );
-
- CMUILOGGER_WRITE_F( "IAP name: %S", &iConnectionName );
- iConnectionName.Trim();
- if ( iConnectionName.Left(
- KMrouterName().Length() ).CompareF( KMrouterName ) )
- {
- result = EFalse;
- }
- CMUILOGGER_LEAVEFN( "CheckMrouterIap" );
- return result;
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringLoadedDataLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringLoadedDataLC( TUint aLoadedData,
- TBool aToBeThreeDigit,
- const TUint aArrowChar ) const
- {
- const TUint KTransferedBytesFormatBuf = 16;
- const TUint KTransferedBytesWidth = 10;
- TUint transferedBytesDecimalPlaces(2);
- TUint resId;
- HBufC* loadedTxt = NULL;
-
- TBuf<KTransferedBytesFormatBuf> buf;
-
- if ( aLoadedData < 1000 ) // bytes
- {
- if ( aToBeThreeDigit ) // added arrow to listbox
- {
- _LIT( KUdLinkFormatBytes, "%c%d" );
-
- buf.Format( KUdLinkFormatBytes, aArrowChar, aLoadedData );
- }
- else
- {
- _LIT( KUdLinkFormatBytes, "%d" );
-
- buf.Format( KUdLinkFormatBytes, aLoadedData );
- }
- resId = R_QTN_LOG_GPRS_AMOUNT_B;
- }
- else
- { // KB, MB, GB
- TUint denom;
-
- if ( aLoadedData < 1000 * 1024 )
- {
- denom = 1024;
- resId = R_QTN_LOG_GPRS_AMOUNT_KB;
- }
- else if ( aLoadedData < 1000 * 1024 * 1024 )
- {
- denom = 1024 * 1024;
- resId = R_QTN_LOG_GPRS_AMOUNT_MB;
- }
- else
- {
- denom = 1024 * 1024 * 1024;
- resId = R_QTN_LOG_GPRS_AMOUNT_GB;
- }
-
- TReal value = STATIC_CAST( TReal, aLoadedData ) /
- STATIC_CAST( TReal, denom );
-
- if ( aToBeThreeDigit )
- {
- if ( value < 10 ) // number of decimal places
- {
- transferedBytesDecimalPlaces = 2;
- }
- else if ( value < 100 )
- {
- transferedBytesDecimalPlaces = 1;
- }
- else
- {
- transferedBytesDecimalPlaces = 0;
- }
- }
-
- TRealFormat Format( KTransferedBytesWidth,
- transferedBytesDecimalPlaces );
-
- HBufC* number = HBufC::NewLC( KTransferedBytesWidth );
- number->Des().Num( value, Format );
-
- if ( aToBeThreeDigit ) // added arrow to listbox
- {
- _LIT( KUdFormatLarge, "%c%S" );
- buf.Format( KUdFormatLarge, aArrowChar, number );
- }
- else
- {
- _LIT( KUdFormatLarge, "%S" );
- buf.Format( KUdFormatLarge, number );
- }
- CleanupStack::PopAndDestroy( number );
- }
-
- loadedTxt = StringLoader::LoadLC( resId, buf );
-
- TPtr temp( loadedTxt->Des() );
- AknTextUtils::DisplayTextLanguageSpecificNumberConversion( temp );
-
- return loadedTxt;
- }
-
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringTransferSpeedLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringTransferSpeedLC( div_t aSpeed,
- const TUint aArrowChar ) const
- {
- const TUint KUpDownSpeedBufSize = 16;
- _LIT( KUdSpeedFmt, "%c%d%S%02d" );
-
- TBuf<KUpDownSpeedBufSize> buf;
- TInt resId;
-
- HBufC* decSep = StringLoader::LoadLC( R_TEXT_CALC_DECIMAL_SEPARATOR );
-
- resId = R_QTN_CMON_DATA_TRANSF_RATE_UL;
- buf.Format( KUdSpeedFmt, aArrowChar, aSpeed.quot, decSep, aSpeed.rem );
-
- CleanupStack::PopAndDestroy( decSep );
-
- HBufC* speedTxt = StringLoader::LoadLC( resId, buf );
-
- TPtr temp( speedTxt->Des() );
- AknTextUtils::DisplayTextLanguageSpecificNumberConversion( temp );
-
- return speedTxt;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::InitializeConnectionInfoL
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::InitializeConnectionInfoL()
- {
- CMUILOGGER_WRITE( "InitializeConnectionInfoL - start " );
- TConnMonTimeBuf timeBuf;
- iActiveWrapper->StartGetConnTime( iConnectionId,
- iConnectionMonitor,
- timeBuf );
- TInt err( iActiveWrapper->iStatus.Int() );
- CMUILOGGER_WRITE_F( "IntiConnectionInfo() status: %d", err );
- if ( err != KErrNone )
- {
- User::Leave( err );
- }
-
- iStartTime = timeBuf();
- TDateTime dt = iStartTime.DateTime();
- CMUILOGGER_WRITE_F( "Day : %d", dt.Day() );
- CMUILOGGER_WRITE_F( "Hour : %d", dt.Hour() );
- CMUILOGGER_WRITE_F( "Minute : %d", dt.Minute() );
- CMUILOGGER_WRITE_F( "Second : %d", dt.Second() );
-
-
- RefreshDetailsL();
- if ( !iDetailsArray )
- {
- ToArrayDetailsL();
- }
- CMUILOGGER_WRITE( "InitializeConnectionInfoL - end " );
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::StringMarkerRemoval
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::StringMarkerRemoval( HBufC* aStringHolder )
- {
- TPtr bufPtr = aStringHolder->Des();
-
- const TText KLRMarker = 0x200E;
- const TText KRLMarker = 0x200F;
-
- TBuf<2> markers;
- markers.Append( KLRMarker );
- markers.Append( KRLMarker );
-
- // This function is requested to remove directional markers, because they
- // cause a display error in languages such Hebrew. Directional markers will
- // be correctly added later, when the one or two parts of the time string
- // are merged, again with StringLoader functions.
- AknTextUtils::StripCharacters( bufPtr, markers );
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::ToStringAppNameLC
-// ---------------------------------------------------------
-//
-HBufC* CConnectionInfoBase::ToStringAppNameLC( TInt aAppIndex )
- {
- HBufC* appName = ( iAppNames->MdcaPoint( aAppIndex ) ).AllocLC();
-
- return appName;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::GetDeletedFromCMUI
-// ---------------------------------------------------------
-//
-TBool CConnectionInfoBase::GetDeletedFromCMUI() const
- {
- return iDeletedFromCMUI;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::SetAllDeletedFromCMUI
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::SetAllDeletedFromCMUI()
- {
- iConnectionStatus = EConnectionClosing;
- }
-
-// ---------------------------------------------------------
-// CConnectionInfoBase::SetDeletedFromCMUI
-// ---------------------------------------------------------
-//
-void CConnectionInfoBase::SetDeletedFromCMUI()
- {
- iConnectionStatus = EConnectionClosing;
-
- iDeletedFromCMUI = ETrue;
- }
-
-
-// End of File