# Auto-generated file -- DO NOT EDIT!!!!!
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
=head1 NAME
Lucy::Index::Snapshot - Point-in-time index file list.
=head1 SYNOPSIS
my $snapshot = Lucy::Index::Snapshot->new;
$snapshot->read_file( folder => $folder ); # load most recent snapshot
my $files = $snapshot->list;
print "$_\n" for @$files;
=head1 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.
L<IndexReader|Lucy::Index::IndexReader> objects interpret the data
associated with a single Snapshot.
=head1 CONSTRUCTORS
=head2 new()
my $snapshot = Lucy::Index::Snapshot->new;
Constructor. Takes no arguments.
=head1 METHODS
=head2 list()
Return an array of all entries.
=head2 num_entries()
Return the number of entries (including directories).
=head2 add_entry(entry)
Add a filepath to the snapshot.
=head2 delete_entry(entry)
Delete a filepath from the snapshot.
Returns: true if the entry existed and was successfully deleted, false
otherwise.
=head2 read_file( I<[labeled params]> )
Decode a snapshot file and initialize the object to reflect its
contents.
=over
=item *
B<folder> - A Folder.
=item *
B<path> - The location of the snapshot file. If not supplied, the
most recent snapshot file in the base directory will be chosen.
=back
Returns: the object, allowing an assignment idiom.
=head2 write_file( I<[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.
=over
=item *
B<folder> - A Folder.
=item *
B<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.
=back
=head2 set_path(path)
Set the path to the file that the Snapshot object serves as a proxy
for.
=head2 get_path()
Get the path to the snapshot file. Initially undef; updated by
read_file(), write_file(), and set_path().
=head1 INHERITANCE
Lucy::Index::Snapshot isa L<Lucy::Object::Obj>.
=cut