The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Lucy::Index::Snapshot - Point-in-time index file list.

SYNOPSIS

    my $snapshot = Lucy::Index::Snapshot->new;
    $snapshot->read_file( folder => $folder );    # load most recent snapshot
    my $files = $snapshot->list;
    print "$_\n" for @$files;

DESCRIPTION

A Snapshot is list of index files and folders. Because index files, once written, are never modified, a Snapshot defines a point-in-time view of the data in an index.

IndexReader objects interpret the data associated with a single Snapshot.

CONSTRUCTORS

new

    my $snapshot = Lucy::Index::Snapshot->new;

Constructor. Takes no arguments.

METHODS

list

    my $arrayref = $snapshot->list();

Return an array of all entries.

num_entries

    my $int = $snapshot->num_entries();

Return the number of entries (including directories).

add_entry

    $snapshot->add_entry($entry);

Add a filepath to the snapshot.

delete_entry

    my $bool = $snapshot->delete_entry($entry);

Delete a filepath from the snapshot.

Returns: true if the entry existed and was successfully deleted, false otherwise.

read_file

    my $result = $snapshot->read_file(
        folder => $folder  # required
        path   => $path    # default: undef
    );

Decode a snapshot file and initialize the object to reflect its contents.

  • folder - A Folder.

  • path - The location of the snapshot file. If not supplied, the most recent snapshot file in the base directory will be chosen.

Returns: the Snapshot object itself

write_file

    $snapshot->write_file(
        folder => $folder  # required
        path   => $path    # default: undef
    );

Write a snapshot file. The caller must lock the index while this operation takes place, and the operation will fail if the snapshot file already exists.

  • folder - A Folder.

  • path - The path of the file to write. If undef, a file name will be chosen which supersedes the latest snapshot file in the index folder.

set_path

    $snapshot->set_path($path);

Set the path to the file that the Snapshot object serves as a proxy for.

get_path

    my $string = $snapshot->get_path();

Get the path to the snapshot file. Initially undef; updated by read_file(), write_file(), and set_path().

INHERITANCE

Lucy::Index::Snapshot isa Clownfish::Obj.