Interface nsIStreamBufferAccessType

An interface for access to a buffering stream implementation's underlying memory buffer.

Stream implementations that QueryInterface to nsIStreamBufferAccess must ensure that all buffers are aligned on the most restrictive type size for the current architecture (e.g., sizeof(double) for RISCy CPUs). malloc(3) satisfies this requirement.

Hierarchy

Properties

unbufferedStream: nsISupports

The underlying, unbuffered input or output stream.

Methods

  • Increases the reference count for this interface. The associated instance will not be deleted unless the reference count is returned to zero.

    Returns

    The resulting reference count.

    Returns number

  • Parameters

    • aIID: object
    • Optional aInstancePtr: object

    Returns any

  • A run time mechanism for interface discovery.

    Returns

    NS_OK if the interface is supported by the associated instance, NS_NOINTERFACE if it is not.

    aInstancePtr must not be null.

    Parameters

    • aIID: object

      [in] A requested interface IID

    • aInstancePtr: object

      [out] A pointer to an interface pointer to receive the result.

    Returns void

  • Decreases the reference count for this interface. Generally, if the reference count returns to zero, the associated instance is deleted.

    Returns

    The resulting reference count.

    Returns number

  • Disable and enable buffering on the stream implementing this interface. DisableBuffering flushes an output stream's buffer, and invalidates an input stream's buffer.

    Returns void

  • Returns void

  • Get access to a contiguous, aligned run of bytes in the stream's buffer. Exactly one successful getBuffer call must occur before a putBuffer call taking the non-null pointer returned by the successful getBuffer.

    The run of bytes are the next bytes (modulo alignment padding) to read for an input stream, and the next bytes (modulo alignment padding) to store before (eventually) writing buffered data to an output stream. There can be space beyond this run of bytes in the buffer for further accesses before the fill or flush point is reached.

    Returns

    The aligned pointer to aLength bytes in the buffer, or null if the buffer has no room for aLength bytes starting at the next address A after the current position that satisfies (A & aAlignMask) == 0.

    Parameters

    • aLength: uint32_t

      Count of contiguous bytes requested at the address A that satisfies (A & aAlignMask) == 0 in the buffer, starting from the current stream position, mapped to a buffer address B. The stream implementation must pad from B to A by skipping bytes (if input stream) or storing zero bytes (if output stream).

    • aAlignMask: uint32_t

      Bit-mask computed by subtracting 1 from the power-of-two alignment modulus (e.g., 3 or sizeof(uint32_t)-1 for uint32_t alignment).

    Returns charPtr

  • Relinquish access to the stream's buffer, filling if at end of an input buffer, flushing if completing an output buffer. After a getBuffer call that returns non-null, putBuffer must be called.

    Parameters

    • aBuffer: charPtr

      A non-null pointer returned by getBuffer on the same stream buffer access object.

    • aLength: uint32_t

      The same count of contiguous bytes passed to the getBuffer call that returned aBuffer.

    Returns void

Generated using TypeDoc