diff -r 000000000000 -r bde4ae8d615e os/persistentdata/persistentstorage/sql/SRC/Common/SqlBufFlat.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/persistentdata/persistentstorage/sql/SRC/Common/SqlBufFlat.inl Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,104 @@ +// Copyright (c) 2006-2009 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: +// // RSqlBufFlat class // +// +// + +/** + + @return Flat buffer elements count +*/ +inline TInt RSqlBufFlat::Count() const + { + SQLFLATBUF_INVARIANT(); + return iBuf->iCount; + } + +/** +@return Flat buffer size (this is not the max size. It refers only to the used part of the flat buffer) +*/ +inline TInt RSqlBufFlat::Size() const + { + SQLFLATBUF_INVARIANT(); + return iBuf->iSize; + } + +/** +@return Flat buffer max size +*/ +inline TInt RSqlBufFlat::MaxSize() const + { + SQLFLATBUF_INVARIANT(); + return iMaxSize; + } + +/** +@return A pointer to the beginning of the flat buffer header +*/ +inline RSqlBufFlat::TCell* RSqlBufFlat::Header() + { + return reinterpret_cast (iBuf + 1); + } + +/** +@return A const pointer to the beginning of the flat buffer header +*/ +inline const RSqlBufFlat::TCell* RSqlBufFlat::Header() const + { + return reinterpret_cast (iBuf + 1); + } + +/** +@return The avaliable space in the flat buffer +*/ +inline TInt RSqlBufFlat::Available() const + { + return iMaxSize - iBuf->iSize; + } + +/** +This function returns a const reference to a descriptor object pointing to the internal buffer. +BufDes() guarantees to return a const descriptor, whose lifetime is the same as the flat buffer lifetime. +(useful when making asynchronous IPC calls) + +@return A reference to a descriptor object pointing to the internal buffer. +*/ +inline const TDesC8& RSqlBufFlat::BufDes() const + { + SQLFLATBUF_INVARIANT(); + iBufPtrC.Set(reinterpret_cast (iBuf), iBuf->iSize); + return iBufPtrC; + } + +/** +This function returns a modifiable reference to a descriptor object pointing to the internal buffer. +BufPtr() guarantees to return a modifiable descriptor, whose lifetime is the same as the flat buffer lifetime. +(useful when making asynchronous IPC calls) + +@return A reference to a modifiable descriptor object pointing to the internal buffer. +*/ +inline TPtr8& RSqlBufFlat::BufPtr() + { + SQLFLATBUF_INVARIANT(); + iBufPtr.Set(reinterpret_cast (iBuf), iBuf->iSize, iMaxSize); + return iBufPtr; + } + +/** +@return The minimal allowed buffer size: sizeof(TBufFlat) + size of the header +*/ +inline TInt RSqlBufFlat::SysDataSize() const + { + return iBuf->iHeaderSize + sizeof(RSqlBufFlat::TBufFlat); + }