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:
authorHieu Hoang <hieuhoang@gmail.com>2014-10-03 19:08:15 +0400
committerHieu Hoang <hieuhoang@gmail.com>2014-10-03 19:08:15 +0400
commit2f290f1d6d84be68540c5b1d3ada7fa6c133c2ff (patch)
treecd4bd25d6974849f2c977a686201a768df32a135
parent65bd64ca6ab7b3e5ad54e3fc981173fc9fd0744c (diff)
standardize GetIOWrapper().
-rw-r--r--moses-chart-cmd/Main.cpp31
-rw-r--r--moses-chart-cmd/Main.h6
-rw-r--r--moses-cmd/Main.cpp2
-rw-r--r--moses/IOWrapper.cpp45
-rw-r--r--moses/IOWrapper.h3
-rw-r--r--moses/IOWrapperChart.cpp30
-rw-r--r--moses/IOWrapperChart.h2
7 files changed, 58 insertions, 61 deletions
diff --git a/moses-chart-cmd/Main.cpp b/moses-chart-cmd/Main.cpp
index 74949b2de..5041d6d87 100644
--- a/moses-chart-cmd/Main.cpp
+++ b/moses-chart-cmd/Main.cpp
@@ -123,7 +123,7 @@ int main(int argc, char* argv[])
UTIL_THROW_IF2(!staticData.IsChart(), "Must be SCFG model");
// set up read/writing class
- IOWrapperChart *ioWrapper = GetIOWrapper(staticData);
+ IOWrapperChart *ioWrapper = IOWrapperChart::GetIOWrapper(staticData);
// check on weights
const ScoreComponentCollection& weights = staticData.GetAllWeights();
@@ -188,32 +188,3 @@ int main(int argc, char* argv[])
#endif
}
-IOWrapperChart *GetIOWrapper(const StaticData &staticData)
-{
- IOWrapperChart *ioWrapper;
- const std::vector<FactorType> &inputFactorOrder = staticData.GetInputFactorOrder()
- ,&outputFactorOrder = staticData.GetOutputFactorOrder();
- FactorMask inputFactorUsed(inputFactorOrder);
-
- // io
- if (staticData.GetParam("input-file").size() == 1) {
- VERBOSE(2,"IO from File" << endl);
- string filePath = staticData.GetParam("input-file")[0];
-
- ioWrapper = new IOWrapperChart(inputFactorOrder, outputFactorOrder, inputFactorUsed
- , staticData.GetNBestSize()
- , staticData.GetNBestFilePath()
- , filePath);
- } else {
- VERBOSE(1,"IO from STDOUT/STDIN" << endl);
- ioWrapper = new IOWrapperChart(inputFactorOrder, outputFactorOrder, inputFactorUsed
- , staticData.GetNBestSize()
- , staticData.GetNBestFilePath());
- }
- ioWrapper->ResetTranslationId();
-
- IFVERBOSE(1)
- PrintUserTime("Created input-output object");
-
- return ioWrapper;
-}
diff --git a/moses-chart-cmd/Main.h b/moses-chart-cmd/Main.h
index c57321f04..5c660b826 100644
--- a/moses-chart-cmd/Main.h
+++ b/moses-chart-cmd/Main.h
@@ -36,10 +36,4 @@ POSSIBILITY OF SUCH DAMAGE.
#include "moses/StaticData.h"
-namespace MosesChartCmd
-{
-class IOWrapperChart;
-}
-
int main(int argc, char* argv[]);
-MosesChartCmd::IOWrapperChart *GetIOWrapper(const Moses::StaticData &staticData);
diff --git a/moses-cmd/Main.cpp b/moses-cmd/Main.cpp
index 398a3a824..994837d4a 100644
--- a/moses-cmd/Main.cpp
+++ b/moses-cmd/Main.cpp
@@ -116,7 +116,7 @@ int main(int argc, char** argv)
srand(time(NULL));
// set up read/writing class
- IOWrapper* ioWrapper = GetIOWrapper(staticData);
+ IOWrapper* ioWrapper = IOWrapper::GetIOWrapper(staticData);
if (!ioWrapper) {
cerr << "Error; Failed to create IO object" << endl;
exit(1);
diff --git a/moses/IOWrapper.cpp b/moses/IOWrapper.cpp
index a4d28bc1d..2a0bd38e9 100644
--- a/moses/IOWrapper.cpp
+++ b/moses/IOWrapper.cpp
@@ -633,29 +633,7 @@ void IOWrapper::OutputLatticeMBRNBestList(const vector<LatticeMBRSolution>& solu
OutputLatticeMBRNBest(*m_nBestStream, solutions,translationId);
}
-bool ReadInput(IOWrapper &ioWrapper, InputTypeEnum inputType, InputType*& source)
-{
- if (source) delete source;
- switch(inputType) {
- case SentenceInput:
- source = ioWrapper.GetInput(new Sentence);
- break;
- case ConfusionNetworkInput:
- source = ioWrapper.GetInput(new ConfusionNet);
- break;
- case WordLatticeInput:
- source = ioWrapper.GetInput(new WordLattice);
- break;
- default:
- TRACE_ERR("Unknown input type: " << inputType << "\n");
- source = NULL;
- }
- return (source ? true : false);
-}
-
-
-
-IOWrapper *GetIOWrapper(const StaticData &staticData)
+IOWrapper *IOWrapper::GetIOWrapper(const StaticData &staticData)
{
IOWrapper *ioWrapper;
const std::vector<FactorType> &inputFactorOrder = staticData.GetInputFactorOrder()
@@ -680,5 +658,26 @@ IOWrapper *GetIOWrapper(const StaticData &staticData)
return ioWrapper;
}
+
+bool ReadInput(IOWrapper &ioWrapper, InputTypeEnum inputType, InputType*& source)
+{
+ if (source) delete source;
+ switch(inputType) {
+ case SentenceInput:
+ source = ioWrapper.GetInput(new Sentence);
+ break;
+ case ConfusionNetworkInput:
+ source = ioWrapper.GetInput(new ConfusionNet);
+ break;
+ case WordLatticeInput:
+ source = ioWrapper.GetInput(new WordLattice);
+ break;
+ default:
+ TRACE_ERR("Unknown input type: " << inputType << "\n");
+ source = NULL;
+ }
+ return (source ? true : false);
+}
+
}
diff --git a/moses/IOWrapper.h b/moses/IOWrapper.h
index b76adf8bd..3ff492179 100644
--- a/moses/IOWrapper.h
+++ b/moses/IOWrapper.h
@@ -95,6 +95,8 @@ protected:
Moses::OutputCollector *m_latticeSamplesCollector;
public:
+ static IOWrapper *GetIOWrapper(const Moses::StaticData &staticData);
+
IOWrapper(const std::vector<Moses::FactorType> &inputFactorOrder
, const std::vector<Moses::FactorType> &outputFactorOrder
, const Moses::FactorMask &inputFactorUsed
@@ -147,7 +149,6 @@ public:
};
-IOWrapper *GetIOWrapper(const Moses::StaticData &staticData);
bool ReadInput(IOWrapper &ioWrapper, Moses::InputTypeEnum inputType, Moses::InputType*& source);
void OutputLanguageModelOrder(std::ostream &out, const Moses::Hypothesis *hypo, Moses::Manager &manager);
void OutputBestSurface(std::ostream &out, const Moses::Hypothesis *hypo, const std::vector<Moses::FactorType> &outputFactorOrder, char reportSegmentation, bool reportAllFactors);
diff --git a/moses/IOWrapperChart.cpp b/moses/IOWrapperChart.cpp
index 31d298fdd..08553ad66 100644
--- a/moses/IOWrapperChart.cpp
+++ b/moses/IOWrapperChart.cpp
@@ -1016,5 +1016,35 @@ void IOWrapperChart::OutputAlignment(vector< set<size_t> > &retAlignmentsS2T, co
}
}
+IOWrapperChart *IOWrapperChart::GetIOWrapper(const StaticData &staticData)
+{
+ IOWrapperChart *ioWrapper;
+ const std::vector<FactorType> &inputFactorOrder = staticData.GetInputFactorOrder()
+ ,&outputFactorOrder = staticData.GetOutputFactorOrder();
+ FactorMask inputFactorUsed(inputFactorOrder);
+
+ // io
+ if (staticData.GetParam("input-file").size() == 1) {
+ VERBOSE(2,"IO from File" << endl);
+ string filePath = staticData.GetParam("input-file")[0];
+
+ ioWrapper = new IOWrapperChart(inputFactorOrder, outputFactorOrder, inputFactorUsed
+ , staticData.GetNBestSize()
+ , staticData.GetNBestFilePath()
+ , filePath);
+ } else {
+ VERBOSE(1,"IO from STDOUT/STDIN" << endl);
+ ioWrapper = new IOWrapperChart(inputFactorOrder, outputFactorOrder, inputFactorUsed
+ , staticData.GetNBestSize()
+ , staticData.GetNBestFilePath());
+ }
+ ioWrapper->ResetTranslationId();
+
+ IFVERBOSE(1)
+ PrintUserTime("Created input-output object");
+
+ return ioWrapper;
+}
+
}
diff --git a/moses/IOWrapperChart.h b/moses/IOWrapperChart.h
index 1194e43b3..cc287b450 100644
--- a/moses/IOWrapperChart.h
+++ b/moses/IOWrapperChart.h
@@ -113,6 +113,8 @@ protected:
, std::string &lastName );
public:
+ static IOWrapperChart *GetIOWrapper(const Moses::StaticData &staticData);
+
IOWrapperChart(const std::vector<Moses::FactorType> &inputFactorOrder
, const std::vector<Moses::FactorType> &outputFactorOrder
, const Moses::FactorMask &inputFactorUsed