SIS
Symmetric Index Structures
|
00001 #ifndef DOCUMENTINDEXINGAUTOMATONINTERFACE_HPP 00002 #define DOCUMENTINDEXINGAUTOMATONINTERFACE_HPP 00003 00004 #include "../cppbase.hpp" 00005 00006 #include "../adapter/CompressedAutomatonAdapterInterface.hpp" 00007 #include "DocumentIndexingAutomatonFindResults.hpp" 00008 00009 /* Get into namespace */ 00010 // using lmu::cis::sis::DocumentIndexingAutomatonFindResults; 00011 00012 namespace lmu { namespace cis { namespace sis { 00013 00014 class DocumentIndexingAutomatonInterface 00015 : public virtual CompressedAutomatonAdapterInterface // TODO Split into CA-interface and CA-typedefs (or better yet, put into separate header!) 00016 { 00017 public: 00018 virtual void Close() override = 0; 00019 // virtual PairState Delta( const PairState * state, const void * symbol ) const = 0; 00020 00021 // virtual SinkState Add( const VoidSequence * sharpDocumentDollar ) override = 0; 00022 00023 virtual void AddDocuments(const std::vector<std::string>& documents) = 0; 00024 virtual DocumentIndexingAutomatonFindResults&& findall( const std::string& w ) = 0; 00025 00026 protected: 00027 virtual DocumentIndexingAutomatonFindResults&& find( const PairState state, UINT length ) = 0; 00028 virtual DocumentIndexingAutomatonFindResults&& findRec(const UINT s, const UINT length) = 0; 00029 }; 00030 00031 }}} /* End of namespace lmu::cis::sis */ 00032 00033 #endif /* end of include guard: DOCUMENTINDEXINGAUTOMATONINTERFACE_HPP */