Lucene++ - a full-featured, c++ search engine
API Documentation


FSDirectory.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2014 Alan Wright. All rights reserved.
3 // Distributable under the terms of either the Apache License (Version 2.0)
4 // or the GNU Lesser General Public License.
6 
7 #ifndef FSDIRECTORY_H
8 #define FSDIRECTORY_H
9 
10 #include "Directory.h"
11 
12 namespace Lucene {
13 
29 class LPPAPI FSDirectory : public Directory {
30 protected:
34  FSDirectory(const String& path, const LockFactoryPtr& lockFactory);
35 
36 public:
37  virtual ~FSDirectory();
38 
40 
41 public:
44  static const int32_t DEFAULT_READ_CHUNK_SIZE;
45 
46 protected:
47  bool checked;
48 
50  String directory;
51 
53  int32_t chunkSize;
54 
55 public:
57  static FSDirectoryPtr open(const String& path);
58 
60  static FSDirectoryPtr open(const String& path, const LockFactoryPtr& lockFactory);
61 
64  static HashSet<String> listAll(const String& dir);
65 
67  static uint64_t fileModified(const String& directory, const String& name);
68 
70  void createDir();
71 
73  String getFile();
74 
79  void setReadChunkSize(int32_t chunkSize);
80 
83  int32_t getReadChunkSize();
84 
87  virtual HashSet<String> listAll();
88 
90  virtual bool fileExists(const String& name);
91 
93  virtual uint64_t fileModified(const String& name);
94 
96  virtual void touchFile(const String& name);
97 
99  virtual void deleteFile(const String& name);
100 
102  virtual int64_t fileLength(const String& name);
103 
106  virtual void sync(const String& name);
107 
110  virtual IndexInputPtr openInput(const String& name);
111 
115  virtual IndexInputPtr openInput(const String& name, int32_t bufferSize);
116 
118  virtual String getLockID();
119 
121  virtual void close();
122 
124  virtual String toString();
125 
126 protected:
128  void initOutput(const String& name);
129 };
130 
131 }
132 
133 #endif
bool checked
Definition: FSDirectory.h:47
boost::shared_ptr< FSDirectory > FSDirectoryPtr
Definition: LuceneTypes.h:491
A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing. Directory locking is implemented by an instance of LockFactory, and can be changed for each Directory instance using setLockFactory.
Definition: Directory.h:18
Base class for Directory implementations that store index files in the file system. There are currently three core subclasses:
Definition: FSDirectory.h:29
boost::shared_ptr< IndexInput > IndexInputPtr
Definition: LuceneTypes.h:493
LPPAPI bool fileExists(const String &path)
Return true if given file or directory exists.
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Definition: AbstractAllTermDocs.h:12
int32_t chunkSize
Definition: FSDirectory.h:53
String directory
The underlying filesystem directory.
Definition: FSDirectory.h:50
LPPAPI int64_t fileLength(const String &path)
Return file length in bytes.
boost::shared_ptr< LockFactory > LockFactoryPtr
Definition: LuceneTypes.h:497
LPPAPI bool touchFile(const String &path)
Set file last modified date and time to now.
LPPAPI uint64_t fileModified(const String &path)
Return file last modified date and time.

clucene.sourceforge.net