From 8bf97426557cf3d9bdd48a72a37dd8496b24c56f Mon Sep 17 00:00:00 2001 From: zens Date: Mon, 7 Aug 2006 18:29:35 +0000 Subject: move CreateTranslationOptionCollection call into Manager some code cleaning git-svn-id: https://mosesdecoder.svn.sourceforge.net/svnroot/mosesdecoder/trunk@534 1f5c12ca-751b-0410-a591-d2e778427230 --- misc/processPhraseTable.cpp | 4 ++-- moses-cmd/src/Main.cpp | 6 +----- moses/src/ConfusionNet.cpp | 4 +++- moses/src/Input.h | 2 +- moses/src/Manager.cpp | 12 +++++++----- moses/src/Manager.h | 8 ++++++-- moses/src/Sentence.cpp | 4 +++- 7 files changed, 23 insertions(+), 17 deletions(-) diff --git a/misc/processPhraseTable.cpp b/misc/processPhraseTable.cpp index 9a92daeac..0dfc51960 100644 --- a/misc/processPhraseTable.cpp +++ b/misc/processPhraseTable.cpp @@ -25,7 +25,7 @@ std::ostream& operator<<(std::ostream& out,const std::vector& x) out<<*i<<' '; return out; } - +#if 0 FactorType getFactorType(int i) { switch(i) { case 0: return Surface; @@ -35,7 +35,7 @@ FactorType getFactorType(int i) { } return Surface; } - +#endif FactorCollection factorCollection; diff --git a/moses-cmd/src/Main.cpp b/moses-cmd/src/Main.cpp index 4e8fe56f8..ef3c3cd25 100644 --- a/moses-cmd/src/Main.cpp +++ b/moses-cmd/src/Main.cpp @@ -117,11 +117,8 @@ int main(int argc, char* argv[]) { TRACE_ERR("TRANSLATING: " << *source <<"\n"); - TranslationOptionCollection *translationOptionCollection=source->CreateTranslationOptionCollection(); - assert(translationOptionCollection); - staticData.InitializeBeforeSentenceProcessing(*source); - Manager manager(*source, *translationOptionCollection, staticData); + Manager manager(*source, staticData); manager.ProcessSentence(); inputOutput->SetOutput(manager.GetBestHypothesis(), source->GetTranslationId(), staticData.GetReportSourceSpan(), @@ -142,7 +139,6 @@ int main(int argc, char* argv[]) // delete source // inputOutput->Release(source); staticData.CleanUpAfterSentenceProcessing(); - delete translationOptionCollection; delete source; } diff --git a/moses/src/ConfusionNet.cpp b/moses/src/ConfusionNet.cpp index 8956d1169..af4a49a7c 100644 --- a/moses/src/ConfusionNet.cpp +++ b/moses/src/ConfusionNet.cpp @@ -213,6 +213,8 @@ TranslationOptionCollection* ConfusionNet::CreateTranslationOptionCollection() const { size_t maxNoTransOptPerCoverage = StaticData::Instance()->GetMaxNoTransOptPerCoverage(); - return new TranslationOptionCollectionConfusionNet(*this, maxNoTransOptPerCoverage); + TranslationOptionCollection *rv= new TranslationOptionCollectionConfusionNet(*this, maxNoTransOptPerCoverage); + assert(rv); + return rv; } diff --git a/moses/src/Input.h b/moses/src/Input.h index c152ba4b2..5737ca969 100644 --- a/moses/src/Input.h +++ b/moses/src/Input.h @@ -37,7 +37,7 @@ protected: virtual void Print(std::ostream&) const=0; - virtual TargetPhraseCollection const* CreateTargetPhraseCollection(PhraseDictionaryBase const& d,const WordsRange& r) const=0; + //virtual TargetPhraseCollection const* CreateTargetPhraseCollection(PhraseDictionaryBase const& d,const WordsRange& r) const=0; virtual TranslationOptionCollection* CreateTranslationOptionCollection() const=0; virtual Phrase GetSubString(const WordsRange&) const =0; diff --git a/moses/src/Manager.cpp b/moses/src/Manager.cpp index ffbe31242..f109609a2 100755 --- a/moses/src/Manager.cpp +++ b/moses/src/Manager.cpp @@ -29,16 +29,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA #include "LatticePathCollection.h" #include "TranslationOption.h" #include "LMList.h" +#include "TranslationOptionCollection.h" using namespace std; -Manager::Manager(InputType const& source, - TranslationOptionCollection& toc, - StaticData &staticData) +Manager::Manager(InputType const& source, StaticData &staticData) :m_source(source) ,m_hypoStack(source.GetSize() + 1) ,m_staticData(staticData) -,m_possibleTranslations(toc) //dynamic_cast(source)) +,m_possibleTranslations(*source.CreateTranslationOptionCollection()) ,m_initialTargetPhrase(Output) { std::vector < HypothesisCollection >::iterator iterStack; @@ -50,7 +49,10 @@ Manager::Manager(InputType const& source, } } -Manager::~Manager() {} +Manager::~Manager() +{ + delete &m_possibleTranslations; +} /** * This is the main decoder loop that translates a sentence by expanding diff --git a/moses/src/Manager.h b/moses/src/Manager.h index 18aa59734..1af2878d1 100755 --- a/moses/src/Manager.h +++ b/moses/src/Manager.h @@ -28,13 +28,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA #include "StaticData.h" #include "TranslationOption.h" #include "HypothesisCollection.h" -#include "TranslationOptionCollectionText.h" +#include "TranslationOptionCollection.h" #include "LatticePathList.h" #include "SquareMatrix.h" #include "WordsBitmap.h" //#include "UnknownWordHandler.h" class LatticePath; +class TranslationOptionCollection; /** The Manager class implements a stack decoding algorithm. * Hypotheses are organized in stacks. One stack contains all hypothesis that have @@ -67,6 +68,9 @@ class LatticePath; class Manager { + Manager(); + Manager(Manager const&); + void operator=(Manager const&); protected: // data InputType const& m_source; /**< source sentence to be translated */ @@ -86,7 +90,7 @@ protected: void OutputHypoStack(int stack = -1); void OutputHypoStackSize(); public: - Manager(InputType const& source, TranslationOptionCollection&, StaticData &staticData); + Manager(InputType const& source, StaticData &staticData); ~Manager(); void ProcessSentence(); diff --git a/moses/src/Sentence.cpp b/moses/src/Sentence.cpp index 8c18c03eb..c5785fd56 100755 --- a/moses/src/Sentence.cpp +++ b/moses/src/Sentence.cpp @@ -50,7 +50,9 @@ TranslationOptionCollection* Sentence::CreateTranslationOptionCollection() const { size_t maxNoTransOptPerCoverage = StaticData::Instance()->GetMaxNoTransOptPerCoverage(); - return new TranslationOptionCollectionText(*this, maxNoTransOptPerCoverage); + TranslationOptionCollection *rv= new TranslationOptionCollectionText(*this, maxNoTransOptPerCoverage); + assert(rv); + return rv; } void Sentence::Print(std::ostream& out) const { -- cgit v1.2.3