PECengine/AttributeLibrary2/SrcWVAttributes/CPEngWVThumbnailConstruct.cpp
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/AttributeLibrary2/SrcWVAttributes/CPEngWVThumbnailConstruct.cpp	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,446 @@
+/*
+* 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:  WV Thumbnail implementation.
+*
+*/
+
+// INCLUDE FILES
+#include "CPEngWVAttributeConstructBase.h"
+#include "CPEngWVAttributeModelBase.h"
+#include "CPEngWVThumbnailConstruct.h"
+#include "PEngWVAttributeModelDataHelper.h"
+
+
+
+#include "MPEngXMLSerializer.h"
+#include "MPEngXMLParser.h"
+
+#include <MPEngPresenceAttrModel2.h>
+#include <PEngWVPresenceAttributes2.h>
+
+
+#include <E32Base.h>
+#include <S32Strm.h>
+
+
+
+//  DATA TYPES
+/**
+ * Thumbnail CSP name table.
+ * NOTE: Thumbnail isn't published (XML name and namespace
+ * ar thus empty.) However, the CSP name table is needed
+ * to get the attribute working in different protocol
+ * configurations.
+ *
+ * @since 3.0
+ */
+const TWVCspAttributeNameEntry KThumbnailCspNameTable[] =
+    {
+        {
+        EWVCspV11,
+        LIT_AS_DESC8_PTR( KNullDesC ),
+        LIT_AS_DESC8_PTR( KNullDesC )
+        },
+        {
+        EWVCspV12,
+        LIT_AS_DESC8_PTR( KNullDesC ),
+        LIT_AS_DESC8_PTR( KNullDesC )
+        }
+    };
+
+
+const TInt KThumbnailCspNameTableCount = sizeof( KThumbnailCspNameTable ) / sizeof( TWVCspAttributeNameEntry );
+
+
+
+
+// =============== CPEngWVThumbnailConstruct MEMBER FUNCTIONS ===============
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailConstruct
+// C++ constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CPEngWVThumbnailConstruct::CPEngWVThumbnailConstruct( TPEngWVCspVersion aCurrentCspVer )
+        : CPEngWVAttributeConstructBase( aCurrentCspVer,
+                                         KThumbnailCspNameTable,
+                                         KThumbnailCspNameTableCount )
+    {
+    }
+
+
+// Destructor
+CPEngWVThumbnailConstruct::~CPEngWVThumbnailConstruct()
+    {
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::NewAttributeInstanceLC()
+// -----------------------------------------------------------------------------
+//
+MPEngPresenceAttrModelTypeImp* CPEngWVThumbnailConstruct::NewAttributeInstanceLC(
+    TBool aUserOwnAttribute ) const
+    {
+    CPEngWVThumbnailModel* model = new ( ELeave ) CPEngWVThumbnailModel(
+        aUserOwnAttribute );
+    CleanupStack::PushL( model );
+    model->ResetDataL();
+    return model;
+    }
+
+
+
+
+// ================= CPEngWVThumbnailModel MEMBER FUNCTIONS =================
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailConstruct::CPEngWVThumbnailModel
+// C++ constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::CPEngWVThumbnailModel(
+    TBool aUserOwnAttribute )
+        : CPEngWVAttributeModelBase( aUserOwnAttribute )
+    {
+    }
+
+
+// Destructor
+CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::~CPEngWVThumbnailModel()
+    {
+    delete iDesC8Buf0;
+    delete iDesC8Buf1;
+    delete iDesC8Buf2;
+    delete iDesC16Buf0;
+    delete iDesC16Buf1;
+    delete iDesC16Buf2;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::SetDataL()
+// -----------------------------------------------------------------------------
+//
+TBool CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::SetDataL( TInt* /*aIntData*/,
+                                                                  const TDesC8* a8Data,
+                                                                  const TDesC16* a16Data,
+                                                                  TInt aField,
+                                                                  TInt aGroup )
+    {
+    TBool handled = EFalse;
+
+    if ( aGroup == KPEngDefaultAttrValueGroup )
+        {
+        if ( a16Data )
+            {
+            handled = SetData16L( *a16Data, aField );
+            }
+
+        else if ( a8Data )
+            {
+            handled = SetData8L( *a8Data, aField );
+            }
+        }
+
+    return handled;
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::GetData()
+// -----------------------------------------------------------------------------
+//
+TBool CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::GetData( TInt* /*aIntData*/,
+                                                                 TPtrC8* a8Data,
+                                                                 TPtrC16* a16Data,
+                                                                 TInt aField,
+                                                                 TInt aGroup ) const
+    {
+    TBool handled = EFalse;
+
+
+    if ( aGroup == KPEngDefaultAttrValueGroup )
+        {
+        if ( a16Data )
+            {
+            handled = GetData16( aField, *a16Data );
+            }
+
+        else if ( a8Data )
+            {
+            handled = GetData8( aField, *a8Data );
+            }
+        }
+
+
+    return handled;
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::EncodeDataToXmlL()
+// -----------------------------------------------------------------------------
+//
+void CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::EncodeDataToXmlL(
+    MPEngXMLSerializer& /*aSerializer*/ ) const
+    {
+    //Thumbnail model doesn't support XML encode / decode
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::DecodeDataFromXmlL()
+// -----------------------------------------------------------------------------
+//
+void CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::DecodeDataFromXmlL(
+    MPEngXMLParser& /*aParser*/,
+    const TDesC8& /*aValueBlock*/ )
+    {
+    //Thumbnail model doesn't support XML encode / decode
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::ResetDataL()
+// -----------------------------------------------------------------------------
+//
+void CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::ResetDataL()
+    {
+    delete iDesC8Buf0;
+    delete iDesC8Buf1;
+    delete iDesC8Buf2;
+    delete iDesC16Buf0;
+    delete iDesC16Buf1;
+    delete iDesC16Buf2;
+
+    iDesC8Buf0 = NULL;
+    iDesC8Buf1 = NULL;
+    iDesC8Buf2 = NULL;
+    iDesC16Buf0 = NULL;
+    iDesC16Buf1 = NULL;
+    iDesC16Buf2 = NULL;
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::DataExternalizeSize()
+// -----------------------------------------------------------------------------
+//
+TInt CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::DataExternalizeSize() const
+    {
+    TInt size = DoGetBufExtSize( iDesC8Buf0 );
+    size += DoGetBufExtSize( iDesC8Buf1 );
+    size += DoGetBufExtSize( iDesC8Buf2 );
+    size += DoGetBufExtSize( iDesC16Buf0 );
+    size += DoGetBufExtSize( iDesC16Buf1 );
+    size += DoGetBufExtSize( iDesC16Buf2 );
+    return size;
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::ExternalizeDataL()
+// -----------------------------------------------------------------------------
+//
+void CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::ExternalizeDataL(
+    RWriteStream& aStream ) const
+    {
+    DoExtrBufL( iDesC8Buf0, aStream );
+    DoExtrBufL( iDesC8Buf1, aStream );
+    DoExtrBufL( iDesC8Buf2, aStream );
+    DoExtrBufL( iDesC16Buf0, aStream );
+    DoExtrBufL( iDesC16Buf1, aStream );
+    DoExtrBufL( iDesC16Buf2, aStream );
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::InternalizeDataL()
+// -----------------------------------------------------------------------------
+//
+void CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::InternalizeDataL(
+    RReadStream& aStream )
+    {
+    TPtr8 typeStrait8( NULL, 0 );
+    DoIntrBufL( iDesC8Buf0, typeStrait8, aStream );
+    DoIntrBufL( iDesC8Buf1, typeStrait8, aStream );
+    DoIntrBufL( iDesC8Buf2, typeStrait8, aStream );
+
+    TPtr16 typeStrait16( NULL, 0 );
+    DoIntrBufL( iDesC16Buf0, typeStrait16, aStream );
+    DoIntrBufL( iDesC16Buf1, typeStrait16, aStream );
+    DoIntrBufL( iDesC16Buf2, typeStrait16, aStream );
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::SetData8L()
+// -----------------------------------------------------------------------------
+//
+TBool CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::SetData8L( const TDesC8& aData,
+                                                                   TInt aField )
+    {
+    TBool handled = EFalse;
+    switch ( aField ) //From TPEngMyLogoThumbnailDesC8Fields
+        {
+        case EPEngMyLogoThumbnailDesC8Buf0:
+            {
+            DoSetDescL( iDesC8Buf0, aData );
+            handled = ETrue;
+            break;
+            }
+        case EPEngMyLogoThumbnailDesC8Buf1:
+            {
+            DoSetDescL( iDesC8Buf1, aData );
+            handled = ETrue;
+            break;
+            }
+
+        case EPEngMyLogoThumbnailDesC8Buf2:
+            {
+            DoSetDescL( iDesC8Buf2, aData );
+            handled = ETrue;
+            break;
+            }
+        };
+
+    return handled;
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::GetData8()
+// -----------------------------------------------------------------------------
+//
+TBool CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::GetData8( TInt aField,
+                                                                  TPtrC8& aData ) const
+    {
+    TBool handled = EFalse;
+    switch ( aField ) //From TPEngMyLogoThumbnailDesC8Fields
+        {
+        case EPEngMyLogoThumbnailDesC8Buf0:
+            {
+            DoGetDesc( iDesC8Buf0, aData );
+            handled = ETrue;
+            break;
+            }
+        case EPEngMyLogoThumbnailDesC8Buf1:
+            {
+            DoGetDesc( iDesC8Buf1, aData );
+            handled = ETrue;
+            break;
+            }
+
+        case EPEngMyLogoThumbnailDesC8Buf2:
+            {
+            DoGetDesc( iDesC8Buf2, aData );
+            handled = ETrue;
+            break;
+            }
+        };
+
+    return handled;
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::SetData16L()
+// -----------------------------------------------------------------------------
+//
+TBool CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::SetData16L( const TDesC16& aData,
+                                                                    TInt aField )
+    {
+    TBool handled = EFalse;
+    switch ( aField ) //From TPEngMyLogoThumbnailDesC16Fields
+        {
+        case EPEngMyLogoThumbnailDesC16Buf0:
+            {
+            DoSetDescL( iDesC16Buf0, aData );
+            handled = ETrue;
+            break;
+            }
+        case EPEngMyLogoThumbnailDesC16Buf1:
+            {
+            DoSetDescL( iDesC16Buf1, aData );
+            handled = ETrue;
+            break;
+            }
+
+        case EPEngMyLogoThumbnailDesC16Buf2:
+            {
+            DoSetDescL( iDesC16Buf2, aData );
+            handled = ETrue;
+            break;
+            }
+        };
+
+    return handled;
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::GetData16()
+// -----------------------------------------------------------------------------
+//
+TBool CPEngWVThumbnailConstruct::CPEngWVThumbnailModel::GetData16( TInt aField,
+                                                                   TPtrC16& aData ) const
+    {
+    TBool handled = EFalse;
+    switch ( aField ) //From TPEngMyLogoThumbnailDesC16Fields
+        {
+        case EPEngMyLogoThumbnailDesC16Buf0:
+            {
+            DoGetDesc( iDesC16Buf0, aData );
+            handled = ETrue;
+            break;
+            }
+        case EPEngMyLogoThumbnailDesC16Buf1:
+            {
+            DoGetDesc( iDesC16Buf1, aData );
+            handled = ETrue;
+            break;
+            }
+
+        case EPEngMyLogoThumbnailDesC16Buf2:
+            {
+            DoGetDesc( iDesC16Buf2, aData );
+            handled = ETrue;
+            break;
+            }
+        };
+
+    return handled;
+    }
+
+
+
+//  End of File
+
+
+