--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/AttributeLibrary2/SrcWVAttributes/PEngWVAttributeModelDataHelper.inl Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,114 @@
+/*
+* Copyright (c) 2005 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: Templated attribute data helpers.
+*
+*/
+
+
+// -----------------------------------------------------------------------------
+// DoSetDescL()
+// -----------------------------------------------------------------------------
+//
+template< class TBufType, class TDataType >
+inline void DoSetDescL( TBufType*& aPtr, const TDataType& aData )
+ {
+ TBufType* tmp = aData.AllocL();
+ delete aPtr;
+ aPtr = tmp;
+ }
+
+
+
+// -----------------------------------------------------------------------------
+// DoGetDesc()
+// -----------------------------------------------------------------------------
+//
+template< class TBufType, class TPtrType >
+inline void DoGetDesc( const TBufType* const& aBuffer, TPtrType& aData )
+ {
+ if( aBuffer )
+ {
+ aData.Set( *aBuffer );
+ }
+ else
+ {
+ aData.Set( NULL, 0 );
+ }
+ }
+
+
+
+// -----------------------------------------------------------------------------
+// DoGetBufExtSize()
+// -----------------------------------------------------------------------------
+//
+template< class TBufType >
+inline TInt DoGetBufExtSize( const TBufType* const& aBuffer )
+ {
+ TInt size( 4 ); //Buffer length indicator: 4 bytes
+
+ if( aBuffer && aBuffer->Length() != 0 )
+ {
+ size += aBuffer->Size();
+ }
+
+ return size;
+ }
+
+
+// -----------------------------------------------------------------------------
+// DoExtrBufL()
+// -----------------------------------------------------------------------------
+//
+template< class TBufType >
+inline void DoExtrBufL( const TBufType* const& aBuffer, RWriteStream& aStream )
+ {
+ if( aBuffer && aBuffer->Length() != 0 )
+ {
+ aStream.WriteInt32L( aBuffer->Length() );
+ aStream.WriteL( *aBuffer );
+ }
+ else
+ {
+ aStream.WriteInt32L( 0 );
+ }
+ }
+
+
+
+// -----------------------------------------------------------------------------
+// DoIntrBufL()
+// -----------------------------------------------------------------------------
+//
+template< class TBufType, class TPtrType >
+inline void DoIntrBufL( TBufType*& aBufPtr, TPtrType aPtr, RReadStream& aStream )
+ {
+ TBufType* buffer = NULL;
+
+ TInt length = aStream.ReadInt32L();
+ if( length != 0 )
+ {
+ buffer = TBufType::NewLC( length );
+ aPtr.Set( buffer->Des() );
+ aStream.ReadL( aPtr, length );
+ CleanupStack::Pop(); //buffer
+ }
+
+ delete aBufPtr;
+ aBufPtr = buffer;
+ }
+
+
+// End of File
+