Example #1
0
int GetConcurrencyFactor()
{
	static Cache<int> Value;

	return Value.Get([]()
	{
		int ThreadCount = 0;

		for (int i = 0; i < GetCpuCount(); i++)
		{
			CpuInfo Info = GetCpuInfo(i);
			ThreadCount += Info.ThreadCount;
		}

		return ThreadCount;
	});
}
Example #2
0
std::string CSysInfo::GetAllInfo (void)
{
	struct sInfo 
	{
		map<string, string> *	pMap;
		string					Part;
	};

	sInfo Infos[ ] = {	{&m_mapCPU	, "CPU"		}, 
						{&m_mapOS	, "OS"		},
						{&m_mapVideo, "Video"	},
						{&m_mapDisc	, "Disk"	},
						{&m_mapMem	, "Memory"} };
	std::map<string, string>::iterator im;

	GetCpuInfo ();
	GetDiskInfo ();
	GetOSInfo ();
	GetVideoInfo ();
	GetMemInfo ();

	string strInfo;
	for(int i = 0; i < sizeof (Infos) / sizeof (sInfo); i++)
	{
		strInfo += "[ ";
		strInfo += Infos[ i ].Part + " ]\n";
		for(im = Infos[ i ].pMap->begin (); im != Infos[ i ].pMap->end (); im++)
		{
			strInfo += im->first;
			strInfo += " : ";
			strInfo += im->second;
			strInfo += "\n";
		}
	}

	return strInfo;
}
Example #3
0
/*====================================================================
 * 函数名    : vGenRegTermMsg
 * 功能      : 生成终端注册消息
 * 算法实现  : 
 * 参数说明  : 
 *				nIdx 标识是哪个的base
 * 返回值说明: 成功 生成的json字符串
 *			   失败 NULL             
 * ----------------------------------------------------------------------
 * 修改记录:
 * 日  期        版本        修改人        走读人        修改记录
 * 2015/1/13       v1.0        YLI                          创建
 * ====================================================================*/
json_t *vGenRegTermMsg(int nIdx)
{
	json_t *root;
	json_t *mt_info;
	json_t *netinfo;
	json_t *aps_addr;
	json_t *jt;
	const char *key;
	json_t *value;
	int n,size;
	char saCfgPath[L_PATH_MAX_LEN];
	char tmp[100];
	root = json_object();
	memset(tmp,0x00,sizeof tmp);
	memset(saCfgPath,0x00,sizeof saCfgPath);
	
	srand((unsigned)time(NULL));

	//set eventid
	if (json_object_set(root,"eventid",
		json_string("EV_REG_REQ")) == FAILUER)
	{
		json_decref(root);
		vLogErr("eventid set error!!!");
		return NULL;
	}
	//devid
	n = rand() % (S_RAND_RANG + _gstrpPid[nIdx].nTermCount);
	sprintf(tmp,"1.2.%02d",n);
	if (json_object_set(root,"devid",
		json_string(tmp)) == FAILUER)
	{
		json_decref(root);
		vLogErr("devid set error!!!");
		return NULL;
	}
	//devtype
	if(getenv("APP_PROFILE_PATH") == NULL)
	{
		json_decref(root);
		vLogErr("devtypes config file path error,please check evn value!!!");
		return NULL;
	}
	strcpy(saCfgPath,getenv("APP_PROFILE_PATH"));
	strcat(saCfgPath,"/devtypes.json");
	jt = tPflGetJsonObj(saCfgPath,K_DEVTYPE_KEY);
	if (jt == NULL)
	{
		json_decref(root);
		vLogErr("devtypes file open error,please check devtypes.json is exist!!!");
		return NULL;
	}
	
	
	if (json_is_array(jt))
	{
		size = json_array_size(jt);
		n = rand()%size;
		if (json_object_set(root,"devtype",
		json_array_get(jt,n)) == FAILUER)
		{
			json_decref(root);
			vLogErr("devtype set error!!!");
			return NULL;
		}	
	}

	/*mt_info*/
	mt_info = json_object();
	//devver
	if (json_object_set(mt_info,"devver",
		json_string("123")) == FAILUER)
	{
		json_decref(root);
		vLogErr("devver set error!!!");
		return NULL;
	}
	//devname
	json_object_set(mt_info,"devname",json_string("truelink"));
	//netinfo
	netinfo = json_object();
	json_object_set(netinfo,"ip",
		json_string(_gstrpShm->rc.nSrvIP));
	json_object_set(netinfo,"dns",
		json_string("172.16.0.65"));
	json_object_set(mt_info,"netinfo",netinfo);

	//aps_addr
	aps_addr = json_object();
	json_object_set(aps_addr,"domain",
		json_string("fdaf"));
	json_object_set(aps_addr,"ip",
		json_string(_gstrpShm->rc.nSrvIP));
	json_object_set(mt_info,"aps_addr",aps_addr);

	//oem
	json_object_set(mt_info,"oem",json_string("dfd"));
	//os
	json_object_set(mt_info,"os",json_string("Centos 6.4"));
	//cpu_num
	json_object_set(mt_info,"cpu_num",json_integer(4));
	//cpu_type
	//cpu_freq
	json_decref(jt);
	jt = GetCpuInfo();
	json_object_foreach(jt,key,value)
	{
		if(strncmp(key,"cpuMHz",6) == 0)
		{
			json_object_set(mt_info,"cpu_freq",value);
		}
		if (strncmp(key,"modelname",9) == 0)
		{
			json_object_set(mt_info,"cpu_type",value);
		}
	}
	json_decref(jt);
	jt = GetMemInfo();
	//memory
	json_object_foreach(jt,key,value)
	{
		if(strncmp(key,"MemTotal",8) == 0)
		{
			json_object_set(mt_info,"memory",value);
		}
	}
	json_object_set(root,"mt_info",mt_info);
	json_decref(mt_info);
	return root;
}