![Symbian Developer Library](../../../../a_stock/images/mainheading.gif)
![]() |
![]() |
|
class CBufSeg : public CBufBase;
Provides a segmented dynamic buffer.
This class should be used when the object has a long life-time and an unpredictable number of insertions, or there is concern about the performance of insertion and deletion operations into large buffers.
This class is an implementation of the abstract buffer interface provided by CBufBase
and uses doubly-linked list of heap cells to contain the data; each cell containing a segment of the buffer.
Its (private) data members include an anchor for the doubly-linked list, and also a reference to the buffer position used by the last operation. This reference acts as a cache; if the next operation uses a similar buffer position, then calculation of the pointer corresponding to its buffer position is much faster.
CBase
-
Base class for all classes to be instantiated on the heap.
CBufBase
-
Defines the interface for dynamic buffers.
CBufSeg
-
Provides a segmented dynamic buffer.
Defined in CBufSeg
:
BackPtr(TInt)
Gets a pointer descriptor to represent the data starting at the beginning of the...CBufSeg(TInt)
Compress()
Compresses the buffer so as to occupy minimal space.Delete(TInt,TInt)
Deletes data from the buffer.DoInsertL(TInt,const TAny *,TInt)
NewL(TInt)
Allocates and constructs a segmented buffer.Ptr(TInt)
Gets a pointer descriptor to represent the data starting at the specified data b...~CBufSeg()
Destructor.Inherited from CBase
:
Delete(CBase *)
Deletes the specified object.Extension_(TUint,TAny *&,TAny *)
Extension function operator new(TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TAny *)
Initialises the object to binary zeroes.operator new(TUint,TLeave)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TLeave,TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TUint)
Allocates the object from the heap and then initialises its contents to binary z...Inherited from CBufBase
:
ExpandL(TInt,TInt)
Inserts an uninitialised region into the buffer.InsertL(TInt,const TAny *,TInt)
Inserts bytes of data from the specified address into the buffer.InsertL(TInt,const TDesC8 &)
Inserts data into the buffer.InsertL(TInt,const TDesC8 &,TInt)
Inserts the specified number of bytes of data from a descriptor into the buffer.Read(TInt,TAny *,TInt)const
Reads the specified number of bytes of data from the buffer into a specified add...Read(TInt,TDes8 &)const
Reads data from the buffer into a descriptor.Read(TInt,TDes8 &,TInt)const
Reads the specified number of bytes of data from the buffer into a descriptor.Reset()
Deletes all data in the buffer.ResizeL(TInt)
Re-sizes the buffer to the specified size.Size()const
Gets the number of data bytes in the buffer.Write(TInt,const TAny *,TInt)
Writes the specified number of bytes of data from the specified address to the b...Write(TInt,const TDesC8 &)
Writes data from a descriptor to the buffer.Write(TInt,const TDesC8 &,TInt)
Writes the specified number of bytes of data from a descriptor to the buffer.iExpandSize
iSize
IMPORT_C ~CBufSeg();
Destructor.
Frees all resources owned by the object, prior to its destruction.
Specifically, it frees all segments allocated to the buffer.
IMPORT_C static CBufSeg* NewL(TInt anExpandSize);
Allocates and constructs a segmented buffer.
If there is insufficient memory available to allocate the segmented buffer, the function leaves.
|
|
|
IMPORT_C virtual void Compress();
Compresses the buffer so as to occupy minimal space.
Fills any space in each segment of the buffer by moving contents from the next segment to the current one. Where this activity results in empty segments, it frees the memory associated with these segments.
CBufBase::Compress()
Compresses the buffer so as to occupy minimal space.IMPORT_C virtual void Delete(TInt aPos, TInt aLength);
Deletes data from the buffer.
During deletion, shuffling is minimised by deleting intermediate segments and allowing segments to contain less data than the buffer granularity.
|
CBufBase::Delete(TInt,TInt)
Deletes data from the buffer.IMPORT_C virtual TPtr8 Ptr(TInt aPos);
Gets a pointer descriptor to represent the data starting at the specified data byte through to the end of the contiguous region containing that byte.
The time needed for calculation of the pointer depends on how many segments there are in the buffer, and how near the target segment is to the segment which was last used in the buffer.
|
|
IMPORT_C virtual TPtr8 BackPtr(TInt aPos);
Gets a pointer descriptor to represent the data starting at the beginning of the contiguous region containing that byte through to the byte immediately preceding the specified byte.
The descriptor always points to the beginning of the segment containing the specified byte. The time needed for calculation of the pointer depends on how many segments there are in the buffer, and how near the target segment is to the segment which was last used in the buffer.
|
|
CBufBase::BackPtr(TInt)
Gets a pointer descriptor to represent data from just before the specified data ...