示例#1
0
bool AEDocument::SaveDocument()
{
	QFile file(projectFilePath());
	
	if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
		return false;
	
	QXmlStreamWriter* xmlWriter = new QXmlStreamWriter();
	
	xmlWriter->setDevice(&file);
	
	xmlWriter->writeStartDocument();
	xmlWriter->writeStartElement("AnimaEditorProject");
	
	SaveProjectData(xmlWriter);
	SaveModels(xmlWriter);
	
	xmlWriter->writeEndElement();
	xmlWriter->writeEndDocument();
	
	delete xmlWriter;
	
	_newDocument = false;
	
	return true;
}
示例#2
0
// UpdateModel 此处不是增量更新
int ModelUpdater::UpdateModel(long WORKER, long WORKERNUM, long STEP)
{
	char fname[128];
	sprintf(fname, "/data/xce/friendranknew/data/user_models.dat_%ld", WORKER);
	FILE* fp = fopen(fname, "wb");
	if (fp==NULL)
	{
		MCE_ERROR("ModelUpdater::UpdateModel(): "<<strerror(errno)<<": " << fname);
		return -1;
	}
	
	long totalUser = 0;
	long increUser = 0;
	int stepno = 0;
	map<USERID,UserModel> models;

	int usetime[8];
	memset(usetime, 0, 8*sizeof(int));
	time_t time_start = 0, time_end = 0;

	while (true)
	{
		//GetStepInterval(WORKER, WORKERNUM, STEP, stepno++, models);
		GetStepOverall(WORKER, WORKERNUM, STEP, stepno++, models);
		
		if ((increUser=models.size())>0)
		{
			time_start = time(NULL);
			ReadUserInfo(models, usetime);
			SaveModels(models, fp);
			models.clear();
			time_end = time(NULL);

			totalUser += increUser;
			MCE_INFO("0:"<<usetime[0]<<" 1:"<<usetime[1]<<" 2:"<<usetime[2]<<" 3:"<<usetime[3]<<" 4:"<<usetime[4]<<" 5:"<<usetime[5]<<" 6:"<<usetime[6]<<" 7:"<<usetime[7]<<"  | ["<<WORKER<<"] "<<time_end-time_start<<" | "<<increUser<<" / "<<totalUser);
		}

		if (increUser<STEP)
		{
			MCE_INFO("Worker["<<WORKER<<"] read "<<totalUser<<" users totally. byebye.");
			break;
		}
	}
	fclose(fp);
	return 0;
}//