SIS
Symmetric Index Structures
|
00001 #ifndef COMPRESSEDAUTOMATONINTERFACE_HPP 00002 #define COMPRESSEDAUTOMATONINTERFACE_HPP 00003 00004 #include "VoidSequenceAdapter.hpp" 00005 00006 /* 00007 00008 TODO 00009 00010 * require buildhelp() 00011 * require automaton() 00012 00013 */ 00014 00015 namespace lmu { namespace cis { namespace sis { 00016 00017 class CompressedAutomatonAdapterInterface { 00018 public: 00019 00020 virtual void Close() = 0; 00021 00022 virtual void Shrink() = 0; 00023 00024 virtual SinkState Add( const std::string& ) = 0; 00025 virtual SinkState Add( const S8* string ) = 0; 00026 virtual SinkState Add( const VoidSequence* ) = 0; 00027 00028 00029 virtual UINT number_of_states() const = 0; 00030 virtual UINT number_of_transitions() const = 0; 00031 virtual inline CompressedAutomaton* automaton() const = 0; 00032 00033 //TODO: add pure virtual getInitialState() here 00034 // virtual inline CompressedAutomaton* buildhelp() const = 0; 00035 // AddTarjanTable()? 00036 00037 protected: 00038 virtual void SortTransitions() = 0; 00039 virtual UINT suffixLink(const UINT& state) const = 0; 00040 00041 }; /* End of class CompressedAutomatonAdapterInterface */ 00042 00043 }}} /* End of namespace lmu::cis::sis */ 00044 00045 #endif /* end of include guard: COMPRESSEDAUTOMATONINTERFACE_HPP */