--- /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
+
+
+