wvsettings20/IMPSSrc/CIMPSSAPSettings.cpp
changeset 0 094583676ce7
--- /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
+