diff -r 000000000000 -r f72a12da539e idlehomescreen/xmluirendering/uiresource/src/xnresource.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/xmluirendering/uiresource/src/xnresource.cpp Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,415 @@ +/* +* Copyright (c) 2002-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: Resource definition of Xuikon Application Theme Management Services. +* See XnResource.h. +* +* +*/ + + +#include "xnresource.h" + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CXnResource::CXnResource() +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CXnResource::CXnResource() + { + } + +// ----------------------------------------------------------------------------- +// CXnResource::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CXnResource::ConstructL() + { + } + +// ----------------------------------------------------------------------------- +// CXnResource::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +EXPORT_C CXnResource* CXnResource::NewL() + { + CXnResource* self = new( ELeave ) CXnResource; + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(); + return self; + } + +// ----------------------------------------------------------------------------- +// CXnResource::NewLC +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +EXPORT_C CXnResource* CXnResource::NewLC( RReadStream& aStream ) + { + CXnResource* resource = CXnResource::NewL(); + CleanupStack::PushL( resource ); + resource->InternalizeL( aStream ); + return resource; + } + + +// ----------------------------------------------------------------------------- +// CXnResource::CloneL() +// Returns an exact copy of this CXnResource object. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C CXnResource* CXnResource::CloneL() + { + CXnResource* clone = CXnResource::NewL(); + CleanupStack::PushL( clone ); + clone->SetLockingPolicy( iLockingPolicy ); + clone->SetCacheType( iCacheType ); + clone->SetResourceType( iResourceType ); + + clone->SetResourceIdL( *iResourceID ); + clone->SetNameSpaceL( *iNameSpace ); + clone->SetFileNameL( *iFileName ); + clone->SetMimeTypeL( iMimeType ); + + CleanupStack::Pop( clone ); + return clone; + } + +// Destructor +CXnResource::~CXnResource() + { + iWriteStream.Close(); + iReadStream.Close(); + delete iResourceID; + delete iNameSpace; + delete iFileName; + } + + +// ----------------------------------------------------------------------------- +// CXnResource::ExternalizeL(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CXnResource::ExternalizeL( RWriteStream& aStream ) const + { + aStream.WriteUint32L( iLockingPolicy ); + aStream.WriteUint32L( iCacheType ); + aStream.WriteUint32L( iResourceType ); + + if ( iResourceID ) + { + aStream << *iResourceID; + } + else + { + aStream << KNullDesC; + } + + if ( iNameSpace ) + { + aStream << *iNameSpace; + } + else + { + aStream << KNullDesC; + } + + if ( iFileName ) + { + aStream << *iFileName; + } + else + { + aStream << KNullDesC; + } + + + iMimeType.ExternalizeL(aStream); + + // replacement of unimplemented buffer size + TInt size = 0; + aStream.WriteUint32L( size ); + + aStream.WriteUint32L( iOffset ); + } + +// ----------------------------------------------------------------------------- +// CXnResource::InternalizeL(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CXnResource::InternalizeL( RReadStream& aStream ) + { + iLockingPolicy = (TXnLockingPolicy)aStream.ReadUint32L(); + iCacheType = (TXnCacheType)aStream.ReadUint32L(); + iResourceType = (TXnResourceType)aStream.ReadUint32L(); + + delete iResourceID; + iResourceID = NULL; + iResourceID = HBufC::NewL(aStream, KMaxFileName ); + + delete iNameSpace; + iNameSpace = NULL; + iNameSpace = HBufC::NewL(aStream, KMaxFileName ); + + delete iFileName; + iFileName = NULL; + iFileName = HBufC::NewL(aStream, KMaxFileName ); + + + iMimeType.InternalizeL(aStream); + + TInt size = aStream.ReadUint32L(); + iOffset = aStream.ReadUint32L(); + } + +// ----------------------------------------------------------------------------- +// CXnResource::SetLockingPolicy(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CXnResource::SetLockingPolicy( TXnLockingPolicy aLockingPolicy ) + { + iLockingPolicy = aLockingPolicy; + } + +// ----------------------------------------------------------------------------- +// CXnResource::LockingPolicy(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C TXnLockingPolicy CXnResource::LockingPolicy() const + { + return iLockingPolicy; + } + +// ----------------------------------------------------------------------------- +// CXnResource::SetCacheType(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CXnResource::SetCacheType( TXnCacheType aCacheType ) + { + iCacheType = aCacheType; + } + +// ----------------------------------------------------------------------------- +// CXnResource::CacheType() +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C TXnCacheType CXnResource::CacheType() const + { + return iCacheType; + } + +// ----------------------------------------------------------------------------- +// CXnResource::SetResourceType(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CXnResource::SetResourceType( TXnResourceType aResourceType ) + { + iResourceType = aResourceType; + } + +// ----------------------------------------------------------------------------- +// CXnResource::ResourceType(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C TXnResourceType CXnResource::ResourceType() const + { + return iResourceType; + } + + +// ----------------------------------------------------------------------------- +// CXnResource::SetResourceIdL(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CXnResource::SetResourceIdL( const TDesC& aResourceId ) + { + delete iResourceID; + iResourceID = NULL; + iResourceID = aResourceId.AllocL(); + } + +// ----------------------------------------------------------------------------- +// CXnResource::ResourceId(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CXnResource::ResourceId() const + { + if ( iResourceID ) + { + return *iResourceID; + } + else + { + return KNullDesC; + } + } + +// ----------------------------------------------------------------------------- +// CXnResource::SetNameSpaceL(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CXnResource::SetNameSpaceL( const TDesC& aNameSpace ) + { + delete iNameSpace; + iNameSpace = NULL; + iNameSpace = aNameSpace.AllocL(); + } + +// ----------------------------------------------------------------------------- +// CXnResource::NameSpace(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CXnResource::NameSpace() const + { + if ( iNameSpace ) + { + return *iNameSpace; + } + else + { + return KNullDesC; + } + } + +// ----------------------------------------------------------------------------- +// CXnResource::SetFileNameL(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CXnResource::SetFileNameL( const TDesC& aFileName ) + { + delete iFileName; + iFileName = NULL; + iFileName = aFileName.AllocL(); + } + +// ----------------------------------------------------------------------------- +// CXnResource::FileName(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CXnResource::FileName() const + { + if ( iFileName ) + { + return *iFileName; + } + else + { + return KNullDesC; + } + } + + +// ----------------------------------------------------------------------------- +// CXnResource::SetMimeTypeL(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CXnResource::SetMimeTypeL( const TDataType aDataType ) + { + iMimeType = aDataType; + } + +// ----------------------------------------------------------------------------- +// CXnResource::MimeType(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C TDataType CXnResource::MimeType() const + { + return iMimeType; + } + +// ----------------------------------------------------------------------------- +// CXnResource::WriteStream(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C RBufWriteStream& CXnResource::WriteStream( TUint aOffset ) + { + iWriteStream.Open( *iBuffer, aOffset ); + return iWriteStream; + } + +// ----------------------------------------------------------------------------- +// CXnResource::ReadStream(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C RBufReadStream& CXnResource::ReadStream(TUint aOffset ) + { + // constructing read stream on buffer + iReadStream.Open( *iBuffer, aOffset ); + return iReadStream; + } + +// ----------------------------------------------------------------------------- +// CXnResource::SetOffset(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CXnResource::SetOffset( TUint aOffset ) + { + iOffset = aOffset; + } + + +// ----------------------------------------------------------------------------- +// CXnResource::Offset(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C TUint CXnResource::Offset() const + { + return iOffset; + } + +// ----------------------------------------------------------------------------- +// CXnResource::GetDataStreamLength(). +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CXnResource::GetDataStreamLength() const + { + TInt len = sizeof( iLockingPolicy ); + len += sizeof(iCacheType); + len += sizeof(iResourceType); + len += iResourceID->Size(); + len += iNameSpace->Size(); + len += iFileName->Size(); + len += sizeof(iMimeType); + len += sizeof(iOffset); + return len; + } + +// End of File