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