int CCommProxy::SendJobsToRemote(vector<CJob*> &vJobs) { CJob *pJob = NULL; char *dataBuf = NULL; int bufSize = 0; vector<string> vSerializedJobs; for(vector<CJob*>::iterator iter = vJobs.begin(); iter != vJobs.end(); ++iter) { pJob = *iter; pJob->Serialize(&dataBuf,bufSize); if(m_pConfig->compress) { vector<uint8_t> compress_out; compress_buffer(dataBuf,bufSize,compress_out); delete dataBuf; //delete original bufffer dataBuf = (char *)&compress_out[0]; //address of the vec buffer bufSize = compress_out.size(); //compressed size string strData(dataBuf,bufSize); vSerializedJobs.push_back(strData); } else { string strData(dataBuf,bufSize); vSerializedJobs.push_back(strData); delete dataBuf; } delete pJob; } pClient->SendJobsToRemote(vSerializedJobs.size(),vSerializedJobs); return SUCCESS; }
int CCommProxy::SendCompletedJobsToRemote(std::vector<CJob*> &vJobs) { CJob *pJob = NULL; char *dataBuf = NULL; int bufSize = 0; vector<string> vSerializedJobs; for(vector<CJob*>::iterator iter = vJobs.begin(); iter != vJobs.end(); ++iter) { pJob = *iter; pJob->Serialize(&dataBuf,bufSize); string strData(dataBuf,bufSize); vSerializedJobs.push_back(strData); delete dataBuf; } pClient->SendCompletedJobsToRemote(vSerializedJobs.size(),vSerializedJobs); return SUCCESS; }