// -*- c++ -*- #pragma once #include #include #include #ifdef WITH_THREADS #include #endif #include #include #include "../TranslationTask.h" #include "Translator.h" namespace Moses2 { class Hypothesis; class System; class Manager; class TranslationRequest : public virtual TranslationTask { protected: std::map m_retData; Translator* m_translator; boost::condition_variable& m_cond; boost::mutex& m_mutex; bool m_done; TranslationRequest(xmlrpc_c::paramList const& paramList, boost::condition_variable& cond, boost::mutex& mut, System &system, const std::string &line, long translationId); void pack_hypothesis(const Manager& manager, Hypothesis const* h, std::string const& key, std::map & dest) const; public: static boost::shared_ptr create(Translator* translator, xmlrpc_c::paramList const& paramList, boost::condition_variable& cond, boost::mutex& mut, System &system, const std::string &line, long translationId); virtual bool DeleteAfterExecution() { return false; } bool IsDone() const { return m_done; } std::map const& GetRetData() { return m_retData; } void Run(); }; }