NewAPI/FileSystems

From Allegro Wiki

Jump to: navigation, search

Preliminary draft of 4.3 fshooks api. -- Tomasu 21:01, May 5, 2007 (MDT)

Note: Not up to date, but much of the api has been committed to Allegro 4.9 svn.

Contents

Virtual File System

This allows resources to be loaded up, regardless of how they are stored. For example, a plug in could be written to access files in zip archive or direct from a webserver. See also RWOps in the SDL.

Functions

System Paths

Filesystem Handles

File handling

Entry stat info

Handle based

Path based

Directory handling

Search Path

Find

Types

Structs

Base type for filesystem entries, dirs and files. Gets extended by driver implementations.

Enums

Anonymous Enums

enum {
        ALLEGRO_MKTEMP_UNLINK_NEVER = 0,
        ALLEGRO_MKTEMP_UNLINK_NOW = 1,
        ALLEGRO_MKTEMP_UNLINK_ON_CLOSE = 2,
};
enum {
        ALLEGRO_FM_READ    = 1,
        ALLEGRO_FM_WRITE   = 1 << 1,
        ALLEGRO_FM_EXECUTE = 1 << 2,
        ALLEGRO_FM_HIDDEN  = 1 << 3,
        ALLEGRO_FM_ISFILE  = 1 << 4,
        ALLEGRO_FM_ISDIR   = 1 << 5,
};
enum {
        ALLEGRO_SEEK_SET = 0,
        ALLEGRO_SEEK_CUR,
        ALLEGRO_SEEK_END
};
enum {
        ALLEGRO_FS_HOOK_CREATE_HANDLE = 0,
        ALLEGRO_FS_HOOK_DESTROY_HANDLE,
        ALLEGRO_FS_HOOK_OPEN_HANDLE,
        ALLEGRO_FS_HOOK_CLOSE_HANDLE,

        ALLEGRO_FS_HOOK_ENTRY_OPEN,
        ALLEGRO_FS_HOOK_ENTRY_CLOSE,
        ALLEGRO_FS_HOOK_ENTRY_READ,
        ALLEGRO_FS_HOOK_ENTRY_WRITE,
        ALLEGRO_FS_HOOK_ENTRY_FLUSH,
        ALLEGRO_FS_HOOK_ENTRY_SEEK,
        ALLEGRO_FS_HOOK_ENTRY_TELL,
        ALLEGRO_FS_HOOK_ENTRY_ERROR,
        ALLEGRO_FS_HOOK_ENTRY_EOF,
        ALLEGRO_FS_HOOK_ENTRY_NAME,

        ALLEGRO_FS_HOOK_ENTRY_STAT,

        ALLEGRO_FS_HOOK_OPENDIR,
        ALLEGRO_FS_HOOK_CLOSEDIR,
        ALLEGRO_FS_HOOK_READDIR,

        ALLEGRO_FS_HOOK_MKTEMP,
        ALLEGRO_FS_HOOK_GETCWD,
        ALLEGRO_FS_HOOK_CHDIR,

        ALLEGRO_FS_HOOK_ADD_SEARCH_PATH,
        ALLEGRO_FS_HOOK_SEARCH_PATH_COUNT,
        ALLEGRO_FS_HOOK_GET_SEARCH_PATH,

        ALLEGRO_FS_HOOK_ENTRY_MODE,
        ALLEGRO_FS_HOOK_ENTRY_ATIME,
        ALLEGRO_FS_HOOK_ENTRY_MTIME,
        ALLEGRO_FS_HOOK_ENTRY_CTIME,
        ALLEGRO_FS_HOOK_ENTRY_SIZE,

        ALLEGRO_FS_HOOK_ENTRY_EXISTS,
        ALLEGRO_FS_HOOK_ENTRY_UNLINK,

        ALLEGRO_FS_HOOK_PATH_TO_SYS,
        ALLEGRO_FS_HOOK_PATH_TO_UNI, /* universal */

        ALLEGRO_FS_HOOK_DRIVE_SEP,
        ALLEGRO_FS_HOOK_PATH_SEP,

        ALLEGRO_FS_HOOK_STAT_MODE,
        ALLEGRO_FS_HOOK_STAT_ATIME,
        ALLEGRO_FS_HOOK_STAT_MTIME,
        ALLEGRO_FS_HOOK_STAT_CTIME,
        ALLEGRO_FS_HOOK_STAT_SIZE,

        ALLEGRO_FS_HOOK_EXISTS,
        ALLEGRO_FS_HOOK_UNLINK,

        ALLEGRO_FS_HOOK_LAST /* must be last */
};

-- Tomasu 21:01, May 5, 2007 (MDT)

Personal tools