---
name: "Lucy::Index::Snapshot"
section: "3pm"
platform: "linux"
package: "liblucy-perl"
version: "0.3.3-7+b1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/Lucy::Index::Snapshot"
---

# Lucy::Index::Snapshot(3pm)

Point-in-time index file list.

## 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()*

Return an array of all entries.

### *num\_entries()*

Return the number of entries (including directories).

### add\_entry(entry)

Add a filepath to the snapshot.

### delete\_entry(entry)

Delete a filepath from the snapshot.

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

### read\_file( *\[labeled params\]* )

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 object, allowing an assignment idiom.

### write\_file( *\[labeled params\]* )

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(path)

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

### *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 Lucy::Object::Obj.
