Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/moses2/System.h')
-rw-r--r--contrib/moses2/System.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/contrib/moses2/System.h b/contrib/moses2/System.h
new file mode 100644
index 000000000..1d60e96a0
--- /dev/null
+++ b/contrib/moses2/System.h
@@ -0,0 +1,84 @@
+/*
+ * System.h
+ *
+ * Created on: 23 Oct 2015
+ * Author: hieu
+ */
+
+#pragma once
+#include <vector>
+#include <deque>
+#include <boost/thread/tss.hpp>
+#include <boost/pool/object_pool.hpp>
+#include <boost/shared_ptr.hpp>
+#include "FF/FeatureFunctions.h"
+#include "Weights.h"
+#include "MemPool.h"
+#include "Recycler.h"
+#include "legacy/FactorCollection.h"
+#include "legacy/Parameter.h"
+#include "TypeDef.h"
+#include "legacy/Bitmaps.h"
+#include "legacy/OutputCollector.h"
+#include "parameters/AllOptions.h"
+
+namespace Moses2
+{
+namespace NSCubePruning
+{
+class Stack;
+}
+
+class FeatureFunction;
+class StatefulFeatureFunction;
+class PhraseTable;
+class HypothesisBase;
+
+class System
+{
+public:
+ const Parameter &params;
+ AllOptions options;
+ FeatureFunctions featureFunctions;
+ Weights weights;
+ std::vector<const PhraseTable*> mappings;
+
+ std::vector<size_t> maxChartSpans;
+ bool isPb;
+
+ mutable boost::shared_ptr<OutputCollector> bestCollector, nbestCollector, detailedTranslationCollector;
+
+ // moses.ini params
+ int cpuAffinityOffset;
+ int cpuAffinityOffsetIncr;
+
+ System(const Parameter &paramsArg);
+ virtual ~System();
+
+ MemPool &GetSystemPool() const;
+ MemPool &GetManagerPool() const;
+ FactorCollection &GetVocab() const;
+
+ Recycler<HypothesisBase*> &GetHypoRecycler() const;
+
+ Batch &GetBatch(MemPool &pool) const;
+
+protected:
+ mutable FactorCollection m_vocab;
+ mutable boost::thread_specific_ptr<MemPool> m_managerPool;
+ mutable boost::thread_specific_ptr<MemPool> m_systemPool;
+
+ mutable boost::thread_specific_ptr<Recycler<HypothesisBase*> > m_hypoRecycler;
+
+ mutable boost::thread_specific_ptr<Batch> m_batch;
+
+ void LoadWeights();
+ void LoadMappings();
+ void LoadDecodeGraphBackoff();
+
+ void IsPb();
+
+};
+
+}
+