vectorbuffer.cpp

来自「gnash 在pc和嵌入式下开发需要的源码」· C++ 代码 · 共 62 行

CPP
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;    }        

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?