--- /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 <e32std.h>
+#include <centralrepository.h>
+#include <s32mem.h>
+
+#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
+