author | jjkang |
Fri, 11 Jun 2010 15:22:09 +0800 | |
changeset 2 | 806186ab5e14 |
parent 1 | 0a7b44b10206 |
permissions | -rw-r--r-- |
1
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
1 |
// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
2 |
// All rights reserved. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
3 |
// This component and the accompanying materials are made available |
2 | 4 |
// under the terms of the License "Eclipse Public License v1.0" |
1
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
5 |
// which accompanies this distribution, and is available |
2 | 6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html". |
1
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
7 |
// |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
8 |
// Initial Contributors: |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
9 |
// Nokia Corporation - initial contribution. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
10 |
// |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
11 |
// Contributors: |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
12 |
// |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
13 |
// Description: |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
14 |
// e32\euser\cbase\ub_circ.cpp |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
15 |
// |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
16 |
// |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
17 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
18 |
#include "ub_std.h" |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
19 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
20 |
EXPORT_C CCirBufBase::CCirBufBase(TInt aSize) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
21 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
22 |
Constructor taking the size of an object within the buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
23 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
24 |
@param aSize The size of an object in the buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
25 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
26 |
@panic E32USER-CBase 72, if aSize is zero or negative. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
27 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
28 |
: iSize(aSize) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
29 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
30 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
31 |
__ASSERT_ALWAYS(iSize>0,Panic(ECircItemSizeNegativeOrZero)); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
32 |
// iCount=0; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
33 |
// iLength=0; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
34 |
// iPtr=NULL; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
35 |
// iPtrE=NULL; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
36 |
// iHead=NULL; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
37 |
// iTail=NULL; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
38 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
39 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
40 |
EXPORT_C CCirBufBase::~CCirBufBase() |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
41 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
42 |
Destructor. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
43 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
44 |
This frees the memory allocated to the buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
45 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
46 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
47 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
48 |
User::Free(iPtr); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
49 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
50 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
51 |
EXPORT_C void CCirBufBase::SetLengthL(TInt aLength) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
52 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
53 |
Sets the maximum capacity of this circular buffer, and resets all |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
54 |
of the buffer pointers. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
55 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
56 |
The capacity is the maximum number of elements that the buffer can hold. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
57 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
58 |
The buffer itself is allocated as a result of a call to this function. If |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
59 |
the function has previously been called, then any existing buffer is freed and |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
60 |
any information in it is lost. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
61 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
62 |
Notes: |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
63 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
64 |
1. This function must be called before attempting to add any objects to |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
65 |
the buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
66 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
67 |
2. The function can leave if there is insufficient memory available to |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
68 |
allocate the buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
69 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
70 |
@param aLength The maximum capacity of the circular buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
71 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
72 |
@panic E32USER-CBase 73, if aLength is zero or negative. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
73 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
74 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
75 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
76 |
__ASSERT_ALWAYS(aLength>0,Panic(ECircSetLengthNegativeOrZero)); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
77 |
iPtr=(TUint8 *)User::ReAllocL(iPtr,aLength*iSize); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
78 |
iPtrE=iPtr+(aLength*iSize); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
79 |
iHead=iTail=iPtr; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
80 |
iLength=aLength; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
81 |
iCount=0; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
82 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
83 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
84 |
EXPORT_C void CCirBufBase::Reset() |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
85 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
86 |
Empties the buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
87 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
88 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
89 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
90 |
iHead=iTail=iPtr; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
91 |
iCount=0; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
92 |
#if defined(_DEBUG) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
93 |
Mem::FillZ(iPtr,iLength*iSize); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
94 |
#endif |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
95 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
96 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
97 |
EXPORT_C TInt CCirBufBase::DoAdd(const TUint8 *aPtr) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
98 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
99 |
Implementation function for CCirBuf::Add(const T*) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
100 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
101 |
Adds a single object to the circular buffer, but only if there is |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
102 |
space available. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
103 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
104 |
@param aPtr A pointer to the object to be added. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
105 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
106 |
@return 1 if the object is successfully added. 0 if the object cannot be added |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
107 |
because the circular buffer is full. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
108 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
109 |
@panic E32USER-CBase 74, if a call to CCirBufBase::SetLengthL() has not been |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
110 |
made before calling this function. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
111 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
112 |
@see CCirBuf::Add |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
113 |
@see CCirBufBase::SetLengthL |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
114 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
115 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
116 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
117 |
__ASSERT_ALWAYS(iPtr!=NULL,Panic(ECircNoBufferAllocated)); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
118 |
if (iCount>=iLength) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
119 |
return(KErrNone); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
120 |
Mem::Copy(iHead,aPtr,iSize); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
121 |
iCount++; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
122 |
iHead+=iSize; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
123 |
if (iHead>=iPtrE) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
124 |
iHead=iPtr; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
125 |
return(1); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
126 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
127 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
128 |
EXPORT_C TInt CCirBufBase::DoAdd(const TUint8 *aPtr,TInt aCount) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
129 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
130 |
Implementation function for CCirBuf::Add(const T*,TInt) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
131 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
132 |
Adds multiple objects to the circular buffer, but only if there is |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
133 |
space available. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
134 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
135 |
@param aPtr A pointer to a set of contiguous objects to be added. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
136 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
137 |
@param aCount The number of objects to be added. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
138 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
139 |
@return The number of objects successfully added to the buffer. This value |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
140 |
may be less than the number requested and can range from 0 to aCount. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
141 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
142 |
@panic E32USER-CBase 74, if a call to CCirBufBase::SetLengthL() has not been |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
143 |
made before calling this function. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
144 |
@panic E32USER-CBase 75, if aCount is not a positive value. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
145 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
146 |
@see CCirBuf::Add |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
147 |
@see CCirBufBase::SetLengthL |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
148 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
149 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
150 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
151 |
__ASSERT_ALWAYS(iPtr!=NULL,Panic(ECircNoBufferAllocated)); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
152 |
__ASSERT_ALWAYS(aCount>0,Panic(ECircAddCountNegative)); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
153 |
TInt rem=iLength-iCount; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
154 |
if (rem==0) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
155 |
return(0); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
156 |
aCount=Min(aCount,rem); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
157 |
rem=(iPtrE-iHead)/iSize; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
158 |
if (aCount<=rem) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
159 |
iHead=Mem::Copy(iHead,aPtr,aCount*iSize); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
160 |
else |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
161 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
162 |
TInt len=(rem*iSize); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
163 |
Mem::Copy(iHead,aPtr,len); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
164 |
iHead=Mem::Copy(iPtr,aPtr+len,(aCount*iSize)-len); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
165 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
166 |
if (iHead>=iPtrE) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
167 |
iHead=iPtr; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
168 |
iCount+=aCount; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
169 |
return(aCount); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
170 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
171 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
172 |
EXPORT_C TInt CCirBufBase::DoRemove(TUint8 *aPtr) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
173 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
174 |
Implementation function for CCirBuf::Remove(T*) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
175 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
176 |
Removes a single object from the circular buffer, but only if there are |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
177 |
objects in the buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
178 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
179 |
A binary copy of the object is made to aPtr. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
180 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
181 |
@param aPtr A pointer to a location supplied by the caller. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
182 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
183 |
@return 1 if an object is successfully removed. 0 if an object cannot be removed |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
184 |
because the circular buffer is empty. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
185 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
186 |
@see CCirBuf::Remove |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
187 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
188 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
189 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
190 |
if (iCount==0) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
191 |
return(0); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
192 |
Mem::Copy(aPtr,iTail,iSize); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
193 |
iTail+=iSize; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
194 |
if (iTail>=iPtrE) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
195 |
iTail=iPtr; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
196 |
iCount--; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
197 |
return(1); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
198 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
199 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
200 |
EXPORT_C TInt CCirBufBase::DoRemove(TUint8 *aPtr,TInt aCount) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
201 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
202 |
Implementation function for CCirBuf::Remove(T*,TInt) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
203 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
204 |
Attempts to remove aCount objects from the circular buffer, but only if there |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
205 |
are objects in the buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
206 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
207 |
A binary copy of the objects is made to aPtr. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
208 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
209 |
@param aPtr A pointer to a location supplied by the caller capable of |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
210 |
holding aCount objects. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
211 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
212 |
@param aCount The number of objects to be removed from the circular buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
213 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
214 |
@return The number of objects successfully removed from the buffer. This value |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
215 |
may be less than the number requested, and can range from 0 to aCount. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
216 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
217 |
@panic E32USER-CBase 76, if aCount is not a positive value. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
218 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
219 |
@see CCirBuf::Remove |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
220 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
221 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
222 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
223 |
if (iCount==0) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
224 |
return(0); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
225 |
__ASSERT_ALWAYS(aCount>0,Panic(ECircRemoveCountNegative)); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
226 |
aCount=Min(aCount,iCount); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
227 |
TInt rem=(iPtrE-iTail)/iSize; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
228 |
TInt len=rem*iSize; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
229 |
if (aCount<=rem) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
230 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
231 |
Mem::Copy(aPtr,iTail,aCount*iSize); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
232 |
iTail+=aCount*iSize; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
233 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
234 |
else |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
235 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
236 |
Mem::Copy(aPtr,iTail,len); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
237 |
rem=(aCount*iSize)-len; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
238 |
Mem::Copy(aPtr+len,iPtr,rem); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
239 |
iTail=iPtr+rem; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
240 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
241 |
if (iTail>=iPtrE) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
242 |
iTail=iPtr; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
243 |
iCount-=aCount; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
244 |
return(aCount); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
245 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
246 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
247 |
EXPORT_C CCirBuffer::CCirBuffer() |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
248 |
: CCirBuf<TUint8>() |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
249 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
250 |
Default C++ constructor. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
251 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
252 |
{} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
253 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
254 |
EXPORT_C CCirBuffer::~CCirBuffer() |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
255 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
256 |
Destructor |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
257 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
258 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
259 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
260 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
261 |
EXPORT_C TInt CCirBuffer::Get() |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
262 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
263 |
Removes an unsigned 8-bit integer value from the circular buffer and returns |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
264 |
its value. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
265 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
266 |
The returned TUint8 is promoted to a TInt to allow for negative error codes, |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
267 |
e.g. KErrGeneral. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
268 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
269 |
@return The unsigned 8-bit integer value removed from the circular buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
270 |
KErrGeneral, if the circular buffer is empty. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
271 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
272 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
273 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
274 |
if (iCount==0) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
275 |
return(KErrGeneral); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
276 |
TUint8 *p=iTail++; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
277 |
if (iTail>=iPtrE) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
278 |
iTail=iPtr; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
279 |
iCount--; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
280 |
return(*p); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
281 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
282 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
283 |
EXPORT_C TInt CCirBuffer::Put(TInt aVal) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
284 |
/** |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
285 |
Adds an unsigned 8-bit integer value in the range 0 to 255 to the circular buffer. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
286 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
287 |
If the specified integer is outside the range 0 to 255, |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
288 |
this method discards all but the lowest 8 bits and treats those |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
289 |
as the unsigned integer to store. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
290 |
For example, specifying -2 (or 510, or -258, etc) will result in 254 being stored, |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
291 |
and therefore in 254 being returned by the Get() method |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
292 |
(and not the number passed to Put()). |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
293 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
294 |
@param aVal The unsigned 8-bit integer value to be added. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
295 |
@return KErrNone, if the unsigned integer is successfully added. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
296 |
KErrGeneral, if the unsigned integer cannnot be added because |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
297 |
the circular buffer is full. |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
298 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
299 |
@see CCirBuffer::Get() |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
300 |
*/ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
301 |
{ |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
302 |
|
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
303 |
__ASSERT_ALWAYS(iPtr!=NULL,Panic(ECircNoBufferAllocated)); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
304 |
if (iCount>=iLength) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
305 |
return(KErrGeneral); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
306 |
*iHead++=(TUint8)aVal; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
307 |
if (iHead>=iPtrE) |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
308 |
iHead=iPtr; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
309 |
iCount++; |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
310 |
return(KErrNone); |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
311 |
} |
0a7b44b10206
Catch up of Symbian tools for @1627812
Pat Downey <patrick.downey@nokia.com>
parents:
diff
changeset
|
312 |