#include <e32base.h>
Link against: euser_v5.lib
class CCirBufBase : public CBase |
Protected Attributes | |
---|---|
TInt | iCount |
TUint8 * | iHead |
TInt | iLength |
TUint8 * | iPtr |
TUint8 * | iPtrE |
TInt | iSize |
TUint8 * | iTail |
Public Member Functions | |
---|---|
~CCirBufBase() | |
TInt | Count() |
TInt | Length() |
IMPORT_C void | Reset() |
IMPORT_C void | SetLengthL(TInt) |
Protected Member Functions | |
---|---|
CCirBufBase(TInt) | |
IMPORT_C TInt | DoAdd(const TUint8 *) |
IMPORT_C TInt | DoAdd(const TUint8 *, TInt) |
IMPORT_C TInt | DoRemove(TUint8 *) |
IMPORT_C TInt | DoRemove(TUint8 *, TInt) |
Base class for circular buffers.
The class is part of the implementation of circular buffers and is never instantiated.
The class provides member functions that form part of the interface.
TInt | iCount | [protected] |
TUint8 * | iHead | [protected] |
TInt | iLength | [protected] |
TUint8 * | iPtr | [protected] |
TUint8 * | iPtrE | [protected] |
TInt | iSize | [protected] |
TUint8 * | iTail | [protected] |
IMPORT_C | CCirBufBase | ( | TInt | aSize | ) | [protected] |
Constructor taking the size of an object within the buffer.
Parameters | |
---|---|
aSize | The size of an object in the buffer. |
Panic Codes | |
---|---|
E32USER-CBase | 72, if aSize is zero or negative. |
TInt | Count | ( | ) | const [inline] |
Gets the current number of objects in this circular buffer.
Implementation function for CCirBuf::Add(const T*)
Adds a single object to the circular buffer, but only if there is space available.
See also: CCirBuf::Add CCirBufBase::SetLengthL
Parameters | |
---|---|
aPtr | A pointer to the object to be added. |
Panic Codes | |
---|---|
E32USER-CBase | 74, if a call to |
Implementation function for CCirBuf::Add(const T*,TInt)
Adds multiple objects to the circular buffer, but only if there is space available.
See also: CCirBuf::Add CCirBufBase::SetLengthL
Parameters | |
---|---|
aPtr | A pointer to a set of contiguous objects to be added. |
aCount | The number of objects to be added. |
Panic Codes | |
---|---|
E32USER-CBase | 74, if a call to |
E32USER-CBase | 75, if aCount is not a positive value. |
Implementation function for CCirBuf::Remove(T*)
Removes a single object from the circular buffer, but only if there are objects in the buffer.
A binary copy of the object is made to aPtr.
See also: CCirBuf::Remove
Parameters | |
---|---|
aPtr | A pointer to a location supplied by the caller. |
Implementation function for CCirBuf::Remove(T*,TInt)
Attempts to remove aCount objects from the circular buffer, but only if there are objects in the buffer.
A binary copy of the objects is made to aPtr.
See also: CCirBuf::Remove
Parameters | |
---|---|
aPtr | A pointer to a location supplied by the caller capable of holding aCount objects. |
aCount | The number of objects to be removed from the circular buffer. |
Panic Codes | |
---|---|
E32USER-CBase | 76, if aCount is not a positive value. |
TInt | Length | ( | ) | const [inline] |
Gets the maximum capacity of this circular buffer.
The capacity is the maximum number of elements that the buffer can hold.
Use SetLengthL() to change the capacity of the circular buffer.
See also: CCirBufBase::SetLengthL
IMPORT_C void | SetLengthL | ( | TInt | aLength | ) |
Sets the maximum capacity of this circular buffer, and resets all of the buffer pointers.
The capacity is the maximum number of elements that the buffer can hold.
The buffer itself is allocated as a result of a call to this function. If the function has previously been called, then any existing buffer is freed and any information in it is lost.
Notes:
1. This function must be called before attempting to add any objects to the buffer.
2. The function can leave if there is insufficient memory available to allocate the buffer.
Parameters | |
---|---|
aLength | The maximum capacity of the circular buffer. |
Panic Codes | |
---|---|
E32USER-CBase | 73, if aLength is zero or negative. |