| | |
| // Generic helper definitions for shared library support | |
| using namespace std; | |
| using namespace Moses2; | |
| extern "C" EXPORT MosesApiErrorCode __stdcall GetMosesSystem(const char* filePath, Moses2::Moses2Wrapper * *pObject) { | |
| if (*pObject == NULL) { | |
| *pObject = new Moses2::Moses2Wrapper(filePath); | |
| return MS_API_OK; | |
| } | |
| else { | |
| return MS_API_E_FAILURE; | |
| } | |
| } | |
| extern "C" EXPORT MosesApiErrorCode __stdcall Translate(Moses2::Moses2Wrapper * pObject, long id, const char* input, char** output) { | |
| if (pObject != NULL) | |
| { | |
| std::string tr = pObject->Translate(input, id); | |
| *output = Moses2Wrapper::CopyString(tr.c_str()); | |
| return MS_API_OK; | |
| } | |
| else { | |
| return MS_API_E_FAILURE; | |
| } | |
| } | |
| extern "C" EXPORT MosesApiErrorCode __stdcall FreeMemory(char* output) { | |
| if (output != nullptr) { | |
| Moses2Wrapper::Free(output); | |
| return MS_API_OK; | |
| } | |
| else { | |
| return MS_API_E_FAILURE; | |
| } | |
| } | |
| extern "C" EXPORT MosesApiErrorCode __stdcall ReleaseSystem(Moses2::Moses2Wrapper **pObject) { | |
| if (*pObject != NULL) | |
| { | |
| delete* pObject; | |
| *pObject = NULL; | |
| return MS_API_OK; | |
| } | |
| else { | |
| return MS_API_E_FAILURE; | |
| } | |
| } | |
| extern "C" EXPORT MosesApiErrorCode __stdcall EngineVersion() { | |
| //std::cout << "windows build on v1142/ msvc 14.27.29110"<< std::endl; | |
| std::cout << "0.0.1" << std::endl; | |
| return MS_API_OK; | |
| } |