示例#1
0
std::string DownloadTask::dump() {
	Json::Value root;

	root["url"] = GetUrl();
	root["download_path"] = GetDownloadPath();
	root["md5"] = GetMd5();
	root["file_size"] = Json::Value(GetFileSize());
	root["progress"] = Json::Value(GetProgress());
	root["breakpoint"] = Json::Value(GetBreakpoint());

	return root.toString();
}
示例#2
0
文件: File.cpp 项目: nightstyles/focp
ulong CFile::GetHostId()
{
#ifdef UNIX
	return gethostid();
#else
	static uint32 nHostId;
	static bool bInit = false;
	if(bInit)
		return nHostId;
	SystemLock();
	if(!bInit)
	{
		char* out = (char*)&nHostId;
		char sMac[20];
		if(!GetMacAddress(sMac))
		{
			nHostId = 0xFFFFFFFF;
			bInit = true;
			SystemUnLock();
			return nHostId;
		}
		static uint8 sSecret[10] = {0x7E,0xA6,0xD7,0xB1,0xC3,0xF2,0xE3,0x04,0xBE,0xCA};
		char md5Output[16];
		CBinary::MemoryCopy(sMac+6, sSecret, 10);
		GetMd5((uint8*)md5Output, (uint8*)sMac, 16);
		if(CBinary::U32Code(1) != 1)
		{
			out[0] = md5Output[1] + md5Output[6] + md5Output[11];
			out[1] = md5Output[3] + md5Output[8] + md5Output[13];
			out[2] = md5Output[5] + md5Output[10] + md5Output[15];
			out[3] = md5Output[0] & 0x7F;
		}
		else
		{
			out[3] = md5Output[1] + md5Output[6] + md5Output[11];
			out[2] = md5Output[3] + md5Output[8] + md5Output[13];
			out[1] = md5Output[5] + md5Output[10] + md5Output[15];
			out[0] = md5Output[0] & 0x7F;
		}
		bInit = true;
	}
	SystemUnLock();
	return nHostId;
#endif
}