/* ASyncIO.h - Header File for ASyncIO.c */
#ifndef ASYNCIO_H
#define ASYNCIO_H
/*****************************************************************************/
#include <exec/types.h>
#include <exec/ports.h>
#include <dos/dos.h>
/*****************************************************************************/
struct AsyncFile
{
BPTR af_File;
struct MsgPort *af_Handler;
APTR af_Offset;
LONG af_BytesLeft;
ULONG af_BufferSize;
APTR af_Buffers[2];
struct StandardPacket af_Packet;
struct MsgPort af_PacketPort;
ULONG af_CurrentBuf;
UBYTE af_PacketPending;
UBYTE af_ReadMode;
};
/*****************************************************************************/
#define MODE_READ 0 /* read an existing file */
#define MODE_WRITE 1 /* create a new file, delete existing file if needed */
#define MODE_APPEND 2 /* append to end of existing file, or create new */
/*****************************************************************************/
struct AsyncFile *OpenAsync(STRPTR fileName, UBYTE mode, LONG bufferSize);
LONG CloseAsync(struct AsyncFile *file);
LONG ReadAsync(struct AsyncFile *file, APTR buf, LONG numBytes);
LONG ReadCharAsync(struct AsyncFile *file);
LONG WriteAsync(struct AsyncFile *file, APTR buf, LONG numBytes);
LONG WriteCharAsync(struct AsyncFile *file, char ch);
/*****************************************************************************/
#endif /* ASYNCIO_H */