|
@@ -6,10 +6,61 @@
|
|
|
//}
|
|
|
|
|
|
|
|
|
+#include <QFile>
|
|
|
+#include <QProcess>
|
|
|
+
|
|
|
+#include <QFileInfo>
|
|
|
+
|
|
|
+#include <iostream>
|
|
|
+
|
|
|
|
|
|
int ExecCarmakerWork(int64_t workid,std::string strInputName, std::string strOutputName, std::string strcmd,
|
|
|
std::shared_ptr<char> pinput_ptr,int ninputsize,
|
|
|
std::shared_ptr<char> & poutput_ptr,int & noutputsize)
|
|
|
{
|
|
|
- return 0;
|
|
|
+ QFile xFile;
|
|
|
+ xFile.setFileName(strInputName.data());
|
|
|
+ if(xFile.open(QIODevice::ReadWrite))
|
|
|
+ {
|
|
|
+ xFile.write(pinput_ptr.get(),ninputsize);
|
|
|
+ xFile.close();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ std::cout<<" Fail write input data. File Name: "<<strInputName<<std::endl;
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ (void)workid;
|
|
|
+
|
|
|
+ QProcess * pProc = new QProcess();
|
|
|
+
|
|
|
+ std::cout<<" cmd "<<strcmd<<std::endl;
|
|
|
+ pProc->start(strcmd.data());
|
|
|
+ pProc->waitForFinished();
|
|
|
+
|
|
|
+ QFileInfo fileinfo(strOutputName.data());
|
|
|
+ if(!fileinfo.isFile())
|
|
|
+ {
|
|
|
+ std::cout<<" exec fail."<<std::endl;
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ QFile xFileout;
|
|
|
+ xFileout.setFileName(strOutputName.data());
|
|
|
+ if(xFileout.open(QIODevice::ReadOnly))
|
|
|
+ {
|
|
|
+ QByteArray ba = xFileout.readAll();
|
|
|
+ noutputsize = ba.size();
|
|
|
+ std::cout<<" file size: "<<noutputsize<<std::endl;
|
|
|
+ poutput_ptr = std::shared_ptr<char>(new char[static_cast<unsigned long>(noutputsize) ]);
|
|
|
+ memcpy(poutput_ptr.get(),ba.data(),noutputsize);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ std::cout<<" can't open output file."<<std::endl;
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 1;
|
|
|
}
|