#include <s32share.h>
class RShareBuf : public MStreamBuf |
Public Member Functions | |
---|---|
RShareBuf() | |
IMPORT_C void | Open(TStreamExchange &, TStreamPos, TInt) |
void | Open(TStreamExchange &, TInt) |
Protected Member Functions | |
---|---|
virtual IMPORT_C TInt | DoReadL(TAny *, TInt) |
virtual IMPORT_C TInt | DoReadL(TDes8 &, TInt, TRequestStatus &) |
virtual IMPORT_C TStreamTransfer | DoReadL(MStreamInput &, TStreamTransfer) |
virtual IMPORT_C void | DoRelease() |
virtual IMPORT_C TStreamPos | DoSeekL(TMark, TStreamLocation, TInt) |
virtual IMPORT_C void | DoWriteL(const TAny *, TInt) |
virtual IMPORT_C TInt | DoWriteL(const TDesC8 &, TInt, TRequestStatus &) |
virtual IMPORT_C TStreamTransfer | DoWriteL(MStreamOutput &, TStreamTransfer) |
Inherited Enumerations | |
---|---|
MStreamBuf:TRead | |
MStreamBuf:TWrite |
Inherited Type Definitions | |
---|---|
MStreamBuf::TMark |
A shared stream buffer.
This class is part of the framework used by CFileStore that allows multiple stream buffers to concurrently access the single hosting file buffer, an RFileBuf object.
Each shared stream buffer maintains its own read and write positions.
Read and write operations to RShareBuf are directed through separate TStreamMark objects, one for read and one for write. The TStreamMark objects re-direct read/write operations through a TStreamExchange object to the RFileBuf object, which handles the actual file read and write operations.
This stream buffer can also be accessed through RShareReadStream and RShareWriteStream objects.
See also: TStreamMark TStreamExchange RFileBuf RShareReadStream RShareWriteStream
IMPORT_C | RShareBuf | ( | ) |
Constructs an empty shared stream buffer object.
Call one of the Open() functions to prepare the stream.
IMPORT_C TInt | DoReadL | ( | TDes8 & | aDes, |
TInt | aMaxLength, | |||
TRequestStatus & | aStatus | |||
) | [protected, virtual] |
Reimplemented from MStreamBuf::DoReadL(TDes8 &,TInt,TRequestStatus &)
Reads data from the stream buffer into the specified descriptor.
This function is called by ReadL(TDes8&,TInt,TRequestStatus&).
This implementation deals with the request synchronously, and completes the request with KErrNone. Other implementations may choose to deal with this in a true asynchronous manner.
In addition, the read operation itself uses the DoReadL(TAny*,TInt) variant.
See also: MStreamBuf::ReadL()
Parameter | Description |
---|---|
aDes | The target descriptor for the data read from the stream buffer. On return, the length of the descriptor is set to the number of bytes read from the stream buffer. |
aMaxLength | The maximum number of bytes to be read. This value must not be greater than the maximum length of the descriptor, otherwise the function raises a STORE-Stream 2 panic. |
aStatus | The request status that indicates the completion status of this asynchronous request. |
Returns: The maximum number of bytes to be read, as used in this request. This implementation uses, and returns, the value supplied in aMaxLength. Other implementations may choose to use a different value.
IMPORT_C TStreamTransfer | DoReadL | ( | MStreamInput & | anInput, |
TStreamTransfer | aTransfer | |||
) | [protected, virtual] |
Reimplemented from MStreamBuf::DoReadL(MStreamInput &,TStreamTransfer)
Reads data from the stream into the specified data sink.
It is called by ReadL(MStreamInput&,TStreamTransfer).
This implementation calls the sink's ReadFromL() function, which performs the read (transfer) operation.
This implementation of DoReadL() is called for streams that do not have buffering capabilities, and that are derived directly from this class.
See also: MStreamInput::ReadFromL()
Parameter | Description |
---|---|
anInput | The target data sink. |
aTransfer | A stream transfer object defining the amount of data available to be read. |
Returns: A stream transfer object defining the amount of data that was not consumed.
IMPORT_C void | DoRelease | ( | ) | [protected, virtual] |
Reimplemented from MStreamBuf::DoRelease()
Frees resources before abandoning the stream buffer.
It is called by Release().
This implementation is empty, but classes derived from MStreamBuf can provide their own implementation, if necessary.
See also: MStreamBuf::Release()
IMPORT_C TStreamPos | DoSeekL | ( | TMark | aMark, |
TStreamLocation | aLocation, | |||
TInt | anOffset | |||
) | [protected, virtual] |
Reimplemented from MStreamBuf::DoSeekL(TMark,TStreamLocation,TInt)
IMPORT_C TInt | DoWriteL | ( | const TDesC8 & | aDes, |
TInt | aMaxLength, | |||
TRequestStatus & | aStatus | |||
) | [protected, virtual] |
Reimplemented from MStreamBuf::DoWriteL(const TDesC8 &,TInt,TRequestStatus &)
Writes data from the specified descriptor into this stream buffer.
This function is called by WriteL(const TDesC8&,TInt,TRequestStatus&).
This implementation deals with the request synchronously, and completes the request with KErrNone. Other implementations may choose to deal with this in a true asynchronous manner.
In addition, the write operation itself uses the DoWriteL(TAny*,TInt) variant.
See also: MStreamBuf::WriteL()
Parameter | Description |
---|---|
aDes | The source descriptor for the data to be written into the stream buffer. |
aMaxLength | The number of bytes to be written. This value must not be greater than the maximum length of the descriptor, otherwise the function raises a STORE-Stream 6 panic. |
aStatus | The request status that indicates the completion status of this asynchronous request. |
Returns: The maximum number of bytes to be written, as used in this request. This implementation uses, and returns, the value supplied in aMaxLength. Other implementations may choose to use a different value.
IMPORT_C TStreamTransfer | DoWriteL | ( | MStreamOutput & | anOutput, |
TStreamTransfer | aTransfer | |||
) | [protected, virtual] |
Reimplemented from MStreamBuf::DoWriteL(MStreamOutput &,TStreamTransfer)
IMPORT_C void | Open | ( | TStreamExchange & | aHost, |
TStreamPos | aPos, | |||
TInt | aMode = ERead|EWrite | |||
) |
Prepares the shared stream buffer for streaming.
The function sets the read mark and/or the write mark to the specified position within the host stream.
See also: MStreamBuf::TRead MStreamBuf::TWrite
Parameter | Description |
---|---|
aHost | The object that manages shared streaming. |
aPos | The position within the host stream. |
aMode | The streaming mode. This can be read and/or write, as indicated by the ERead and EWrite bits. |
void | Open | ( | TStreamExchange & | aHost, |
TInt | aMode = ERead|EWrite | |||
) | [inline] |
Prepares the shared stream buffer for streaming.
The function sets the read mark and/or the write mark to the beginning of the host stream.
See also: MStreamBuf::TRead MStreamBuf::TWrite KStreamBeginning
Parameter | Description |
---|---|
aHost | The object that manages shared streaming. |
aMode | The streaming mode. This can be read and/or write, as indicated by the ERead and EWrite bits. |