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();
  }
Example #3
0
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());
    }