/* 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. */ parcel Lucy; /** In-memory Folder implementation. * * RAMFolder is an entirely in-memory implementation of * L, primarily used for testing and development. */ public class Lucy::Store::RAMFolder inherits Lucy::Store::Folder { inert incremented RAMFolder* new(const CharBuf *path = NULL); /** * @param path Relative path, used for subfolders. */ public inert RAMFolder* init(RAMFolder *self, const CharBuf *path = NULL); public void Initialize(RAMFolder *self); public bool_t Check(RAMFolder *self); public void Close(RAMFolder *self); incremented nullable FileHandle* Local_Open_FileHandle(RAMFolder *self, const CharBuf *name, uint32_t flags); incremented nullable DirHandle* Local_Open_Dir(RAMFolder *self); bool_t Local_MkDir(RAMFolder *self, const CharBuf *name); bool_t Local_Exists(RAMFolder *self, const CharBuf *name); bool_t Local_Is_Directory(RAMFolder *self, const CharBuf *name); nullable Folder* Local_Find_Folder(RAMFolder *self, const CharBuf *name); bool_t Local_Delete(RAMFolder *self, const CharBuf *name); public bool_t Rename(RAMFolder *self, const CharBuf* from, const CharBuf *to); public bool_t Hard_Link(RAMFolder *self, const CharBuf *from, const CharBuf *to); }