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


 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RAMDirectory.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 RAMDIRECTORY_H
8 #define RAMDIRECTORY_H
9 
10 #include "Directory.h"
11 
12 namespace Lucene {
13 
17 class LPPAPI RAMDirectory : public Directory {
18 public:
20  RAMDirectory();
21 
31  RAMDirectory(const DirectoryPtr& dir);
32 
33  RAMDirectory(const DirectoryPtr& dir, bool closeDir);
34 
35  virtual ~RAMDirectory();
36 
38 
39 INTERNAL:
40  int64_t _sizeInBytes;
41  MapStringRAMFile fileMap;
42 
43 protected:
46  bool closeDir;
47 
48 public:
49  virtual void initialize();
50 
52  virtual HashSet<String> listAll();
53 
55  virtual bool fileExists(const String& name);
56 
58  virtual uint64_t fileModified(const String& name);
59 
61  virtual void touchFile(const String& name);
62 
64  virtual int64_t fileLength(const String& name);
65 
68  int64_t sizeInBytes();
69 
71  virtual void deleteFile(const String& name);
72 
75  virtual IndexOutputPtr createOutput(const String& name);
76 
78  virtual IndexInputPtr openInput(const String& name);
79 
81  virtual void close();
82 };
83 
84 }
85 
86 #endif
boost::shared_ptr< IndexOutput > IndexOutputPtr
Definition: LuceneTypes.h:494
A memory-resident Directory implementation. Locking implementation is by default the SingleInstanceLo...
Definition: RAMDirectory.h:17
boost::weak_ptr< Directory > DirectoryWeakPtr
Definition: LuceneTypes.h:489
DirectoryWeakPtr _dirSource
Definition: RAMDirectory.h:44
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
boost::shared_ptr< Directory > DirectoryPtr
Definition: LuceneTypes.h:489
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
bool closeDir
Definition: RAMDirectory.h:46
bool copyDirectory
Definition: RAMDirectory.h:45
LPPAPI int64_t fileLength(const String &path)
Return file length in bytes.
MapStringRAMFile fileMap
Definition: RAMDirectory.h:41
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