svgtopt/nvgdecoder/inc/NVGIconData.inl
changeset 46 88edb906c587
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/nvgdecoder/inc/NVGIconData.inl	Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,227 @@
+/*
+* Copyright (c) 2003 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:  NVG Decoder header file
+*
+*/
+
+#ifndef NVGICONDATA_INL_
+#define NVGICONDATA_INL_
+
+inline void CNVGIconData::CheckOutOfBoundL(TInt aLength)
+    {
+    if (iTotalRead + aLength > iDataLength ||
+        iTotalRead + aLength < 0)
+        {
+        User::Leave(KErrEof);
+        }
+    }
+
+inline TInt CNVGIconData::ReadPos()
+    {
+    return iTotalRead;
+    }
+
+inline TInt CNVGIconData::DataLength()
+    {
+    return iDataLength;
+    }
+
+
+inline const HBufC8 * CNVGIconData::GetNVGData()
+    {
+    return iNVGData;
+    }
+
+inline TBool CNVGIconData::EOF()
+    {
+    return (iTotalRead >= iDataLength);
+    }
+
+inline TInt CNVGIconData::EncodeInt8(TUint8 aVal)
+    {
+    return EncodeData(&aVal, sizeof(aVal));
+    }
+
+inline TInt CNVGIconData::EncodeInt16(TUint16 aVal)
+    {
+    return EncodeData(&aVal, sizeof(aVal));
+    }
+
+inline TInt CNVGIconData::EncodeInt32(TUint32 aVal)
+    {
+    return EncodeData(&aVal, sizeof(aVal));
+    }
+
+inline TInt CNVGIconData::EncodeReal32(TReal32 aVal)
+    {
+    return EncodeData(&aVal, sizeof(aVal));
+    }
+
+inline TInt CNVGIconData::EncodeReal64(TReal64 aVal)
+    {
+    return EncodeData(&aVal, sizeof(aVal));
+    }
+
+inline void CNVGIconData::EncodeInt8L(TUint8 aVal)
+    {
+    return EncodeDataL(&aVal, sizeof(aVal));
+    }
+
+inline void CNVGIconData::EncodeInt16L(TUint16 aVal)
+    {
+    return EncodeDataL(&aVal, sizeof(aVal));
+    }
+
+inline void CNVGIconData::EncodeInt32L(TUint32 aVal)
+    {
+    return EncodeDataL(&aVal, sizeof(aVal));
+    }
+
+inline void CNVGIconData::EncodeReal32L(TReal32 aVal)
+    {
+    return EncodeDataL(&aVal, sizeof(aVal));
+    }
+
+inline void CNVGIconData::EncodeReal64L(TReal64 aVal)
+    {
+    return EncodeDataL(&aVal, sizeof(aVal));
+    }
+
+inline const HBufC8 * CNVGIconData::GetNVGData() const
+    {
+    return iNVGData;
+    }
+
+inline void CNVGIconData::Set(const TDesC8& aBuf)
+    {
+    iNVGDataPtr.Set((TUint8 *)aBuf.Ptr(), aBuf.Length(), aBuf.Length());
+    }
+
+inline void CNVGIconData::Set(TUint8 * aBuf, TInt aLength)
+    {
+    iNVGDataPtr.Set(aBuf, aLength, aLength);
+    }
+
+inline TDereferencer::TDereferencer(TUint8 * aBuf, TInt aLength)
+    : iTotalRead(0),
+      iDataLength(aLength),
+      iReadStream(aBuf)
+    {
+    
+    }
+
+inline TDereferencer::TDereferencer(const TDesC8& aBuf)
+    : iTotalRead(0),
+      iDataLength(aBuf.Length()),
+      iReadStream((unsigned char *)aBuf.Ptr())
+    {        
+    }
+
+inline void TDereferencer::CheckOutOfBoundL(TInt aLength)
+    {
+    if (iTotalRead + aLength > iDataLength ||
+        iTotalRead + aLength < 0)
+        {
+        User::Leave(KErrEof);
+        }
+    }
+
+inline void TDereferencer::SkipL(TInt aLength)
+    {
+    CheckOutOfBoundL(aLength);
+    iTotalRead += aLength;
+    }
+
+#define DEREF_PTR(TOTYPE, Offset, Size) do {\
+                                CheckOutOfBoundL(Offset + Size); \
+                                return * (TOTYPE *)&iReadStream[iTotalRead + Offset];\
+                           } while (0)
+
+inline TReal64 TDereferencer::DerefReal64L(TInt aAt)
+    {
+    DEREF_PTR(TReal64, aAt, sizeof(TReal64));
+    }
+
+inline TReal32 TDereferencer::DerefReal32L(TInt aAt)
+    {
+    DEREF_PTR(TReal32, aAt, sizeof(TReal32));
+    }
+
+inline TUint8 * TDereferencer::DerefInt8ArrayL(TInt aLength, TInt aAt)
+    {
+    CheckOutOfBoundL(aAt + aLength);
+    return (TUint8 *)&iReadStream[iTotalRead + aAt];
+    }
+
+inline void TDereferencer::IsSafeL(TInt aLength, TInt aAt)
+    {
+    CheckOutOfBoundL(aAt + aLength);
+    }
+
+inline TInt8 TDereferencer::DerefInt8L(TInt aAt)
+    {
+    DEREF_PTR(TInt8, aAt, sizeof(TInt8));
+    }
+
+inline TInt32 TDereferencer::DerefInt32L(TInt aAt)
+    {
+    DEREF_PTR(TInt32, aAt, sizeof(TInt32));
+    }
+
+inline TInt16 TDereferencer::DerefInt16L(TInt aAt)
+    {
+    DEREF_PTR(TInt16, aAt, sizeof(TInt16));
+    }
+
+inline TDereferencer::operator TReal64()
+    {
+    return DerefReal64L();
+    }
+
+inline TDereferencer::operator TReal32()
+    {
+    return DerefReal32L();    
+    }
+
+inline TDereferencer::operator TInt8()
+    {
+    return DerefInt8L();    
+    }
+
+inline TDereferencer::operator TInt32()
+    {
+    return DerefInt32L();    
+    }
+
+inline TDereferencer::operator TInt16()
+    {
+    return DerefInt16L();    
+    }
+
+inline TPtr8 TDereferencer::GetPtr()
+    {
+    return TPtr8(iReadStream, iDataLength, iDataLength);
+    }
+
+inline TInt TDereferencer::GetLength()
+    {
+    return iDataLength;
+    }
+
+inline TInt TDereferencer::GetReadingPos()
+    {
+    return iTotalRead;
+    }
+
+#endif