idlehomescreen/xmluirendering/uiresource/src/xnresource.cpp
changeset 0 f72a12da539e
--- /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