00001 #ifndef LUX_API_ENGINE_H
00002 #define LUX_API_ENGINE_H
00003
00004 #include "lux/lux.h"
00005 #ifdef HAVE_TR1_MEMORY
00006 #include <tr1/memory>
00007 #elif HAVE_BOOST_SHARED_PTR_HPP
00008 #include <boost/shared_ptr.hpp>
00009 #endif
00010
00011 namespace Lux {
00012
00013 class SearchIndex;
00014 struct EngineImpl;
00015 namespace Config { class Document; }
00016
00020 class Engine {
00021
00022 public:
00027 Engine(Config::Document &doc_config);
00031 ~Engine();
00037 bool open(std::string dir, db_flags_t oflags);
00041 bool close(void);
00045 bool is_opened;
00049 db_flags_t oflags_;
00050
00051 #ifdef HAVE_TR1_MEMORY
00052 std::tr1::shared_ptr<EngineImpl> pimpl_;
00053 #elif HAVE_BOOST_SHARED_PTR_HPP
00054 boost::shared_ptr<EngineImpl> pimpl_;
00055 #endif
00056 };
00057 }
00058
00059 #endif