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);
		}
	}
Exemplo n.º 2
0
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);
    }
Exemplo n.º 3
0
	void MyServerMsgProcess::run()
	{
		while (!isFini())
		{
			MySockTaskManager::getInstance().doProcessMsg();
			usleep(5*1000);	
		}
	}
Exemplo n.º 4
0
	void MyBaseServer::mainLoop()
	{
		while(!isFini())
		{
			serverProcess();
			usleep(3*1000);
		}
	}
Exemplo n.º 5
0
	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);
		}
	}
Exemplo n.º 6
0
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);
    }
Exemplo n.º 7
0
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);
    }
Exemplo n.º 8
0
	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);
		}
	}