#ifndef CONCORDIA_HDR #define CONCORDIA_HDR #include #include #include #include #include "concordia/concordia_config.hpp" #include "concordia/concordia_index.hpp" #include "concordia/index_searcher.hpp" #include "build/libdivsufsort/include/divsufsort.h" /*! The Concordia class is the main access point to the library. */ class Concordia { public: /*! Constructor. \param configFilePath path to the Concordia configuration file \throws ConcordiaException */ explicit Concordia(const std::string & configFilePath) throw(ConcordiaException); /*! Destructor. */ virtual ~Concordia(); /*! Getter for version. \returns version of the Concordia library. */ std::string & getVersion(); void addSentence(const std::string & sentence) throw(ConcordiaException); void addAllSentences(boost::shared_ptr > sentences) throw(ConcordiaException); boost::shared_ptr > simpleSearch( const std::string & pattern) throw(ConcordiaException); void loadRAMIndexFromDisk() throw(ConcordiaException); void refreshSAfromRAM() throw(ConcordiaException); private: void _initializeIndex() throw(ConcordiaException); static std::string _libraryVersion; boost::shared_ptr _config; boost::shared_ptr _index; boost::shared_ptr _searcher; boost::shared_ptr _hashGenerator; boost::shared_ptr > _T; boost::shared_ptr > _SA; }; #endif