Konstantin Stepanov > FusqlFS-0.009 > FusqlFS

Download:
FusqlFS-0.009.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Source  

NAME ^

FusqlFS - FUSE filesystem to work with database via DBI interface

SYNOPSIS ^

    use FusqlFS;

    FusqlFS->init(
        engine   => 'PgSQL',
        host     => 'localhost',
        database => 'postgres',
        user     => 'postgres',
        password => 'pas$w0rd',
        limit    => 100,
        debug    => 2,
        threaded => 0,
    );

    FusqlFS->mount(
        '/path/to/mount/point',
        'allow_other',
    );

DESCRIPTION ^

This package provides basic interface to FusqlFS to initialize DBI backend and mount it with Fuse.

SUBROUTINES ^

init

Initializes FusqlFS::Backend and FusqlFS::Cache subsystems, preparing all resources to be actually used by Fuse interface.

Input: %options. Output: $fusqlfs_instance.

mount

Runs fuse main loop, configured with all required hooks and options to interface with FusqlFS::Backend.

Input: $mountpoint, $mountopts.

Fuse hooks

"getdir" in Fuse, "getattr" in Fuse, "readlink" in Fuse, "read" in Fuse, "write" in Fuse, "flush" in Fuse, "open" in Fuse, "truncate" in Fuse, "symlink" in Fuse, "unlink" in Fuse, "mkdir" in Fuse, "rmdir" in Fuse, "mknod" in Fuse, "rename" in Fuse, "fsync" in Fuse, "utime" in Fuse.

See Fuse for details.

fold_path

Folds path by removing "..", "." and other special sequences from it.

Input: $path. Output $folded_path.

file_struct

Creates FUSE-exportable file structure for given entry.

Input: $entry. Output: @file_struct.

by_path

Gets entry by path, uses cache.

Input: $path.

clear_cache

Invalidates entries cache for given path, optionally recursively invalidating all paths up to given depth.

Input: $path, $depth=undef.

flush_inbuffer

Flushes input buffer for given $entry by given $path.

Input: $path, $entry.

syntax highlighting: