blob: ea85a9af30730fae170b95844d6108b6913a213f [file] [log] [blame]
/* 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
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* See the License for the specific language governing permissions and
* limitations under the License.
parcel Lucy;
/** Utilities for parsing, interpreting and generating index file names.
inert class Lucy::Util::IndexFileNames nickname IxFileNames {
/** Skip past the first instance of an underscore in the String, then
* attempt to decode a base 36 number. For example, "snapshot_5.json"
* yields 5, and "seg_a1" yields 27.
* @return a generation number, or 0 if no number can be extracted.
inert uint64_t
extract_gen(String *name);
/** Return the name of the latest generation snapshot file in the Folder,
* or NULL if no such file exists.
inert incremented nullable String*
latest_snapshot(Folder *folder);
/** Return the name of a new temporary snapshot file, which shall contain
* a base-36 "generation" embedded inside it.
inert incremented String*
make_temp_snapshot(uint64_t gen);
/** Split the `path` on '/' and return the last component.
* Trailing slashes will be stripped.
inert incremented String*
local_part(String *path);