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/other-builds/MosesManagedDLL/ManagedMoses.cpp')
-rw-r--r--contrib/other-builds/MosesManagedDLL/ManagedMoses.cpp122
1 files changed, 17 insertions, 105 deletions
diff --git a/contrib/other-builds/MosesManagedDLL/ManagedMoses.cpp b/contrib/other-builds/MosesManagedDLL/ManagedMoses.cpp
index 0ba728360..da8b2393c 100644
--- a/contrib/other-builds/MosesManagedDLL/ManagedMoses.cpp
+++ b/contrib/other-builds/MosesManagedDLL/ManagedMoses.cpp
@@ -1,7 +1,3 @@
-#define NOMINMAX // Windows max macro collides with std::
-#include <Windows.h>
-#include <memory>
-#include <vcclr.h>
#include <msclr/marshal_cppstd.h>
#include "Moses2Wrapper.h"
@@ -12,105 +8,21 @@ using namespace msclr::interop;
namespace Moses {
public ref class Moses2Wrapper
{
- public:
- Moses2Wrapper(String^ filePath) {
- const std::string standardString = marshal_as<std::string>(filePath);
- m_pWrapper = new Moses2::Moses2Wrapper(standardString);
- }
- ~Moses2Wrapper() { this->!Moses2Wrapper(); }
- String^ Translate(String^ input) {
- const std::string standardString = marshal_as<std::string>(input);
- std::string output = m_pWrapper->Translate(standardString);
- //Console::WriteLine(output);
- String^ str = gcnew String(output.c_str());
- return str;
- }
-
- protected:
- !Moses2Wrapper() { delete m_pWrapper; m_pWrapper = nullptr; }
- private:
- Moses2::Moses2Wrapper *m_pWrapper;
+ public:
+ Moses2Wrapper(String^ filePath) {
+ const std::string standardString = marshal_as<std::string>(filePath);
+ m_pWrapper = new Moses2::Moses2Wrapper(standardString);
+ }
+ ~Moses2Wrapper() { this->!Moses2Wrapper(); }
+ String^ Translate(String^ input, long requestId) {
+ const std::string standardString = marshal_as<std::string>(input);
+ std::string output = m_pWrapper->Translate(standardString, requestId);
+ String^ str = gcnew String(output.c_str());
+ return str;
+ }
+ protected:
+ !Moses2Wrapper() { delete m_pWrapper; m_pWrapper = nullptr; }
+ private:
+ Moses2::Moses2Wrapper *m_pWrapper;
};
-}
-/*
-public class ManagedMoses
-{
- Moses2::Moses2Wrapper *m_Instance;
-public:
- ManagedMoses(String^ filepath) {
- const std::string standardString = marshal_as<std::string>(filepath);
- m_Instance = new Moses2::Moses2Wrapper(standardString);
-
- }
- String^ Translate(String^ input){
- const std::string standardString = marshal_as<std::string>(input);
- std::string output = m_Instance->Translate(standardString);
- //Console::WriteLine(output);
- String^ str = gcnew String(output.c_str());
- return str;
- }
-};
-
-
-/*
-#include <winsock2.h>
-#ifndef WIN32
-#define WIN32
-#endif
-#include <msclr/marshal_cppstd.h>
-#include "legacy/Parameter.h"
-#include "System.h"
-
-using namespace System;
-using namespace msclr::interop;
-
-// A wrapper around Faiss that lets you build indexes
-// Right now just proof-of-concept code to makes sure it all works from C#,
-// eventually may want to rework the interface, or possibly look at extending
-// FaissSharp to support the windows dll
-
-namespace Moses {
-
-
-
- public ref class Parameter
- {
- public:
- Parameter() { m_pWrapper = new Moses2::Parameter(); }
- ~Parameter() { this->!Parameter(); }
- bool LoadParams(String^ filePath) {
- const std::string standardString = marshal_as<std::string>(filePath);
- auto flag = m_pWrapper->LoadParam(standardString);
- return bool(flag);
- }
- Parameter* GetInstance()
- {
- return m_pWrapper;
- }
- protected:
- !Parameter() { delete m_pWrapper; m_pWrapper = nullptr; }
- private:
- Moses2::Parameter* m_pWrapper;
- };
-
-
- public ref class System {
- public:
- System(const Parameter^ paramsArg) {
- new Moses2::System(paramsArg->GetInstance());
- }
- ~System() { this->!System(); }
- protected:
- !System() { delete m_sWrapper; m_sWrapper = nullptr; }
- private:
- Moses2::System* m_sWrapper;
- Moses2::Parameter* paramArgs;
- };
-
-
-
-
-
-}
-
-*/ \ No newline at end of file
+} \ No newline at end of file