78 (
struct OSRTSTREAM* pStream, OSOCTET* pbuffer,
size_t nocts);
91 const OSOCTET* data,
size_t numocts);
146 #define OSRTSTRMF_INPUT 0x0001 147 #define OSRTSTRMF_OUTPUT 0x0002 148 #define OSRTSTRMF_BUFFERED 0x8000 149 #define OSRTSTRMF_UNBUFFERED 0x4000 150 #define OSRTSTRMF_POSMARKED 0x2000 151 #define OSRTSTRMF_FIXINMEM 0x1000 152 #define OSRTSTRMF_HEXTEXT 0x0800 154 #define OSRTSTRMF_BUF_INPUT (OSRTSTRMF_INPUT|OSRTSTRMF_BUFFERED) 155 #define OSRTSTRMF_BUF_OUTPUT (OSRTSTRMF_OUTPUT|OSRTSTRMF_BUFFERED) 158 #define OSRTSTRMID_FILE 1 159 #define OSRTSTRMID_SOCKET 2 160 #define OSRTSTRMID_MEMORY 3 161 #define OSRTSTRMID_BUFFERED 4 162 #define OSRTSTRMID_DIRECTBUF 5 163 #define OSRTSTRMID_CTXTBUF 6 164 #define OSRTSTRMID_ZLIB 7 165 #define OSRTSTRMID_USER 1000 167 #define OSRTSTRM_K_BUFSIZE 1024 169 #define OSRTSTRM_K_INVALIDMARK ((size_t)-1) 171 #define OSRTSTREAM_BYTEINDEX(pctxt) \ 172 (((pctxt)->pStream->flags & OSRTSTRMF_BUFFERED) ? \ 173 ((pctxt)->pStream->bytesProcessed + (pctxt)->buffer.byteIndex) : \ 174 ((pctxt)->pStream->bytesProcessed )) 176 #define OSRTSTREAM_ID(pctxt) ((pctxt)->pStream->id) 177 #define OSRTSTREAM_FLAGS(pctxt) ((pctxt)->pStream->flags) 319 (
OSCTXT* pctxt, OSOCTET* pbuffer,
size_t nocts);
340 (
OSCTXT* pctxt, OSOCTET* pbuffer,
size_t nocts,
size_t bufSize);
344 #define rtxStreamBlockingRead rtxStreamRead 346 EXTERNRT
long rtxStreamReadDirect
347 (
OSCTXT* pctxt, OSOCTET* pbuffer, OSSIZE bufSize);
379 (
OSCTXT* pctxt,
const OSOCTET* data,
size_t numocts);
EXTERNRT int rtxStreamGetPos(OSCTXT *pctxt, size_t *ppos)
Get the current position in input stream.
OSRTStreamGetPosProc getPos
pointer to getPos function
EXTERNRT long rtxStreamWrite(OSCTXT *pctxt, const OSOCTET *data, size_t numocts)
This function writes the specified amount of octets from the specified array to the output stream...
int(* OSRTStreamSkipProc)(struct OSRTSTREAM *pStream, size_t skipBytes)
Stream skip function pointer type.
size_t markedBytesProcessed
the marked number of bytes already processed
size_t readAheadLimit
read ahead limit (used by rtxStreamMark/rtxStreamReset
OSRTStreamReadProc OSRTStreamBlockingReadProc
OSRTStreamBlockingReadProc is deprecated.
EXTERNRT long rtxStreamRead2(OSCTXT *pctxt, OSOCTET *pbuffer, size_t nocts, size_t bufSize)
Attempt to read nocts bytes from the input stream into an array of octets.
EXTERNRT int rtxStreamInit(OSCTXT *pctxt)
This function initializes a stream part of the context block.
EXTERNRT void rtxStreamSetCapture(OSCTXT *pctxt, OSRTMEMBUF *pmembuf)
This function sets a capture buffer for the stream.
EXTERNRT OSBOOL rtxStreamMarkSupported(OSCTXT *pctxt)
Tests if this input stream supports the mark and reset methods.
EXTERNRT OSBOOL rtxStreamIsOpened(OSCTXT *pctxt)
Tests if this stream opened (for reading or writing).
OSUINT16 flags
flags (see OSRTSTRMF_* macros
int(* OSRTStreamCloseProc)(struct OSRTSTREAM *pStream)
Stream close function pointer type.
EXTERNRT int rtxStreamGetIOBytes(OSCTXT *pctxt, size_t *pPos)
This function returns the number of processed octets.
size_t segsize
size of decoded segment
long(* OSRTStreamReadProc)(struct OSRTSTREAM *pStream, OSOCTET *pbuffer, size_t nocts)
Stream read function pointer type.
OSUINT32 id
id of stream (see OSRTSTRMID_* macros)
OSRTStreamWriteProc write
pointer to write function
EXTERNRT int rtxStreamSetPos(OSCTXT *pctxt, size_t pos)
Set the current position in input stream.
size_t nextMarkOffset
offset of next appropriate mark position
OSRTMEMBUF * pCaptureBuf
Buffer into which data read from stream can be captured for debugging purposes.
int(* OSRTStreamSetPosProc)(struct OSRTSTREAM *pStream, size_t pos)
Stream set position function pointer type.
size_t bytesProcessed
the number of bytes processed by the application program
EXTERNRT int rtxStreamInitCtxtBuf(OSCTXT *pctxt)
This function initializes a stream to use the context memory buffer for stream buffering.
OSRTStreamSetPosProc setPos
pointer to setPos function
int(* OSRTStreamFlushProc)(struct OSRTSTREAM *pStream)
Stream flush function pointer type.
Common run-time context definitions.
EXTERNRT int rtxStreamFlush(OSCTXT *pctxt)
This function flushes the output stream and forces any buffered output octets to be written out...
EXTERNRT OSBOOL rtxStreamIsWritable(OSCTXT *pctxt)
Tests if this stream opened for writing.
long(* OSRTStreamWriteProc)(struct OSRTSTREAM *pStream, const OSOCTET *data, size_t numocts)
Stream write function pointer type.
EXTERNRT OSRTMEMBUF * rtxStreamGetCapture(OSCTXT *pctxt)
This function returns the capture buffer currently assigned to the stream.
OSRTStreamSkipProc skip
pointer to skip function
EXTERNRT int rtxStreamClose(OSCTXT *pctxt)
This function closes the input or output stream and releases any system resources associated with the...
int(* OSRTStreamResetProc)(struct OSRTSTREAM *pStream)
Stream reset function pointer type.
int(* OSRTStreamMarkProc)(struct OSRTSTREAM *pStream, size_t readAheadLimit)
Stream mark function pointer type.
EXTERNRT int rtxStreamSkip(OSCTXT *pctxt, size_t skipBytes)
This function skips over and discards the specified amount of data octets from this input stream...
size_t bufsize
physical size of pctxt->buffer.data buffer.
size_t ioBytes
the actual number of bytes read from or written to the stream
OSRTStreamMarkProc mark
pointer to mark function
EXTERNRT int rtxStreamRelease(OSCTXT *pctxt)
This function releases the stream's resources.
struct OSRTSTREAM OSRTSTREAM
The stream control block.
EXTERNRT int rtxStreamLoadInputBuffer(OSCTXT *pctxt, OSSIZE nbytes)
This is for meant for internal use by the runtime.
EXTERNRT OSBOOL rtxStreamIsReadable(OSCTXT *pctxt)
Tests if this stream opened for reading.
OSRTStreamReadProc read
pointer to read function
EXTERNRT int rtxStreamReset(OSCTXT *pctxt)
Repositions this stream to the position recorded by the last call to the rtxStreamMark function...
OSRTStreamCloseProc close
pointer to close function
OSRTStreamResetProc reset
pointer to reset function
Run-time context structure.
OSRTStreamFlushProc flush
pointer to flush function
The stream control block.
int(* OSRTStreamGetPosProc)(struct OSRTSTREAM *pStream, size_t *ppos)
Stream get position function pointer type.
EXTERNRT int rtxStreamRemoveCtxtBuf(OSCTXT *pctxt)
This function removes the use of a context memory buffer from a stream.
EXTERNRT int rtxStreamMark(OSCTXT *pctxt, size_t readAheadLimit)
Marks the current position in this input stream.
void * extra
pointer to stream-specific data
EXTERNRT long rtxStreamRead(OSCTXT *pctxt, OSOCTET *pbuffer, size_t nocts)
Read up to nocts bytes of data from the input stream into an array of octets.