Fuse-Class

 view release on metacpan or  search on metacpan

lib/Fuse/Class.pm  view on Meta::CPAN

        if ($_Module->can($fnname)) {
            $fnmap{$fnname} = __PACKAGE__ . '::_' . $fnname;
        }
    }

    Fuse::main(@args, %fnmap);
}

BEGIN {
    @callback = qw (getattr readlink getdir mknod mkdir unlink
		    rmdir symlink rename link chmod chown truncate
		    utime open read write statfs flush release fsync
		    setxattr getxattr listxattr removexattr);
    if (Fuse->can('fuse_version')) {
        my $fuse_version = Fuse::fuse_version();
        if ($fuse_version >= 2.3) {
            push(@callback, qw(opendir readdir releasedir fsyncdir init destroy));
        }
        if ($fuse_version >= 2.5) {
            push(@callback, qw(access create ftruncate fgetattr));
        }

lib/Fuse/Class.pm  view on Meta::CPAN

=head2 link(EXISTING_PATH_NAME, HADLINK_NAME)

Return an errno (0 if success).
This method is called to create a hard link.

=head2 chmod(PATH_NAME, MODE).

Return an errno (0 if success).
This method is called to change permissions on a entity.

=head2 chown(PATH_NAME, UID, GID).

Return an errno (0 if success).
This method is called to change ownership of a entity.

=head2 truncate(PATH_NAME, OFFSET).

Return an errno (0 if success).
This method is called to truncate a file at the given offset.

=head2 utime(PATH_NAME, ACCESS_TIME, MODIFIED_TIME).

t/80fuse28.t  view on Meta::CPAN

    $test->enable_test_time(1);
    # $test->enable_test_atime(1);
    # $test->enable_test_mtime(1);
    # $test->enable_test_ctime(1);
    $test->enable_test_permissions(0);
    $test->enable_test_special(0);
    # $test->enable_test_fifo(0);
    $test->enable_test_symlink(1);
    # $test->enable_test_hardlink(0);
    # $test->enable_test_nlink(0);
    # $test->enable_test_chown(0);

    $test->runtests;

    # unlink
    {
	my $fname = "$mount_point/unlink-test";
	unlink $fname;
	open(my $fh, "> $fname");
	close($fh);

test/fuse28.pm  view on Meta::CPAN

sub chmod {
    my $self = shift;
    my ($path, $modes) = @_;

    my $entity = $self->pickup($path);
    return -2 unless ($entity);

    $entity->chmod($modes);
}

sub chown {
    my $self = shift;
    my ($path, $uid, $gid) = @_;

    my $entity = $self->pickup($path);
    return -2 unless ($entity);

    $entity->chown($uid, $gid);
}

sub ftruncate {
    my $self = shift;
    my ($path, $offset, $fh) = @_;

    my $entity = $self->{handle}->{$fh};
    return (-2) unless ($entity);
    return (-1) unless ($entity->can('truncate'));

test/fuse28.pm  view on Meta::CPAN

    my $self = shift;
    my ($atime, $mtime) = @_;

    my $attr = $self->{attr};
    $attr->[8] = $atime if ($atime >= 0);
    $attr->[9] = $mtime if ($mtime >= 0);

    return 0;
}

sub chown {
    my $self = shift;
    my ($uid, $gid) = @_;

    $self->{attr}->[4] = $uid if ($uid >= 0);
    $self->{attr}->[5] = $gid if ($gid >= 0);

    return 0;
}

#



( run in 0.689 second using v1.01-cache-2.11-cpan-71847e10f99 )