#pragma once #include #include namespace Moses2 { class Parameter; class System; extern "C" { enum MosesApiErrorCode { MS_API_OK, MS_API_E_FAILURE, MS_API_E_INPUT, MS_API_E_TIMEOUT }; } class Moses2Wrapper { Parameter* m_param; System* m_system; public: Moses2Wrapper(const std::string& filePath); ~Moses2Wrapper(); std::string Translate(const std::string& input, long id); void UpdateLMPath(const std::string& filePath); int getEngineVersion(); static char* CopyString(const char* str) { int32_t size = (int32_t)strlen(str); char* obj = (char*)malloc(size + 1); memcpy(obj, str, size); obj[size] = '\0'; return obj; } static void Free(void* ptr) { free(ptr); } }; }