diff -r 000000000000 -r 094583676ce7 PECengine/AttributeLibrary2/SrcWVAttributes/CPEngWVThumbnailConstruct.cpp --- /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 +#include + + +#include +#include + + + +// 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 + + +