SIS
Symmetric Index Structures
/Users/dbr/ma/src/lmu/cis/sis/indexer/DocumentIndexingAutomatonInterface.hpp
Go to the documentation of this file.
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 */