diff -r 000000000000 -r 1bce908db942 multimediacommsengine/tsrc/testdriver/testclient/net/src/CTcIAPManager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommsengine/tsrc/testdriver/testclient/net/src/CTcIAPManager.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,125 @@ +/* +* 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: Implementation +* +*/ + +#include + +#include "CTcIAPManager.h" + +EXPORT_C CTcIAPManager* CTcIAPManager::NewL() + { + CTcIAPManager* self = new( ELeave ) CTcIAPManager(); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(); + + return self; + } + +EXPORT_C CTcIAPManager::~CTcIAPManager() + { + } + +CTcIAPManager::CTcIAPManager() + : iEntries( 1 ) + { + } + +void CTcIAPManager::ConstructL() + { + // Open Comms DB + CCommsDatabase* commsDb = CCommsDatabase::NewL(); + CleanupStack::PushL( commsDb ); + + // Get the IAP table + CCommsDbTableView* ispTable = commsDb->OpenTableLC( TPtrC( IAP ) ); + + // Loop through IAP entries + TInt res = ispTable->GotoFirstRecord(); + while( res == KErrNone ) + { + // Fetch Name and Id for each entry and store then into an array + TEntry iapEntry; + TBuf< KCommsDbSvrMaxColumnNameLength > tmpName; + ispTable->ReadUintL( TPtrC( COMMDB_ID ), iapEntry.iId ); + ispTable->ReadTextL( TPtrC( COMMDB_NAME ), tmpName ); + iapEntry.iName.Copy( tmpName ); // unicode to narrow conversion + iEntries.AppendL( iapEntry ); + + // Get next record in table + res = ispTable->GotoNextRecord(); + } + + CleanupStack::PopAndDestroy( 2 ); // ispTable, commsDb + } + +TInt CTcIAPManager::MdcaCount() const + { + return Count(); + } + +TPtrC8 CTcIAPManager::MdcaPoint( TInt aIndex ) const + { + return TPtrC8( Name( aIndex ) ); + } + +EXPORT_C TInt CTcIAPManager::Count() const + { + return iEntries.Count(); + } + +EXPORT_C TUint32 CTcIAPManager::Id( TInt aIndex ) const + { + return iEntries[ aIndex ].iId; + } + +EXPORT_C const TDesC8& CTcIAPManager::Name( TInt aIndex ) const + { + return iEntries[ aIndex ].iName; + } + +EXPORT_C const TDesC8& CTcIAPManager::NameForIdL( TUint32 aId ) const + { + TInt count = iEntries.Count(); + for( TInt i = 0; i < count; i++ ) + { + const TEntry& entry = iEntries[ i ]; + if( entry.iId == aId ) + { + return entry.iName; + } + } + + User::Leave( KErrNotFound ); + return KNullDesC8; // keep compiler happy + } + +EXPORT_C TUint32 CTcIAPManager::IdForNameL( const TDesC8& aName ) const + { + TInt count = iEntries.Count(); + for( TInt i = 0; i < count; i++ ) + { + const TEntry& entry = iEntries[ i ]; + if( entry.iName.CompareF( aName ) == 0 ) + { + return entry.iId; + } + } + + User::Leave( KErrNotFound ); + return 0; // keep compiler happy + }