void ProcessUnitList::pushUnit(boost::shared_ptr<org::esb::hive::job::ProcessUnit> unit) { //_unit_list.insert(unit); std::string uuid=org::esb::util::PUUID(); _unit_map[unit->_sequence]=uuid; org::esb::io::File file(_user_data_path+"/"+uuid); org::esb::io::FileOutputStream fos(&file); org::esb::io::ObjectOutputStream ous(&fos); ous.writeObject(unit); ous.close(); while(_unit_map.size()&&(*_unit_map.begin()).first==lastSequence){ std::cerr<<"lastSequence found:"<<lastSequence<<std::endl; std::string nuuid=(*_unit_map.begin()).second; org::esb::io::File infile(_user_data_path+"/"+nuuid); org::esb::io::FileInputStream infos(&infile); org::esb::io::ObjectInputStream inous(&infos); inous.readObject(unit); inous.close(); infos.close(); infile.deleteFile(); if(_func) _func(unit); /*foreach(boost::shared_ptr<Packet> p,(*_unit_list.begin())->_output_packets){ Task::pushBuffer(Ptr<Packet>(p)); }*/ _unit_map.erase(_unit_map.begin()); lastSequence++; } }
void ProcessUnitCollector::putProcessUnit(boost::shared_ptr<org::esb::hive::job::ProcessUnit > unit) { std::string name = _directory; name += "/"; std::string uuid = org::esb::util::PUUID(); name += uuid; org::esb::io::File out(name.c_str()); org::esb::io::FileOutputStream fos(&out); org::esb::io::ObjectOutputStream ous(&fos); ous.writeObject(unit); ous.close(); }
int ZDMHttpEx::postData(const QString &url, QByteArray &in, QStringList &headers, QByteArray &out) { QDataStream ins(&in, QIODevice::ReadOnly); QDataStream ous(&out, QIODevice::WriteOnly); CURLcode r; CURL *curl; DBG("post <%s>\n", url); _isPost = true; curl = curl_easy_init(); if(curl == NULL) { r = CURLE_FAILED_INIT; emit signal_result(_arg, false, tr("HTTP POST_DATA CURLE=%1").arg(r)); return r; } curl_slist *hlist = NULL; foreach(const QString& h, headers) { hlist = curl_slist_append(hlist, h.toLocal8Bit().data()); }