@abc.abstractmethod<EOL><INDENT>def read(self, buf, n):<DEDENT>
return<EOL>
Reads a specified number of ``bytes`` from this stream.

        :param buf: the buffer in which the data is read
        :type buf: ``byte[]``
        :param n: the number of ``bytes`` to read
        :type n: ``cardinal``
        :return: the actual number of ``bytes`` read
        :rtype: ``integer``
        :raise: ``IllegalState`` -- this stream has been closed or ``at_end_of_stream()`` is ``true``
        :raise: ``InvalidArgument`` -- the size of ``buf`` is less than ``n``
        :raise: ``NullArgument`` -- ``buf`` is ``null``
        :raise: ``OperationFailed`` -- unable to complete request

        *compliance: mandatory -- This method must be implemented.*