[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

TABLE OF CONTENTS

asyncio/CloseAsync
asyncio/OpenAsync
asyncio/ReadAsync
asyncio/ReadCharAsync
asyncio/SeekAsync
asyncio/WriteAsync
asyncio/WriteCharAsync
asyncio/CloseAsync                                         asyncio/CloseAsync

   NAME
        CloseAsync -- close an async file.

   SYNOPSIS
        success = CloseAsync(file);

        LONG CloseAsync(struct AsyncFile *);

   FUNCTION
        Closes a file, flushing any pending writes. Once this call has been
        made, the file can no longer be accessed.

   INPUTS
        file - the file to close. May be NULL, in which case this function
               returns -1 and sets the IoErr() code to ERROR_INVALID_LOCk.

   RESULT
        result - < 0 for an error, >= 0 for success. Indicates whether closing
                 the file worked or not. If the file was opened in read-mode,
                 then this call will always work. In case of error,
                 dos.library/IoErr() can give more information.

   SEE ALSO
        OpenAsync(), dos.library/Close()
asyncio/OpenAsync                                           asyncio/OpenAsync

   NAME
        OpenAsync -- open a file for asynchronous IO.

   SYNOPSIS
        file = OpenAsync(fileName, accessMode, bufferSize);

        struct AsyncFile OpenAsync(const STRPTR, UBYTE, LONG);

   FUNCTION
        The named file is opened and an async file handle returned. If the
        accessMode is MODE_READ, an existing file is opened for reading.
        If accessMode is MODE_WRITE, a new file is created for writing. If
        a file of the same name already exists, it is first deleted. If
        accessMode is MODE_APPEND, an existing file is prepared for writing.
        Data written is added to the end of the file. If the file does not
        exists, it is created.

        'fileName' is a filename and CANNOT be a window specification such as
        CON: or RAW:, or "*"

        'bufferSize' specifies the size of the IO buffer to use. There are
        in fact two buffers allocated, each of roughly (bufferSize/2) bytes
        in size. The actual buffer size use can vary slightly as the size
        is rounded to speed up DMA.

        If the file cannot be opened for any reason, the value returned
        will be NULL, and a secondary error code will be available by
        calling the routine dos.library/IoErr().

    INPUTS
        name - name of the file to open, cannot be a window specification
        accessMode - one of MODE_READ, MODE_WRITE, or MODE_APPEND
        bufferSize - size of IO buffer to use. 8192 is recommended as it
                     provides very good performance for relatively little
                     memory.

    RESULTS
        file - an async file handle or NULL for failure. You should not access
               the fields in the AsyncFile structure, these are private to the
               async IO routines. In case of failure, dos.library/IoErr() can
               give more information.

    SEE ALSO
        CloseAsync(), dos.library/Open()
asyncio/ReadAsync                                           asyncio/ReadAsync

   NAME
        ReadAsync -- read bytes from an async file.

   SYNOPSIS
        actualLength = ReadAsync(file, buffer, numBytes);

        LONG ReadAsync(struct AsyncFile *, APTR, LONG);

   FUNCTION
        This function reads bytes of information from an opened async file
        into the buffer given. 'numBytes' is the number of bytes to read from
        the file.

        The value returned is the length of the information actually read.
        So, when 'actualLength' is greater than zero, the value of
        'actualLength' is the the number of characters read. Usually
        ReadAsync() will try to fill up your buffer before returning. A value
        of zero means that end-of-file has been reached. Errors are indicated
        by a value of -1.

    INPUTS
        file - opened file to read, as obtained from OpenAsync()
        buffer - buffer where to put bytes read
        numBytes - number of bytes to read into buffer

    RESULT
        actualLength - actual number of bytes read, or -1 if an error. In
                       case of error, dos.library/IoErr() can give more
                       information.

    SEE ALSO
        OpenAsync(), CloseAsync(), ReadCharAsync(), WriteAsync(),
        dos.library/Read()
asyncio/ReadCharAsync                                   asyncio/ReadCharAsync

   NAME
        ReadCharAsync -- read a single byte from an async file.

   SYNOPSIS
        byte = ReadCharAsync(file);

        LONG ReadCharAsync(struct AsyncFile *);

   FUNCTION
        This function reads a single byte from an async file. The byte is
        returned, or -1 if there was an error reading, or if the end-of-file
        was reached.

   INPUTS
        file - opened file to read from, as obtained from OpenAsync()

   RESULT
        byte - the byte read, or -1 if no byte was read. In case of error,
               dos.library/IoErr() can give more information. If IoErr()
               returns 0, it means end-of-file was reached. Any other value
               indicates an error.

   SEE ALSO
        OpenAsync(), CloseAsync(), ReadAsync(), WriteCharAsync()
        dos.library/Read()
asyncio/SeekAsync                                           asyncio/SeekAsync

   NAME
        SeekAsync -- set the current position for reading or writing within
                     an async file.

   SYNOPSIS
        oldPosition = SeekAsync(file, position, mode);

        LONG SeekAsync(struct AsyncFile *, LONG, BYTE);

   FUNCTION
        SeekAsync() sets the read/write cursor for the file 'file' to the
        position 'position'. This position is used by the various read/write
        functions as the place to start reading or writing. The result is the
        current absolute position in the file, or -1 if an error occurs, in
        which case dos.library/IoErr() can be used to find more information.
        'mode' can be SEEK_START, SEEK_CURRENT or SEEK_END. It is used to
        specify the relative start position. For example, 20 from current
        is a position 20 bytes forward from current, -20 is 20 bytes back
        from current.

        To find out what the current position within a file is, simply seek
        zero from current.

    INPUTS
        file - an opened async file, as obtained from OpenAsync()
        position - the place where to move the read/write cursor
        mode - the mode for the position, one of SEEK_START, SEEK_CURRENT,
               or SEEK_END.

    RESULT
        oldPosition - the previous position of the read/write cursor, or -1
                      if an error occurs. In case of error, dos.library/IoErr()
                      can give more information.

    SEE ALSO
        OpenAsync(), CloseAsync(), ReadAsync(), WriteAsync(),
        dos.library/Seek()
asyncio/WriteAsync                                         asyncio/WriteAsync

   NAME
        WriteAsync -- write data to an async file.

   SYNOPSIS
        actualLength = WriteAsync(file, buffer, numBytes);

        LONG WriteAsync(struct AsyncFile *, APTR, LONG);

   FUNCTION
        WriteAsync() writes bytes of data to an opened async file. 'numBytes'
        indicates the number of bytes of data to be transferred. 'buffer'
        points to the data to write. The value returned is the length of
        information actually written. So, when 'numBytes' is greater than
        zero, the value of 'numBytes' is the number of characters written.
        Errors are indicated by a return value of -1.

    INPUTS
        file - an opened file, as obtained from OpenAsync()
        buffer - address of data to write
        numBytes - number of bytes to write to the file

    RESULT
        actualLength - number of bytes written, or -1 if error. In case
                       of error, dos.library/IoErr() can give more
                       information.

    SEE ALSO
        OpenAsync(), CloseAsync(), ReadAsync(), WriteCharAsync(),
        dos.library/Write()
asyncio/WriteCharAsync                                 asyncio/WriteCharAsync

   NAME
        WriteCharAsync -- write a single byte to an async file.

   SYNOPSIS
        result = WriteCharAsync(file, byte);

        LONG WriteCharAsync(struct AsyncFile *, UBYTE);

   FUNCTION
        This function writes a single byte to an async file.

   INPUTS
        file - an opened async file, as obtained from OpenAsync()
        byte - byte of data to add to the file

   RESULT
        result - 1 if the byte was written, -1 if there was an error. In
                 case of error, dos.library/IoErr() can give more information.

   SEE ALSO
        OpenAsync(), CloseAsync(), ReadAsync(), WriteAsync(),
        dos.library/Write()