diff -r 48060abbbeaf -r b3cee849fa46 creator/src/creator_imps.cpp --- a/creator/src/creator_imps.cpp Thu Aug 19 09:55:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,260 +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: -* -*/ - - -#ifdef __PRESENCE - -#include "creator_imps.h" -#include "creator_traces.h" - -#include - -static const TInt KIMPSFieldLength = 128; - -_LIT(KCreatorIMPSPrefixName, "CR_"); - - -//---------------------------------------------------------------------------- - -CIMPSParameters::CIMPSParameters() - { - LOGSTRING("Creator: CIMPSParameters::CIMPSParameters"); - - iServerName = HBufC::New(KIMPSFieldLength); - iServerURL = HBufC::New(KIMPSFieldLength); - iServerUsername = HBufC::New(KIMPSFieldLength); - iServerPassword = HBufC::New(KIMPSFieldLength); - iServerAccessPointName = HBufC::New(KIMPSFieldLength); - // User needs to set connectionmethod manually to be able to use the IMPS setting - iServerAccessPointName->Des().Copy(_L("DEFAULT-IAP")); - } - -CIMPSParameters::~CIMPSParameters() - { - LOGSTRING("Creator: CIMPSParameters::~CIMPSParameters"); - - delete iServerAccessPointName; - delete iServerPassword; - delete iServerUsername; - delete iServerURL; - delete iServerName; - } - -void CIMPSParameters::SetRandomNameL(CCreatorEngine& aEngine) - { - if(iServerName == 0) - { - iServerName = HBufC::New(KIMPSFieldLength); - } - TBuf<160> company = aEngine.RandomString(CCreatorEngine::ECompany); - iServerName->Des() = KCreatorIMPSPrefixName; - iServerName->Des().Append( company ); - iServerName->Des().Append( _L(" #") ); - iServerName->Des().AppendNum( aEngine.RandomNumber(1000, 9999) ); - } - -void CIMPSParameters::SetRandomUrlL(CCreatorEngine& aEngine) - { - if(iServerURL == 0) - { - iServerURL = HBufC::New(KIMPSFieldLength); - } - TBuf<160> company = aEngine.RandomString(CCreatorEngine::ECompany); - iServerURL->Des() = _L("http://imps."); - iServerURL->Des().Append( company ); - iServerURL->Des().Append( _L(".com:18080/CSP/csp") ); - } - -void CIMPSParameters::SetRandomUsernameL(CCreatorEngine& aEngine) - { - iServerUsername->Des() = aEngine.RandomString(CCreatorEngine::EFirstName); - iServerUsername->Des().LowerCase(); - } - -void CIMPSParameters::SetRandomPasswordL(CCreatorEngine& aEngine) - { - iServerPassword->Des() = aEngine.RandomString(CCreatorEngine::ESurname); - iServerPassword->Des().LowerCase(); - } -void CIMPSParameters::SetDefaultAccessPointL() - { - iServerAccessPointName->Des().Copy(_L("DEFAULT-IAP")); - } -//---------------------------------------------------------------------------- - -CCreatorIMPS* CCreatorIMPS::NewL(CCreatorEngine* aEngine) - { - CCreatorIMPS* self = CCreatorIMPS::NewLC(aEngine); - CleanupStack::Pop(self); - return self; - } - -CCreatorIMPS* CCreatorIMPS::NewLC(CCreatorEngine* aEngine) - { - CCreatorIMPS* self = new (ELeave) CCreatorIMPS; - CleanupStack::PushL(self); - self->ConstructL(aEngine); - return self; - } - -CCreatorIMPS::CCreatorIMPS() - { - } - -void CCreatorIMPS::ConstructL(CCreatorEngine* aEngine) - { - LOGSTRING("Creator: CCreatorIMPS::ConstructL"); - - iEngine = aEngine; - - iIMPSSAPSettingsStore = CIMPSSAPSettingsStore::NewL(); - } - -CCreatorIMPS::~CCreatorIMPS() - { - LOGSTRING("Creator: CCreatorIMPS::~CCreatorIMPS"); - - if ( iEngine && iEntryIds.Count() ) - { - TRAP_IGNORE( iEngine->WriteEntryIdsToStoreL( iEntryIds, KUidDictionaryUidIMPS ) ); - } - iEntryIds.Reset(); - iEntryIds.Close(); - - delete iIMPSSAPSettingsStore; - - if (iParameters) - delete iParameters; - } - -//---------------------------------------------------------------------------- - -TBool CCreatorIMPS::AskDataFromUserL(TInt aCommand, TInt& aNumberOfEntries) - { - LOGSTRING("Creator: CCreatorIMPS::AskDataFromUserL"); - if ( aCommand == ECmdDeleteIMPSs ) - { - return iEngine->YesNoQueryDialogL( _L("Delete all IMPS server entries?") ); - } - else if ( aCommand == ECmdDeleteCreatorIMPSs ) - { - return iEngine->YesNoQueryDialogL( _L("Delete all IMPS server entries created with Creator?") ); - } - return iEngine->EntriesQueryDialogL(aNumberOfEntries, _L("How many entries to create?")); - } - - -//---------------------------------------------------------------------------- - -TInt CCreatorIMPS::CreateIMPSServerEntryL(CIMPSParameters *aParameters) - { - LOGSTRING("Creator: CCreatorIMPS::CreateIMPSServerEntryL"); - - // clear any existing parameter definations - delete iParameters; - iParameters = NULL; - - CIMPSParameters* parameters = aParameters; - - // random data needed if no predefined data available - if (!parameters) - { - iParameters = new(ELeave) CIMPSParameters; - parameters = iParameters; - parameters->SetRandomNameL(*iEngine); - parameters->SetRandomUrlL(*iEngine); - parameters->SetRandomUsernameL(*iEngine); - parameters->SetRandomPasswordL(*iEngine); - parameters->SetDefaultAccessPointL(); - } - - TInt err = KErrNone; - - // set data to save item - CIMPSSAPSettings* settings = CIMPSSAPSettings::NewLC(); - TUint32 iapId = iEngine->AccessPointNameToIdL(parameters->iServerAccessPointName->Des(), ETrue ); - err = settings->SetAccessPoint( iapId ); - if( err != KErrNone ) - { - LOGSTRING("Creator: CCreatorIMPS::CreateIMPSServerEntryL - Unable to resolve access point."); - err = KErrNone; - } - settings->SetSAPNameL( parameters->iServerName->Des() ); - settings->SetSAPAddressL( parameters->iServerURL->Des() ); - settings->SetSAPUserIdL( parameters->iServerUsername->Des() ); - settings->SetSAPUserPasswordL( parameters->iServerPassword->Des() ); - - // save the item - TRAP(err, iIMPSSAPSettingsStore->StoreNewSAPL( settings, EIMPSIMAccessGroup )); - - // id has been generated, store it for being able to delete - // only entries created with Creator - iEntryIds.Append( settings->Uid() ); - - TRAP(err, iIMPSSAPSettingsStore->StoreNewSAPL( settings, EIMPSPECAccessGroup )); - - // id has been generated, store it for being able to delete - // only entries created with Creator - iEntryIds.Append( settings->Uid() ); - - CleanupStack::PopAndDestroy(); //settings - return err; - } - - -//---------------------------------------------------------------------------- -void CCreatorIMPS::DeleteAllL() - { - LOGSTRING("Creator: CCreatorIMPS::DeleteAllL"); - CIMPSSAPSettingsList* imps = CIMPSSAPSettingsList::NewLC(); - iIMPSSAPSettingsStore->PopulateSAPSettingsListL( *imps, EIMPSAccessFilterAll ); - for ( TInt i = 0; i < imps->Count(); i++ ) - { - iIMPSSAPSettingsStore->DeleteSAPL( imps->UidForIndex( i ) ); - } - CleanupStack::PopAndDestroy( imps ); - - // reset must be done here, because iEntryIds is stored in destructor - iEntryIds.Reset(); - - // all entries deleted, remove the IMPS related registry - iEngine->RemoveStoreL( KUidDictionaryUidIMPS ); - } - -//---------------------------------------------------------------------------- -void CCreatorIMPS::DeleteAllCreatedByCreatorL() - { - LOGSTRING("Creator: CCreatorIMPS::DeleteAllCreatedByCreatorL"); - iEntryIds.Reset(); - - // fetch ids of entries created by Creator - iEngine->ReadEntryIdsFromStoreL( iEntryIds, KUidDictionaryUidIMPS ); - - // delete entries - for ( TInt i = 0; i < iEntryIds.Count(); i++ ) - { - TRAP_IGNORE( iIMPSSAPSettingsStore->DeleteSAPL( iEntryIds[i] ) ); - } - // reset must be done here, because iEntryIds is stored in destructor - iEntryIds.Reset(); - - // all entries deleted, remove the IMPS related registry - iEngine->RemoveStoreL( KUidDictionaryUidIMPS ); - } - -#endif //__PRESENCE -