void MyClientRecycleThread::run() { while(!isFini()) { checkQueue(); if (!taskSet.empty()) { std::set<MySockClientTask *> willdel; std::set<MySockClientTask *>::iterator iter = taskSet.begin(); for (; iter != taskSet.end(); ++iter) { if ((*iter)->conn()) { mPool->addIoThread(*iter); willdel.insert(*iter); } // MySockClientTaskManager::getInstance().removeTask(*iter); // delete *iter; } for (iter = willdel.begin(); iter != willdel.end(); ++iter) { taskSet.erase(*iter); } // taskSet.clear(); } usleep(10*1000); } }
void Livre::sauvegarde(QXmlStreamWriter & stream) { stream.writeStartElement ("media"); stream.writeTextElement ("nom", nom ()); if(!cycle ().isEmpty ()) { stream.writeStartElement ("cycle"); stream.writeAttribute ("tome", QString::number (numeroTome ())); stream.writeCharacters (cycle()); stream.writeEndElement (); } stream.writeTextElement ("editeur", editeur ()); stream.writeTextElement ("sortie", date ().toString ()); if(!url ().isEmpty ()) { stream.writeTextElement ("url", url ().toString ()); } stream.writeTextElement ("genre", genre ()); stream.writeTextElement ("lu", QString::number (isFini ())); foreach(QString atlas, auteur ()) { stream.writeTextElement ("auteur", atlas); }
void MyServerMsgProcess::run() { while (!isFini()) { MySockTaskManager::getInstance().doProcessMsg(); usleep(5*1000); } }
void MyBaseServer::mainLoop() { while(!isFini()) { serverProcess(); usleep(3*1000); } }
void MyIoThread::run() { std::set<MySockTask *> taskWillDel; while(!isFini()) { checkQueue(); int retCode = epoll_wait(epfd, &epev[0], taskSet.size()/*常数级*/, 50/*ms*/); for (int i = 0; i < retCode; ++i) { if (epev[i].events&EPOLLIN || epev[i].events&EPOLLPRI) { MySockTask *task = static_cast<MySockTask*>(epev[i].data.ptr); int len = task->rcvBuffer(); if (len < 0) { taskWillDel.insert(task); } else if (len == 0) { taskWillDel.insert(task); } int getMsgRet = task->getMsg(); if (getMsgRet < 0) { taskWillDel.insert(task); } } else if (epev[i].events&EPOLLOUT) { MySockTask *task = static_cast<MySockTask*>(epev[i].data.ptr); int len = task->syncSendBuf(); if (len < 0) { taskWillDel.insert(task); } } else if (epev[i].events&EPOLLERR) { MySockTask *task = static_cast<MySockTask*>(epev[i].data.ptr); taskWillDel.insert(task); } } if (!taskWillDel.empty()) { std::set<MySockTask *>::iterator iter = taskWillDel.begin(); for (; iter != taskWillDel.end(); ++iter) { mPool->addRecycleThread(*iter); remove(*iter); } taskWillDel.clear(); } usleep(5000); } }
void BandeDessine::sauvegarde(QXmlStreamWriter & stream) { stream.writeStartElement("media"); stream.writeTextElement("nom", nom()); stream.writeTextElement("date", date().toString()); stream.writeTextElement("genre", genre()); stream.writeTextElement("url", url().toString()); stream.writeTextElement("fini", QString::number(isFini())); stream.writeTextElement("lu", QString::number(isLu())); stream.writeTextElement("encoursachat", QString::number(isEnCoursAchat())); foreach(QString artemis, getAuteur()) { stream.writeTextElement("auteur", artemis); }
void Film::sauvegarde(QXmlStreamWriter & stream) { qDebug()<<"Sauvegade de "<<nom(); stream.writeStartElement("media"); stream.writeTextElement("nom", nom()); stream.writeTextElement("genre", genre()); stream.writeTextElement("date", date().toString("d/M/yyyy")); stream.writeTextElement("vue", QString::number(isFini())); stream.writeTextElement("url", url().toString()); stream.writeTextElement("type", getType()); stream.writeTextElement("realisateur", getRealisateur()); stream.writeTextElement("scenariste", getScenariste()); stream.writeTextElement("support", QString::number(getSupport())); stream.writeTextElement("duree", getDuree().toString()); foreach(QString jupiter, getActeursPrincipaux()) { stream.writeTextElement("acteur", jupiter); }
void MyRecycleThread::run() { while(!isFini()) { checkQueue(); if (!taskSet.empty()) { std::set<MySockTask *>::iterator iter = taskSet.begin(); for (; iter != taskSet.end(); ++iter) { if (NULL != *iter) { MySockTaskManager::getInstance().removeTask(*iter); delete *iter; } } taskSet.clear(); } usleep(10*1000); } }