#include <s32buf.h>
class TStreamBuf : public MStreamBuf |
Protected Member Type Definitions | |
---|---|
typedef | TInt TArea |
Protected Member Functions | |
---|---|
TStreamBuf() | |
IMPORT_C TInt | Avail(TArea) |
TInt | Avail(TRead) |
TInt | Avail(TWrite) |
virtual IMPORT_C TInt | DoReadL(TAny *, TInt) |
virtual IMPORT_C TStreamTransfer | DoReadL(MStreamInput &, TStreamTransfer) |
virtual IMPORT_C void | DoWriteL(const TAny *, TInt) |
virtual IMPORT_C TStreamTransfer | DoWriteL(MStreamOutput &, TStreamTransfer) |
IMPORT_C TUint8 * | End(TArea) |
TUint8 * | End(TRead) |
TUint8 * | End(TWrite) |
IMPORT_C TUint8 * | Ptr(TArea) |
TUint8 * | Ptr(TRead) |
TUint8 * | Ptr(TWrite) |
IMPORT_C void | SetBuf(TArea, TUint8 *, TUint8 *) |
void | SetBuf(TRead, TUint8 *, TUint8 *) |
void | SetBuf(TWrite, TUint8 *, TUint8 *) |
IMPORT_C void | SetEnd(TArea, TUint8 *) |
void | SetEnd(TRead, TUint8 *) |
void | SetEnd(TWrite, TUint8 *) |
IMPORT_C void | SetPtr(TArea, TUint8 *) |
void | SetPtr(TRead, TUint8 *) |
void | SetPtr(TWrite, TUint8 *) |
Inherited Enumerations | |
---|---|
MStreamBuf:TRead | |
MStreamBuf:TWrite |
Inherited Type Definitions | |
---|---|
MStreamBuf::TMark |
Adds buffering capabilities to a stream buffer
The class provides pointers to mark out the current read and write areas within the intermediate buffer. The class also defines the pure virtual functions UnderflowL() and OverflowL() which must be provided by a derived class.
Streams which have buffering capabilities derive from this class, otherwise they derive from MStreamBuf.
Note that the class does not provide the buffer; this is left to the class derived from it. For example, the memory buffer classes use the memory area directly, the file buffer class allocate a heap cell to use as a buffer.
See also: UnderflowL() OverflowL()
typedef TInt | TArea | [protected] |
Used to identify the type of area within an intermediate buffer.
The type is used by functions of this class that set or get pointers into the intermediate buffer.
The type uses the ERead and EWrite enumeration values, as bit flags, to identify the read and write areas respectively.
ERead is an MStreamBuf::TRead enumerator. EWrite is an MStreamBuf::EWrite enumerator.
See also: MStreamBuf::TRead MStreamBuf::TWrite
IMPORT_C | TStreamBuf | ( | ) | [protected] |
Sets the pointers that mark out the read and write areas within the intermediate buffer to null.
Gets the number of bytes available in the read or write area within the intermediate buffer.
Parameter | Description |
---|---|
anArea | The area within the intermediate buffer for which the number of available bytes is to be fetched. This can be either the read area or the write area, as indicated by the ERead and EWrite bits. Only one of these can be set, otherwise the function raises a STORE-Stream 17 panic. |
Returns: The number of bytes available.
Gets the number of bytes available in the read area within the intermediate buffer.
See also: MStreamBuf::TRead
Returns: The number of bytes available.
Gets the number of bytes available in the write area within the intermediate buffer.
See also: MStreamBuf::TWrite
Returns: The number of bytes available.
Reimplemented from MStreamBuf::DoReadL(TAny *,TInt)
Reads data from the intermediate buffer into the specified memory location.
The function calls the virtual function UnderfLowL() to give concrete implementations the chance to refill the intermediate buffer, and satisfy the caller's requirements.
This implementation overrides the one supplied by the base class MStreamBuf, and is called by, MStreamBuf::ReadL(TAny*,TInt).
See also: MStreamBuf::ReadL() MStreamBuf::DoReadL()
Parameter | Description |
---|---|
aPtr | A pointer to the target memory location for the data read from the intermediate buffer. |
aMaxLength | The maximum number of bytes to be read. |
Returns: The number of bytes read. This may be less than the amount requested.
IMPORT_C TStreamTransfer | DoReadL | ( | MStreamInput & | anInput, |
TStreamTransfer | aTransfer | |||
) | [protected, virtual] |
Reimplemented from MStreamBuf::DoReadL(MStreamInput &,TStreamTransfer)
Reads data from the intermediate buffer and, if necessary, any remaining data from the stream to the specified target stream input object.
It is called by ReadL(MStreamInput&,TStreamTransfer).
The intermediate buffer is emptied first by calling the target stream input's PushL() function, which performs the read from intermediate buffer operation. Any remaining data is then read from the stream by calling the target stream object's ReadFromL() function, which performs the read from stream operation.
This implementation is called for streams that have buffering capabilities and are derived from this class.
Parameter | Description |
---|---|
anInput | The target stream input object. |
aTransfer | A stream transfer object defining the amount of data available to be written. |
Returns: The amount of data that was not consumed.
Reimplemented from MStreamBuf::DoWriteL(const TAny *,TInt)
Writes data from the specified memory location into the intermediate buffer.
The function calls the virtual function OverfLowL() to give concrete implementations the chance to forward the intermediate buffer content to its destination.
This implementation overrides the one supplied by the base class MStreamBuf, and is called by MStreamBuf::WriteL(const TAny*,TInt).
See also: MStreamBuf::WriteL() MStreamBuf::DoWriteL()
Parameter | Description |
---|---|
aPtr | A pointer to the source memory location for the data to be written to the intermediate buffer. |
aLength | The number of bytes to be written. |
Returns: The number of bytes written.
IMPORT_C TStreamTransfer | DoWriteL | ( | MStreamOutput & | anOutput, |
TStreamTransfer | aTransfer | |||
) | [protected, virtual] |
Reimplemented from MStreamBuf::DoWriteL(MStreamOutput &,TStreamTransfer)
Gets the current end point of the read or write area within the intermediate buffer.
An end point is always the first byte beyond the end of an area.
Parameter | Description |
---|---|
anArea | The area within the intermediate buffer for which the end point is to be fetched. This can be either the read area or the write area, as indicated by the ERead and EWrite bits. Only one of these can be set, otherwise the function raises a STORE-Stream 17 panic. |
Returns: The end point.
Gets the current end point of the read area within the intermediate buffer.
An end point is always the first byte beyond the end of an area.
See also: MStreamBuf::TRead
Returns: The end point.
Gets the current end point of the write area within the intermediate buffer.
An end point is always the first byte beyond the end of an area.
See also: MStreamBuf::TWrite
Returns: The end point.
Gets the current start point of the read or write area within the intermediate buffer.
See also: MStreamBuf::TRead MStreamBuf::TWrite
Parameter | Description |
---|---|
anArea | The area within the intermediate buffer for which the start point is to be fetched. This can be either the read area or the write area, as indicated by the ERead and EWrite bits. Only one of these can be set, otherwise the function raises a STORE-Stream 17 panic. |
Returns: The start point.
Gets the current start point of the read area within the intermediate buffer.
See also: MStreamBuf::TRead
Returns: The start point.
Gets the current start point of the write area within the intermediate buffer.
See also: MStreamBuf::TWrite
Returns: The start point.
Sets the start and end points of the read and/or the write area within the intermediate buffer.
A start point is always within an area; an end point is always the first byte beyond the end of an area.
See also: MStreamBuf::TRead MStreamBuf::TWrite
Parameter | Description |
---|---|
anArea | The areas within the intermediate buffer for which the start and end points are to be set. These can be the read area and/or the write area, as indicated by the ERead and EWrite bits. Only these bits can be set, otherwise the function raises a STORE-Stream 17 panic. |
aPtr | The start point. |
anEnd | The end point. |
Sets the start and end points of the read area within the intermediate buffer.
A start point is always within an area; an end point is always the first byte beyond the end of an area.
See also: MStreamBuf::TRead
Parameter | Description |
---|---|
aPtr | The start point. |
anEnd | The end point. |
Sets the start and end points of the write area within the intermediate buffer.
A start point is always within an area; an end point is always the first byte beyond the end of an area.
See also: MStreamBuf::TWrite
Parameter | Description |
---|---|
aPtr | The start point. |
anEnd | The end point. |
Sets the start point of the read and/or the write area within the intermediate buffer.
A start point is always within an area.
See also: MStreamBuf::TRead MStreamBuf::TWrite
Parameter | Description |
---|---|
anArea | The areas within the intermediate buffer for which the start point is to be set. These can be the read area and/or the write area, as indicated by the ERead and EWrite bits. Only these bits can be set, otherwise the function raises a STORE-Stream 17 panic. |
aPtr | The start point. |
Sets the start point of the write area within the intermediate buffer.
A start point is always within an area.
See also: MStreamBuf::TWrite
Parameter | Description |
---|---|
aPtr | The start point. |
Sets the start point of the write area within the intermediate buffer.
A start point is always within an area.
See also: MStreamBuf::TWrite
Parameter | Description |
---|---|
aPtr | The start point. |