diff src/main/symbian/EKA2/vectorbuffer.cpp @ 3975:e85e65aec22f SDL-1.2

Added S60 port.
author Ryan C. Gordon <icculus@icculus.org>
date Sun, 24 Jun 2007 18:26:35 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/symbian/EKA2/vectorbuffer.cpp	Sun Jun 24 18:26:35 2007 +0000
@@ -0,0 +1,62 @@
+/*
+    vectorbuffer.cpp
+    yet another circle buffer
+
+    Markus Mertama
+*/
+
+#include"vectorbuffer.h"
+
+
+
+void VectorPanic(TInt aErr, TInt aLine)
+    {
+    TBuf<64> b;
+    b.Format(_L("vector buffer at % d "), aLine);
+    User::Panic(b, aErr);
+    }
+
+void TNodeBuffer::TNode::Terminator(TNodeBuffer::TNode* aNode)
+    {
+    Mem::Copy(iSucc, &aNode, sizeof(TNode*));
+    }
+
+TInt TNodeBuffer::TNode::Size() const
+    {
+    return reinterpret_cast<const TUint8*>(iSucc) - Ptr();
+    }
+
+const TUint8*  TNodeBuffer::TNode::Ptr() const
+    {
+    return reinterpret_cast<const TUint8*>(this) + sizeof(TNode);
+    }
+
+TNodeBuffer::TNode*  TNodeBuffer::TNode::Empty(TUint8* aBuffer)
+    {
+    TNode* node = reinterpret_cast<TNode*>(aBuffer);
+    node->iSucc = node + 1;
+    return node;
+    }
+
+ TNodeBuffer::TNode*  TNodeBuffer::TNode::New(TNode* aPred, const TDesC8& aData)
+    {
+    TNode* node = aPred->Size() == 0 ? aPred : aPred->iSucc;
+
+    
+    TUint8* start = reinterpret_cast<TUint8*>(node) + sizeof(TNode);
+    node->iSucc = reinterpret_cast<TNode*>(start + aData.Size());
+    node->iSucc->iSucc = NULL; //terminator
+
+    __ASSERT_DEBUG(node->Size() == aData.Size(), VECPANIC(KErrCorrupt));
+
+    Mem::Copy(start, aData.Ptr(), aData.Size());
+    return node;
+    }
+    
+
+
+
+
+
+
+    
\ No newline at end of file