diff -r 000000000000 -r 094583676ce7 wvsettings20/IMPSSrc/CIMPSSAPSettings.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvsettings20/IMPSSrc/CIMPSSAPSettings.cpp Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,725 @@ +/* +* 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: SAP settings container. +* +*/ + +// INCLUDE FILES +#include +#include +#include + +#include "cimpssapsettings.h" +#include "CIMPSSAPSettingsBody.h" +#include "CIMPSSAPKeyValuePairs.h" +#include "CIMPSSAPKeyValuePair.h" + +#include "IMPSSAPObjectHandler.h" +#include "IMPSSAPSettingsStoreDefinitions.h" +#include "IMPSSAPSettingsStorePanics.h" + + +// ================= MEMBER FUNCTIONS ======================= +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::NewL() +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +EXPORT_C CIMPSSAPSettings* CIMPSSAPSettings::NewL() + { + CIMPSSAPSettings* self = CIMPSSAPSettings::NewLC(); + CleanupStack::Pop(); + return self; + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::NewLC() +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +EXPORT_C CIMPSSAPSettings* CIMPSSAPSettings::NewLC() + { + CIMPSSAPSettings* self = new ( ELeave ) CIMPSSAPSettings(); + CleanupStack::PushL( self ); + self->iKeyValuePairs = CIMPSSAPKeyValuePairs::NewL(); + self->iBody = CIMPSSAPSettingsBody::NewL(); + return self; + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::~CIMPSSAPSettings() +// Destructor +// ----------------------------------------------------------------------------- +// +EXPORT_C CIMPSSAPSettings::~CIMPSSAPSettings() + { + delete iBody; + delete iKeyValuePairs; + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::CIMPSSAPSettings() +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CIMPSSAPSettings::CIMPSSAPSettings() + { + } + + + + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::Uid() +// ----------------------------------------------------------------------------- +// +EXPORT_C TUint32 CIMPSSAPSettings::Uid() const + { + return iBody->Uid(); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SAPName() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::SAPName() const + { + return iBody->SAPName(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SAPAddress() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::SAPAddress() const + { + return iBody->SAPAddress(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SAPPort() +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt32 CIMPSSAPSettings::SAPPort() const + { + return iBody->SAPPort(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SAPUserId() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::SAPUserId() const + { + return iBody->SAPUserId(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SAPUserPassword() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::SAPUserPassword() const + { + return iBody->SAPUserPassword(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::HTTPProxyAddress() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::HTTPProxyAddress() const + { + return iBody->HTTPProxyAddress(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::HTTPProxyPort() +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt32 CIMPSSAPSettings::HTTPProxyPort() const + { + return iBody->HTTPProxyPort(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::HTTPProxyUserId() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::HTTPProxyUserId() const + { + return iBody->HTTPProxyUserId(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::HTTPProxyUserPassword() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::HTTPProxyUserPassword() const + { + return iBody->HTTPProxyUserPassword(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::AccessPoint() +// ----------------------------------------------------------------------------- +// +EXPORT_C TUint32 CIMPSSAPSettings::AccessPoint() const + { + return iBody->AccessPoint(); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::ClientId() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::ClientId() const + { + return iBody->ClientId(); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::ServerAuthenticationName() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::ServerAuthenticationName() const + { + return iBody->ServerAuthenticationName(); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::ServerAuthenticationPassword() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::ServerAuthenticationPassword() const + { + return iBody->ServerAuthenticationPassword(); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::ServerAcceptedContentType() +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIMPSSAPSettings::ServerAcceptedContentType() const + { + return iBody->ServerAcceptedContentType(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::HighLevelServices() +// ----------------------------------------------------------------------------- +// +EXPORT_C TUint32 CIMPSSAPSettings::HighLevelServices() const + { + return iBody->HighLevelServices(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetSAPNameL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetSAPNameL( const TDesC& aName ) + { + iBody->SetSAPNameL( aName ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetSAPAddressL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetSAPAddressL( const TDesC& aAddress ) + { + iBody->SetSAPAddressL( aAddress ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetSAPPort() +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::SetSAPPort( TInt32 aPort ) + { + return iBody->SetSAPPort( aPort ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetSAPUserIdL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetSAPUserIdL( const TDesC& aUserId ) + { + iBody->SetSAPUserIdL( aUserId ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetSAPUserPasswordL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetSAPUserPasswordL( const TDesC& aPassword ) + { + iBody->SetSAPUserPasswordL( aPassword ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetHTTPProxyAddressL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetHTTPProxyAddressL( const TDesC& aAddress ) + { + iBody->SetHTTPProxyAddressL( aAddress ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetHTTPProxyPort() +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::SetHTTPProxyPort( TInt32 aPort ) + { + return iBody->SetHTTPProxyPort( aPort ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetHTTPProxyUserIdL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetHTTPProxyUserIdL( const TDesC& aUserId ) + { + iBody->SetHTTPProxyUserIdL( aUserId ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetHTTPProxyUserPasswordL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetHTTPProxyUserPasswordL( const TDesC& aPassword ) + { + iBody->SetHTTPProxyUserPasswordL( aPassword ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetAccessPoint() +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::SetAccessPoint( TUint32 aAP ) + { + return iBody->SetAccessPoint( aAP ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetClientIdL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetClientIdL( const TDesC& aClientId ) + { + iBody->SetClientIdL( aClientId ); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetServerAuthenticationNameL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetServerAuthenticationNameL( const TDesC& aClientId ) + { + iBody->SetServerAuthenticationNameL( aClientId ); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetServerAuthenticationPasswordL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetServerAuthenticationPasswordL( const TDesC& aClientId ) + { + iBody->SetServerAuthenticationPasswordL( aClientId ); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetServerAcceptedContentTypeL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetServerAcceptedContentTypeL( const TDesC& aClientId ) + { + iBody->SetServerAcceptedContentTypeL( aClientId ); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetHighLevelServices() +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::SetHighLevelServices( TUint32 aServices ) + { + return iBody->SetHighLevelServices( aServices ); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetAuthorizationMode() +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::SetAuthorizationMode( TUint32 aMode ) + { + return iBody->SetAuthorizationMode( aMode ); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::ProtectL() +// Protection setters/getters. +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::ProtectL( TIMPSSAPProtection aProtection ) + { + iBody->ProtectL( aProtection ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::Protection() +// Protection setters/getters. +// ----------------------------------------------------------------------------- +// +EXPORT_C TIMPSSAPProtection CIMPSSAPSettings::Protection() const + { + return iBody->Protection(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::IncreaseLoginCoun() +// Utility method. +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::IncreaseLoginCount() + { + iBody->IncreaseLoginCount(); + } + + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::LoginCount() +// Utility method. +// ----------------------------------------------------------------------------- +// +EXPORT_C TUint32 CIMPSSAPSettings::LoginCount() const + { + return iBody->LoginCount(); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetOpaqueInt() +// Key-value pairs. +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::SetOpaqueInt( const TDesC& aKey, TInt aValue ) + { + __ASSERT_ALWAYS( aKey.Find( KKeyValuePairFieldSeparator ) == KErrNotFound, + Panic( EIMPSInvalidKeyValue ) ); + + TInt err = iKeyValuePairs->SetValueInt( aKey, aValue ); + if ( err == KErrNone ) + { + iBody->DoResetLoginCount(); + } + return err; + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetOpaqueDesC8() +// Key-value pairs. +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::SetOpaqueDesC8( const TDesC& aKey, + const TDesC8& aValue ) + { + __ASSERT_ALWAYS( aKey.Find( KKeyValuePairFieldSeparator ) == KErrNotFound, + Panic( EIMPSInvalidKeyValue ) ); + + TInt err = iKeyValuePairs->SetValueDesC8( aKey, aValue ); + if ( err == KErrNone ) + { + iBody->DoResetLoginCount(); + } + return err; + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetOpaqueDesC16() +// Key-value pairs. +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::SetOpaqueDesC16( const TDesC& aKey, + const TDesC16& aValue ) + { + __ASSERT_ALWAYS( aKey.Find( KKeyValuePairFieldSeparator ) == KErrNotFound, + Panic( EIMPSInvalidKeyValue ) ); + + TInt err = iKeyValuePairs->SetValueDesC16( aKey, aValue ); + if ( err == KErrNone ) + { + iBody->DoResetLoginCount(); + } + return err; + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::GetOpaqueInt() +// Key-value pairs. +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::GetOpaqueInt( const TDesC& aKey, TInt& aValue ) const + { + return iKeyValuePairs->GetValueInt( aKey, aValue ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::GetOpaqueDesC8() +// Key-value pairs. +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::GetOpaqueDesC8( const TDesC& aKey, TPtrC8& aValue ) const + { + return iKeyValuePairs->GetValueDesC8( aKey, aValue ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::GetOpaqueDesC16() +// Key-value pairs. +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::GetOpaqueDesC16( const TDesC& aKey, + TPtrC16& aValue ) const + { + return iKeyValuePairs->GetValueDesC16( aKey, aValue ); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::DeleteOpaque() +// Key-value pairs. +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::DeleteOpaque( const TDesC& aKey ) + { + return iKeyValuePairs->DeletePair( aKey ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::EqualConnectionSettings() +// ----------------------------------------------------------------------------- +// +EXPORT_C TBool CIMPSSAPSettings::EqualConnectionSettings( const CIMPSSAPSettings& aOther ) const + { + return iBody->EqualConnectionSettings( aOther.Body() ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::EqualUserSettings() +// ----------------------------------------------------------------------------- +// +EXPORT_C TBool CIMPSSAPSettings::EqualUserSettings( const CIMPSSAPSettings& aOther ) const + { + return iBody->EqualUserSettings( aOther.Body() ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::Reset() +// Utility method. +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::Reset() + { + iBody->Reset(); + iKeyValuePairs->Reset(); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::CopyL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::CopyL( const CIMPSSAPSettings& aSource ) + { + IMPSSAPObjectHandler::CopyL( aSource.Body(), *iBody ); + IMPSSAPObjectHandler::CopyL( *aSource.iKeyValuePairs, *iKeyValuePairs ); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::AccessGroup() +// ----------------------------------------------------------------------------- +// + +EXPORT_C TIMPSAccessGroup CIMPSSAPSettings::AccessGroup() const + { + return iBody->AccessGroup(); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::SetAccessGroup() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::SetAccessGroup( TIMPSAccessGroup aGroup ) + { + iBody->DoSetAccessGroup( aGroup ); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::AuthorizationMode() +// ----------------------------------------------------------------------------- +// + +EXPORT_C TUint32 CIMPSSAPSettings::AuthorizationMode() const + { + return iBody->AuthorizationMode(); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::ExternalizeL() +// Streaming support +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::ExternalizeL( RWriteStream& aStream ) const + { + IMPSSAPObjectHandler::ExternalizeL( *iBody, aStream ); + IMPSSAPObjectHandler::ExternalizeL( *iKeyValuePairs, aStream ); + } + + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::InternalizeL() +// Streaming support +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::InternalizeL( RReadStream& aStream ) + { + IMPSSAPObjectHandler::InternalizeL( *iBody, aStream ); + IMPSSAPObjectHandler::InternalizeL( *iKeyValuePairs, aStream ); + } + + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::DataSize() +// Streaming support +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CIMPSSAPSettings::DataSize() const + { + return IMPSSAPObjectHandler::DataSize( *iBody ) + + IMPSSAPObjectHandler::DataSize( *iKeyValuePairs ); + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::PackLC() +// ----------------------------------------------------------------------------- +// + +EXPORT_C HBufC8* CIMPSSAPSettings::PackLC() const + { + HBufC8* packBuffer = HBufC8::NewLC( DataSize() ); + TPtr8 pack( packBuffer->Des() ); + + RDesWriteStream ws; + ws.Open( pack ); // CSI: 65 # + // This Open() returns void + CleanupClosePushL( ws ); + + ExternalizeL( ws ); + + ws.CommitL(); + CleanupStack::PopAndDestroy(); //ws + + packBuffer = packBuffer->ReAllocL( packBuffer->Length() ); + CleanupStack::Pop(); + CleanupStack::PushL( packBuffer ); //Due realloc + + return packBuffer; + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::UnPackL() +// ----------------------------------------------------------------------------- +// +EXPORT_C void CIMPSSAPSettings::UnPackL( const TDesC8& aPackage ) + { + RDesReadStream rs; + rs.Open( aPackage ); // CSI: 65 # + // This Open() returns void + CleanupClosePushL( rs ); + + InternalizeL( rs ); + + CleanupStack::PopAndDestroy(); //rs + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::Body() +// ----------------------------------------------------------------------------- +// +CIMPSSAPSettingsBody& CIMPSSAPSettings::Body() + { + return *iBody; + } + +const CIMPSSAPSettingsBody& CIMPSSAPSettings::Body() const + { + return *iBody; + } + +// ----------------------------------------------------------------------------- +// CIMPSSAPSettings::KeyValuePairs() +// ----------------------------------------------------------------------------- +// +CIMPSSAPKeyValuePairs& CIMPSSAPSettings::KeyValuePairs() + { + return *iKeyValuePairs; + } + +const CIMPSSAPKeyValuePairs& CIMPSSAPSettings::KeyValuePairs() const + { + return *iKeyValuePairs; + } + + + +// End of File +