/** * Essa classe invoca os metodos do tradutor em Python * Onde efetua a tradução do texto passado por parametro * * @author Erickson Silva * @date 14/10/2013 * */ #include "pyTradutor.h" namespace Tradutor { PyTradutor::PyTradutor() { DPRINTF("Done!\n"); } PyTradutor::~PyTradutor() { Py_DECREF(pName); Py_DECREF(pModule); Py_DECREF(pDict); Py_DECREF(pFunc); Py_DECREF(pArgs); Py_DECREF(pResult); DDDPRINTF("PyTranslator finalized!\n"); } /** * Traduz um texto (char * input) para uma string contendo a * traducao para glosa * * @param input texto de entrada * @return string contendo os tokens em glosa traduzidos. **/ char * PyTradutor::convertStringToGlosa(const char * input) { if(!isRunning){ Py_Initialize(); pName = PyString_FromString("ModuleTranslate"); assert(pName!=NULL); pModule = PyImport_Import(pName); PyErr_Print(); assert(pModule!=NULL); pDict = PyModule_GetDict(pModule); PyErr_Print(); assert(pDict!=NULL); pFunc = PyDict_GetItemString(pDict, "iniciar"); PyErr_Print(); assert(pFunc!=NULL); isRunning = 1; } pArgs = PyTuple_Pack(1,PyString_FromString(input)); PyErr_Print(); assert(pArgs!=NULL); pResult = PyObject_CallObject(pFunc, pArgs); PyErr_Print(); assert(pResult!=NULL); return PyString_AsString(pResult); } }