voipplugins/accountcreationplugin/engine/src/acpprovider.cpp
changeset 0 a4daefaec16c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/voipplugins/accountcreationplugin/engine/src/acpprovider.cpp	Mon Jan 18 20:12:36 2010 +0200
@@ -0,0 +1,532 @@
+/*
+* Copyright (c) 2007-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:  Implements CAcpProvider methods
+*
+*/
+
+
+#include <fbs.h>
+#include <gulicon.h>
+
+#include "acpprovider.h"
+#include "accountcreationpluginlogger.h"
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::CAcpProvider
+// ---------------------------------------------------------------------------
+//
+CAcpProvider::CAcpProvider() 
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::NewL
+// ---------------------------------------------------------------------------
+//
+CAcpProvider* CAcpProvider::NewL()
+    {
+    CAcpProvider* self = CAcpProvider::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::NewLC
+// ---------------------------------------------------------------------------
+//
+CAcpProvider* CAcpProvider::NewLC()
+    {
+    CAcpProvider* self = new ( ELeave ) CAcpProvider();
+    CleanupStack::PushL( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::~CAcpProvider
+// ---------------------------------------------------------------------------
+//
+CAcpProvider::~CAcpProvider()
+    {
+    ACPLOG( "CAcpProvider::~CAcpProvider begin" );
+
+    delete iProviderName;
+    delete iIconUrl;
+    delete iSisUrl;
+    delete iCreationUrl;
+    delete iActivationUrl;
+    delete iBitmap;
+    delete iMask;
+    delete iProviderDescription;
+    delete iProviderType;
+    delete iMimeType;
+
+    ACPLOG( "CAcpProvider::~CAcpProvider end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::CopyL
+// Copies provider data from given parameter to member data.
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::CopyL( const CAcpProvider& aProvider )
+    {
+    ACPLOG( "CAcpProvider::CopyL begin" );
+
+    SetProviderNameL( aProvider.ProviderName() );
+    SetIconUrlL( aProvider.IconUrl() );
+    SetPriority( aProvider.Priority() );
+    SetSisUrlL( aProvider.SisUrl() );
+    SetCreationUrlL( aProvider.CreationUrl() );
+    SetActivationUrlL( aProvider.ActivationUrl() );
+    SetProviderTypeL( aProvider.ProviderType() );
+    SetProviderDescriptionL( aProvider.ProviderDescription() );
+
+    ACPLOG( "CAcpProvider::CopyL end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::ProviderName
+// Returns name of the provider.
+// ---------------------------------------------------------------------------
+//
+TPtrC CAcpProvider::ProviderName() const
+    {
+    if ( !iProviderName )
+        {
+        return KNullDesC();
+        }
+    return *iProviderName;
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SetProviderNameL
+// Sets name of the provider.
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::SetProviderNameL( const TDesC& aProviderName )
+    {
+    ACPLOG2( "CAcpProvider::SetProviderNameL: %S", &aProviderName );
+
+    // Check whether the provider name defined or not.
+    if ( !aProviderName.Length() )
+        {
+        return;
+        }
+
+    if ( !iProviderName ) 
+        {
+        iProviderName = HBufC::NewL( aProviderName.Length() );
+        }
+    else
+        {
+        iProviderName = iProviderName->ReAllocL( 
+            iProviderName->Length() + aProviderName.Length() );
+        }
+    iProviderName->Des().Append( aProviderName );
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::IconUrl
+// Returns the location of icons.
+// ---------------------------------------------------------------------------
+//
+TPtrC8 CAcpProvider::IconUrl() const
+    {
+    if ( !iIconUrl )
+        {
+        return KNullDesC8();
+        }
+
+    return *iIconUrl;
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SetIconUrlL
+// Sets the location of icons.
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::SetIconUrlL( const TDesC8& aIconUrl )
+    {
+    ACPLOG2( "CAcpProvider::SetIconUrlL: %S", &aIconUrl );
+
+    // Check whether the icon address is defined or not.
+    if ( !aIconUrl.Length() )
+        {
+        return;
+        }
+ 
+    if ( !iIconUrl )
+        {
+        iIconUrl = HBufC8::NewL( aIconUrl.Length() );
+        }
+    else
+        {
+        iIconUrl = iIconUrl->ReAllocL( 
+            iIconUrl->Length() + aIconUrl.Length() );
+        }
+
+    iIconUrl->Des().Append( aIconUrl );
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::Priority
+// Returns priority of the provider.
+// ---------------------------------------------------------------------------
+//
+TInt CAcpProvider::Priority() const
+    {
+    return iPriority;
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SetPriority
+// Sets priority of the provider.
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::SetPriority( TInt aPriority )
+    {
+    ACPLOG2( "CAcpProvider::SetPriority: %d", aPriority );
+    iPriority = aPriority;
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SisUrl
+// Returns the location of SIS file.
+// ---------------------------------------------------------------------------
+//
+TPtrC8 CAcpProvider::SisUrl() const
+    {
+    if ( iSisUrl )
+        {
+        return *iSisUrl;
+        }
+
+    return KNullDesC8();
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SetSisUrlL
+// Sets the location of SIS file.
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::SetSisUrlL( const TDesC8& aSisUrl )
+    {
+    ACPLOG2( "CAcpProvider::SetSisUrlL: %S", &aSisUrl );
+
+    // Check whether the SIS address defined or not.
+    if ( !aSisUrl.Length() )
+        {
+        return;
+        }
+
+    if ( !iSisUrl )
+        {
+        iSisUrl = HBufC8::NewL( aSisUrl.Length() );
+        }
+    else
+        {
+        iSisUrl = iSisUrl->ReAllocL( iSisUrl->Length() + aSisUrl.Length() );
+        }
+    iSisUrl->Des().Append( aSisUrl );
+
+    ACPLOG( "CAcpProvider::SetSisUrlL: end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::CreationUrl
+// Returns the location of creation URL.
+// ---------------------------------------------------------------------------
+//
+TPtrC8 CAcpProvider::CreationUrl() const
+    {
+    if ( iCreationUrl )
+        {
+        return *iCreationUrl;
+        }
+    return KNullDesC8();
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SetCreationUrlL
+// Sets the location of creation URL.
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::SetCreationUrlL( const TDesC8& aCreationUrl )
+    {
+    ACPLOG( "CAcpProvider::SetCreationUrlL: begin ");
+
+    // Check whether the creation address defined or not
+    if ( !aCreationUrl.Length() )
+        {
+        return;
+        }
+
+    if ( !iCreationUrl )
+        {
+        iCreationUrl = HBufC8::NewL( aCreationUrl.Length() );
+        }
+    else
+        {
+        iCreationUrl = iCreationUrl->ReAllocL( 
+            iCreationUrl->Length() + aCreationUrl.Length() );
+        }
+    iCreationUrl->Des().Append( aCreationUrl );
+
+    ACPLOG( "CAcpProvider::SetCreationUrlL end")
+    }    
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::ActivationUrl
+// Returns the location of activation URL.
+// ---------------------------------------------------------------------------
+//
+TPtrC8 CAcpProvider::ActivationUrl() const
+    {
+    if ( iActivationUrl )
+        {
+        return *iActivationUrl;
+        }
+
+    return KNullDesC8();
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SetActivationUrlL
+// Sets the location of activation URL.
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::SetActivationUrlL( const TDesC8& aActivationUrl )
+    {
+    ACPLOG2( "CAcpProvider::SetActivationUrlL: %S", &aActivationUrl );
+
+    // Check whether the activation address defined or not.
+    if ( !aActivationUrl.Length() )
+        {
+        return;
+        }
+
+    if ( !iActivationUrl )
+        {
+        iActivationUrl = HBufC8::NewL( aActivationUrl.Length() );
+        }
+    else
+        {
+        iActivationUrl = iActivationUrl->ReAllocL( 
+            iActivationUrl->Length() + aActivationUrl.Length() );
+        }
+
+    iActivationUrl->Des().Append( aActivationUrl ); 
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::ContentData
+// Returns the mime type of image file.
+// ---------------------------------------------------------------------------
+//
+TPtrC8 CAcpProvider::ContentData() const
+    {
+    if ( iMimeType )
+        {
+        return *iMimeType;
+        }
+    return KNullDesC8();
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SetContentDataL
+// Sets the content type of image file.
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::SetContentDataL( const TDesC8& aContentData )
+    {
+    ACPLOG2( "CAcpProvider::SetContentDataL: %S", &aContentData );
+    
+    // Check whether content data defined or not.
+    if ( !aContentData.Length() )
+        {
+        return;
+        }
+
+    if ( !iMimeType )
+        {
+        iMimeType = HBufC8::NewL( aContentData.Length() );
+        }
+    else
+        {
+        iMimeType = iMimeType->ReAllocL( 
+            iMimeType->Length() + aContentData.Length() );
+        }
+    iMimeType->Des().Append( aContentData ); 
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::ProviderType
+// Returns the provider type
+// ---------------------------------------------------------------------------
+//
+TPtrC CAcpProvider::ProviderType() const
+    {
+    if ( iProviderType )
+        {
+        return *iProviderType;
+        }
+    return KNullDesC();
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SetProviderTypeL
+// Sets the provider type
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::SetProviderTypeL( const TDesC& aProviderType )
+    {
+    ACPLOG2( "CAcpProvider::SetProviderTypeL: %S", &aProviderType );
+
+    // Check whether provider type defined or not.
+    if ( !aProviderType.Length() )
+        {
+        return;
+        }
+
+    if ( !iProviderType )
+        {
+        iProviderType = HBufC::NewL( aProviderType.Length() );
+        }
+    else
+        {
+        iProviderType = iProviderType->ReAllocL( 
+            iProviderType->Length() + aProviderType.Length() );
+        }
+    iProviderType->Des().Append( aProviderType );
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::ProviderDescription
+// Returns the provider description
+// ---------------------------------------------------------------------------
+//
+TPtrC CAcpProvider::ProviderDescription() const
+    {
+    if ( iProviderDescription )
+        {
+        return *iProviderDescription; 
+        }
+    return KNullDesC();
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SetProviderDescriptionL
+// Sets the provider description
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::SetProviderDescriptionL( const TDesC& aProviderDescription )
+    {
+    ACPLOG2( "CAcpProvider::SetProviderDescriptionL: %S", &aProviderDescription );
+
+    // Check whether the provider description defined or not.
+    if ( !aProviderDescription.Length() )
+        {
+        return;
+        }
+
+    if ( !iProviderDescription )
+        {
+        iProviderDescription = HBufC::NewL( aProviderDescription.Length() );
+        }
+    else
+        {
+        iProviderDescription = iProviderDescription->ReAllocL( 
+            iProviderDescription->Length() + aProviderDescription.Length() );
+        }
+
+    iProviderDescription->Des().Append( aProviderDescription );
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::SetBitmapL
+// Copies a bitmap.
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::SetBitmapL( CFbsBitmap* aBitmap, CFbsBitmap* aMask )
+    {
+    ACPLOG( "CAcpProvider::SetBitmapL begin" );
+    
+    if ( !aBitmap ) // Mask is not needed.
+        {
+        User::Leave( KErrArgument );
+        }
+    
+    const TSize bitmapSize = aBitmap->SizeInPixels();
+    if ( bitmapSize.iHeight > 0 && bitmapSize.iWidth > 0 )
+        {
+        ACPLOG3( " - bitmap size %d x %d pixels", bitmapSize.iWidth,
+            bitmapSize.iHeight );
+        
+        delete iBitmap;
+        iBitmap = NULL;
+        delete iMask;
+        iMask = NULL;
+        
+        ACPLOG( " - deleted bitmaps" );
+    
+        // Create new bitmap.
+        iBitmap = new (ELeave) CFbsBitmap();
+        iBitmap->Create( bitmapSize, aBitmap->DisplayMode() );
+        ACPLOG( " - created new bitmap" );
+        
+        // Calculate data length.
+        TInt stride = CFbsBitmap::ScanLineLength( bitmapSize.iWidth,
+            aBitmap->DisplayMode() );
+        TInt length = stride * bitmapSize.iHeight;
+        ACPLOG2( " - actual data length: %d", length );
+    
+        aBitmap->LockHeap();
+        Mem::Copy( iBitmap->DataAddress(), aBitmap->DataAddress(), length );
+        aBitmap->UnlockHeap();
+
+        // Create mask if needed.
+        if ( aMask )
+            {
+            iMask = new (ELeave) CFbsBitmap();
+            iMask->Create( aMask->SizeInPixels(), aMask->DisplayMode() );
+            ACPLOG( " - created new mask" );
+
+            // Calculate data length.
+            TSize maskSize = aMask->SizeInPixels();
+            TInt stride = CFbsBitmap::ScanLineLength( maskSize.iWidth,
+                aMask->DisplayMode() );
+            TInt length = stride * maskSize.iHeight;
+            ACPLOG2( " - actual mask data length: %d", length );
+            
+            aMask->LockHeap();
+            Mem::Copy( iMask->DataAddress(), aMask->DataAddress(), length );
+            aMask->UnlockHeap();
+            }
+        }
+
+    ACPLOG( "CAcpProvider::SetBitmapL end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CAcpProvider::BitMap
+// Reference to bitmap and mask.
+// ---------------------------------------------------------------------------
+//
+void CAcpProvider::GetBitmaps( CFbsBitmap*& aBitmap, CFbsBitmap*& aMask )
+    {
+    aBitmap = iBitmap;
+    aMask = iMask;
+    }
+
+// End of file.