--- a/brandingserver/bsclient/cbselement.cpp Fri May 28 18:27:27 2010 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,343 +0,0 @@
-/*
-* Copyright (c) 2009 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: cbselement.cpp
-*
-*/
-// INCLUDE FILES
-
-#include <utf.h>
-#include "e32base.h"
-#include "s32strm.h"
-#include "cbselement.h"
-#include "cbsbitmap.h"
-
-
-CBSElement* CBSElement::NewL(
- const TDesC8& aElementId,
- TInt aData )
- {
-
- CBSElement* self = new ( ELeave ) CBSElement() ;
- CleanupStack::PushL( self );
- self->ConstructL( EBSInt,
- aElementId,
- aData,
- ETrue,
- NULL,
- KNullDesC,
- KNullDesC8,
- NULL );
- CleanupStack::Pop( self ); //self
- return self;
- }
-
-
-CBSElement* CBSElement::NewL(
- const TDesC8& aElementId,
- const TDesC& aData,
- TBSElementType aType /*= EText*/ )
- {
- if( aType != EBSFile && aType != EBSText )
- {
- User::Leave( KErrArgument );
- }
-
- CBSElement* self = new ( ELeave ) CBSElement() ;
- CleanupStack::PushL( self );
- self->ConstructL( aType,
- aElementId,
- 0,
- EFalse,
- NULL,
- aData,
- KNullDesC8,
- NULL);
- CleanupStack::Pop( self ); //self
- return self;
- }
-
-
-CBSElement* CBSElement::NewL(
- const TDesC8& aElementId,
- const TDesC8& aData )
- {
- CBSElement* self = new ( ELeave ) CBSElement() ;
- CleanupStack::PushL( self );
- self->ConstructL( EBSBuffer,
- aElementId,
- 0,
- EFalse,
- NULL,
- KNullDesC,
- aData,
- NULL);
- CleanupStack::Pop( self ); //self
- return self;
- }
-
-CBSElement* CBSElement::NewL(
- const TDesC8& aElementId,
- RBSObjOwningPtrArray<MBSElement>& aStructure )
- {
- CBSElement* self = new ( ELeave ) CBSElement();
- CleanupStack::PushL( self );
- self->ConstructL( EBSList,
- aElementId,
- 0,
- EFalse,
- NULL,
- KNullDesC,
- KNullDesC8,
- &aStructure );
- CleanupStack::Pop( self ); //self
- return self;
- }
-
-CBSElement* CBSElement::NewL(
- const TDesC8& aElementId,
- CBSBitmap* aBitmap )
- {
- CBSElement* self = new ( ELeave ) CBSElement() ;
- CleanupStack::PushL( self );
- self->ConstructL( EBSBitmap,
- aElementId,
- 0,
- EFalse,
- aBitmap,
- KNullDesC,
- KNullDesC8,
- NULL );
-
- if( !aBitmap )
- {
- User::Leave( KErrArgument );
- }
-
- CleanupStack::Pop( self ); //self
- return self;
- }
-
-void CBSElement::ConstructL(
- TBSElementType aElementType,
- const TDesC8& aElementId,
- TInt aIntData,
- TBool aIntDataInitialized,
- CBSBitmap* aBitmap,
- const TDesC& aTextData,
- const TDesC8& aBufferData,
- RBSObjOwningPtrArray<MBSElement>* aStructure )
- {
- iElementType = aElementType;
-
- iElementId = aElementId.AllocL();
-
- iIntData = aIntData;
- iIntDataInitialized = aIntDataInitialized;
-
- iBitmapData = aBitmap;
-
- if( 0 != aTextData.Compare( KNullDesC() ) )
- {
- iTextData = aTextData.AllocL();
- }
- if( 0 != aBufferData.Compare( KNullDesC8() ) )
- {
- iBufferData = aBufferData.AllocL();
- }
- if( aStructure )
- {
- iArrayInitialized = ETrue;
- iArray = *aStructure;
- }
- }
-
-
-CBSElement::~CBSElement()
- {
- delete iTextData;
- delete iBufferData;
- delete iElementId;
-
- iArray.Close();
- delete iBitmapData;
- }
-
-
-CBSElement::CBSElement()
- {
- }
-
-void CBSElement::Close()
- {
- delete this;
- }
-
-
-TBSElementType CBSElement::ElementType()
- {
- return iElementType;
- }
-
-const TDesC8& CBSElement::ElementId()
- {
- return *iElementId;
- }
-
-TInt CBSElement::IntDataL()
- {
- if( !iIntDataInitialized )
- {
- User::Leave( KErrArgument );
- }
- return iIntData;
- }
-
-const TDesC& CBSElement::TextDataL()
- {
- if( !iTextData )
- {
- User::Leave( KErrArgument );
- }
- return *iTextData;
- }
-
-const TDesC8& CBSElement::BufferDataL()
- {
- if( !iBufferData )
- {
- User::Leave( KErrArgument );
- }
- return *iBufferData;
- }
-
-const CBSBitmap& CBSElement::BitmapDataL()
- {
- if( !iBitmapData )
- {
- User::Leave( KErrArgument );
- }
- return *iBitmapData;
- }
-
-TArray<MBSElement*> CBSElement::GetStructureL()
- {
- if( !iArrayInitialized )
- {
- User::Leave( KErrArgument );
- }
-
- return iArray.Array();
- }
-
-const MBSElement& CBSElement::FindSubEntryL( const TDesC& aElementId )
- {
- if ( !iArray.Count() )
- {
- User::Leave( KErrNotFound );
- }
-
- MBSElement* element = NULL;
- HBufC8* id = CnvUtfConverter::ConvertFromUnicodeToUtf8L( aElementId );
- User::LeaveIfNull( id );
- CleanupStack::PushL( id );
- for ( TInt i( 0 ) ; i < iArray.Count() ; i++ )
- {
- if ( iArray[ i ] )
- {
- if ( !iArray[ i ]->ElementId().CompareC( *id ) )
- {
- // Match found
- element = iArray[ i ];
- i = iArray.Count();// Exit loop.
- }
- }
- }
- CleanupStack::PopAndDestroy( id );
-
- if ( !element )
- {
- User::Leave( KErrNotFound );
- }
-
- return *element;
- }
-
-void CBSElement::ExternalizeL( RWriteStream& aWriteStream )
- {
- // Write common header for all elements
- aWriteStream.WriteInt16L( iElementType );
- aWriteStream.WriteInt16L( iElementId->Length() );
- if( iElementId->Length() > 0 )
- {
- // Write ID only if it's defined
- aWriteStream.WriteL( *iElementId );
- }
-
- // Write element type specific data
- switch( iElementType )
- {
- case EBSInt:
- {
- aWriteStream.WriteInt16L( iIntData );
- break;
- }
- case EBSText: // flowthrough
- case EBSFile:
- {
- aWriteStream.WriteInt16L( iTextData->Length() );
- aWriteStream.WriteL( *iTextData );
- break;
- }
- case EBSList:
- {
- TInt count = iArray.Count();
- aWriteStream.WriteInt16L( count );
- // Write all subitems to stream
- for( TInt i = 0; i < count; i++ )
- {
- MBSElement* element = iArray[i];
- element->ExternalizeL( aWriteStream );
- }
- break;
- }
- case EBSBitmap:
- {
- TPtrC8 ptr = iBitmapData->BitmapFileId();
- aWriteStream.WriteInt16L( ptr.Length() );
- aWriteStream.WriteL( ptr );
-
- aWriteStream.WriteInt16L( iBitmapData->BitmapId() );
- aWriteStream.WriteInt16L( iBitmapData->BitmapMaskId() );
- aWriteStream.WriteInt16L( iBitmapData->SkinIdMajor() );
- aWriteStream.WriteInt16L( iBitmapData->SkinIdMinor() );
-
- break;
- }
- case EBSBuffer:
- {
- aWriteStream.WriteInt16L( iBufferData->Length() );
- aWriteStream.WriteL( *iBufferData );
- break;
- }
- default:
- {
- // unknown type!
- User::Leave( KErrCorrupt );
- break;
- }
- }
- }
-
-
-// END OF FILE