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


 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FileSwitchDirectory.h
Go to the documentation of this file.
1 
2 // 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 FILESWITCHDIRECTORY_H
8 #define FILESWITCHDIRECTORY_H
9 
10 #include "Directory.h"
11 
12 namespace Lucene {
13 
21 class LPPAPI FileSwitchDirectory : public Directory {
22 public:
23  FileSwitchDirectory(HashSet<String> primaryExtensions, const DirectoryPtr& primaryDir, const DirectoryPtr& secondaryDir, bool doClose);
24  virtual ~FileSwitchDirectory();
25 
27 
28 protected:
29  HashSet<String> primaryExtensions;
32  bool doClose;
33 
34 public:
36  DirectoryPtr getPrimaryDir();
37 
39  DirectoryPtr getSecondaryDir();
40 
42  virtual void close();
43 
45  virtual HashSet<String> listAll();
46 
48  static String getExtension(const String& name);
49 
51  virtual bool fileExists(const String& name);
52 
54  virtual uint64_t fileModified(const String& name);
55 
57  virtual void touchFile(const String& name);
58 
60  virtual void deleteFile(const String& name);
61 
63  virtual int64_t fileLength(const String& name);
64 
67  virtual IndexOutputPtr createOutput(const String& name);
68 
72  virtual void sync(const String& name);
73 
77  virtual IndexInputPtr openInput(const String& name);
78 
79 protected:
80  DirectoryPtr getDirectory(const String& name);
81 };
82 
83 }
84 
85 #endif

clucene.sourceforge.net