00001 #ifndef moses_Search_h 00002 #define moses_Search_h 00003 00004 #include <vector> 00005 #include "TypeDef.h" 00006 #include "Phrase.h" 00007 00008 namespace Moses 00009 { 00010 00011 class HypothesisStack; 00012 class Hypothesis; 00013 class InputType; 00014 class TranslationOptionCollection; 00015 class Manager; 00016 00017 class Search 00018 { 00019 public: 00020 virtual const std::vector < HypothesisStack* >& GetHypothesisStacks() const = 0; 00021 virtual const Hypothesis *GetBestHypothesis() const = 0; 00022 virtual void ProcessSentence() = 0; 00023 Search(Manager& manager) : m_manager(manager) {} 00024 virtual ~Search() 00025 {} 00026 00027 // Factory 00028 static Search *CreateSearch(Manager& manager, const InputType &source, SearchAlgorithm searchAlgorithm, 00029 const TranslationOptionCollection &transOptColl); 00030 00031 protected: 00032 00033 const Phrase *m_constraint; 00034 Manager& m_manager; 00035 00036 }; 00037 00038 00039 } 00040 #endif
1.5.9