Beispiel #1
0
void CRequestXmlMessage::packedSendMessage(NetMessage& netMessage)
{
	CMarkup xml;
	xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
	xml.AddElem("Message");
	xml.AddChildElem("Header");
	xml.IntoElem();
	xml.AddAttrib("MsgType", "EMSG_REQUESTXML_RSP");
	xml.OutOfElem();
	xml.AddChildElem("Result");
	xml.IntoElem();
	xml.AddAttrib("ErrorCode", 0);
	xml.AddAttrib("Value", QString::fromLocal8Bit("成功").toStdString().c_str());
	xml.OutOfElem();
	xml.AddChildElem("SvrInfo");
	xml.IntoElem();
	xml.AddAttrib("UpdateXmlUrl", MessageDataMediator->m_strUpdateXMLUrl.toStdString().c_str());
	xml.AddAttrib("HelpInfoXmlUrl", MessageDataMediator->m_strHelpXMLUrl.toStdString().c_str());
	xml.AddAttrib("VersionCheckFileUrl", MessageDataMediator->m_strClientVersionUrl.toStdString().c_str());
	xml.AddAttrib("TextMode", MessageDataMediator->m_bTextMode ? "1" : "0");
	xml.OutOfElem();

	netMessage.msgBuffer = packXml(&xml);
	netMessage.msgLen = xml.GetDoc().length();
}
static int _ParseSegXml(const char *src, 
						const LocationInfo *location, 
						int len, 
						int *extraLoaction,
						int extraLen,
						char *dst)
{
	CMarkup xml;
	xml.SetDoc(src);						
	if (!xml.FindElem("SEGMENTS")){		
		return -1;								
	}										
	xml.IntoElem();						
	if (! xml.FindElem("SEGMENT")){		
		return -1;								
	}										
	xml.IntoElem();
	_doIntersect(location, len, extraLoaction, extraLen);
	while (xml.FindElem("COLUMN"))
	{
		int id = atoi(xml.GetAttrib("ID").c_str());
		if (_isExtra(id, extraLoaction, extraLen)) {
			continue;
		}

		if (!isExist(id, location, len)) {
			xml.RemoveElem();
		}
	}
	xml.OutOfElem();						
	xml.OutOfElem();
	strcpy(dst, xml.GetDoc().c_str());
	return 0;
}
void XMLFileSave()
{
	CMarkup xml;

	xml.AddElem(L"SERVERLIST");
	xml.AddChildElem(L"SERVER");
	xml.IntoElem();
	xml.AddChildElem(L"IP", L"127.0.0.1");
	xml.AddChildElem(L"PORT", 10000);
	xml.AddChildElem(L"IDENTIFER", 10000);
	xml.AddChildElem(L"DESC", L"GAME DATABASE SERVER");
	xml.OutOfElem();

	xml.AddChildElem(L"SERVER");
	xml.IntoElem();
	xml.AddChildElem(L"IP", L"127.0.0.1");
	xml.AddChildElem(L"PORT", 10001);
	xml.AddChildElem(L"IDENTIFER", 9000);
	xml.AddChildElem(L"DESC", L"AUTH SERVER");
	xml.OutOfElem();

	std::wstring csXML = xml.GetDoc();
	xml.Save(L"ServerConnection.xml");

	wprintf(L"%s", csXML.c_str());
}
string Vehicle::showXml () const
{
   char buf[256];

   CMarkup xml;
   xml.AddElem ("vehicle");
   xml.IntoElem ();
   xml.AddElem ("vtypeidname", vtypeidname_);

   snprintf (buf, 256, "%li", vtypeid_);
   xml.AddElem ("vtypeid", buf);

   xml.AddElem ("color", color_);

   snprintf (buf, 256, "%i", heat_);
   xml.AddElem ("heat", buf);

   snprintf (buf, 256, "%li", location_);
   xml.AddElem ("location", buf);

   snprintf (buf, 256, "%i", myear_);
   xml.AddElem ("myear", buf);

   snprintf (buf, 256, "%li", id_);
   xml.AddElem ("id", buf);

   return xml.GetDoc();
}
Beispiel #5
0
BOOL CTxParamString::UpdateData( BOOL bToReal /*= TRUE*/ )
{
	CString strTmp;
	CMarkup markDoc;
	WriteMarkupString(markDoc, m_kvData);
	m_strRealString = markDoc.GetDoc();
	return TRUE;
}
Beispiel #6
0
CMarkup XMLSerialized::OpenFile(CString sFile){
	CMarkup xml;
	XMLSerialized::ConvertFileName(sFile);
	xml.Load(sFile);
	if(xml.GetDoc().GetLength()>0)
		return xml;
	return NULL;
}
/* active squad visits the arms dealer */
void armsdealer(int loc)
{
   music.play(MUSIC_SHOPPING);
   locatesquad(activesquad,loc);
   CMarkup xml; // -XML
   xml.Load(string(artdir) + "armsdealer.xml");
   Shop armsdealer(xml.GetDoc());
   armsdealer.enter(*activesquad);
}
/* active squad visits the oubliette */
void halloweenstore(int loc)
{
   music.play(MUSIC_SHOPPING);
   locatesquad(activesquad,loc);
   CMarkup xml;
   xml.Load(string(artdir) + "oubliette.xml");
   Shop oubliette(xml.GetDoc());
   oubliette.enter(*activesquad);
}
/* active squad visits the department store */
void deptstore(int loc)
{
   music.play(MUSIC_SHOPPING);
   locatesquad(activesquad,loc);
   CMarkup xml; // -XML
   xml.Load(string(artdir) + "deptstore.xml");
   Shop deptstore(xml.GetDoc());
   deptstore.enter(*activesquad);
}
/* active squad visits the pawn shop */
void pawnshop(int loc)
{
   music.play(MUSIC_SHOPPING);
   locatesquad(activesquad,loc);
   CMarkup xml; // -XML
   xml.Load(string(artdir) + "pawnshop.xml");
   Shop pawnshop(xml.GetDoc());
   pawnshop.enter(*activesquad);
}
string Clip::showXml () const
{
   CMarkup xml;
   xml.AddElem("clip");
   xml.IntoElem();

   addBaseValues(xml);

   return xml.GetDoc();
}
Beispiel #12
0
void XmlProxyCallback::_sendXmlResponse(const CMarkup &outXml, const std::string & sEncode)
{
	std::map<std::string, TTransFunc>::iterator it = _mapTransFunc.find(sEncode);

	TC_HttpResponse response;
	if (it != _mapTransFunc.end())
	{
		std::string s;
		bool bTrans = (it->second)(outXml.GetDoc(), s);
		response.setResponse(200, "OK", bTrans?s:outXml.GetDoc());
	}
	else
	{
		response.setResponse(200, "OK", outXml.GetDoc());
	}
	response.setConnection("close");

	std::string buffer = response.encode();
	getCurrent()->sendResponse(buffer.data(), buffer.size());
}
Beispiel #13
0
string Money::showXml () const
{
   CMarkup xml;
   xml.AddElem("money");
   xml.IntoElem();

   addBaseValues(xml);
   
   xml.AddElem("amount", tostring(amount_));

   return xml.GetDoc();
}
Beispiel #14
0
CMarkup XMLSerialized::OpenFile(){
	CMarkup xml;
//nếu file chưa tồn  tại thì kiểm tra trong listRole
	bool exist =PathFileExists(sFileName);
	if(!exist){
		int begin = sFileName.ReverseFind('\\')+1;
		int end = sFileName.ReverseFind(L'.');
		CString roleName = sFileName.Mid(begin,end-begin);
		if(roleName.Left(4)=="Role")
			return NULL;
		CString szLstRole = L"Character\\ListRole.xml";
		ConvertFileName(szLstRole);
		//nếu không tồn tại file listRole thì tạo note root
		if(!PathFileExists(szLstRole)){
			xml.AddElem(L"ListRoles");			
		}
		else{
			xml.Load(szLstRole);
			xml.FindElem(L"ListRoles");
		}
		
		xml.IntoElem();
		while(xml.FindElem(L"Role")){
			if(xml.GetAttrib(L"ID")==roleName){
				sFileName=L"Character\\"+xml.GetAttrib(L"File");
				ConvertFileName(sFileName);
				exist =true;
				break;
			}
			
		}
		//nếu trong listRole không có thì lưu trong listRole và tạo file
		if(!exist){
			time_t timer;
			time(&timer);
			CTime t = timer;
			sFileName=t.Format(L"Role%d%m%Y%H%M%S.xml");
			xml.AddElem(L"Role");
			xml.AddAttrib(L"ID",roleName);
			xml.AddAttrib(L"File",sFileName);
			xml.Save(szLstRole);
			sFileName=L"Character\\"+sFileName;
			ConvertFileName(sFileName);
			return NULL;
		}
		
	}		
	xml.Load(sFileName);
	if(xml.GetDoc().GetLength()>0)
		return xml;
	return NULL;
}
Beispiel #15
0
bool TestMarkup::WriteTextFile()
{
	CMarkup markup;
	GKString strDoc(_U("<abc>Gis_Kook</abc>"));
	strDoc+=_U("\n");
	markup.SetDoc(strDoc);
	markup.AddAttrib(_U("map"), 1);
	markup.AddElem(_U("dddd"),_U("dd") );

	markup.WriteTextFile(_U("c:/Test.xml"), markup.GetDoc());

	return TRUE;	
}
string Weapon::showXml () const
{
   CMarkup xml;
   xml.AddElem("weapon");
   xml.IntoElem();

   addBaseValues(xml);
   
   xml.AddElem("loaded_cliptype", loaded_cliptype_);
   
   xml.AddElem("ammo", tostring(ammo_));

   return xml.GetDoc();
}
Beispiel #17
0
bool CRegisterIdMessage::packedSendMessage(NetMessage& netMessage)
{
	CMarkup xml;
	xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
	xml.AddElem("Message");
	xml.AddChildElem("Header");
	xml.IntoElem();
	xml.AddAttrib("MsgType", "EMSG_REGISTERID_REQ");
	xml.OutOfElem();
	xml.AddChildElem("Info");
	xml.IntoElem();
	xml.AddAttrib("Id", MessageDataMediator->m_strNewId.toStdString().c_str());
	//xml.AddAttrib("Id", "23423");
	xml.OutOfElem();

	netMessage.msgBuffer = packXml(&xml);
	netMessage.msgLen = xml.GetDoc().length();
	return true;
}
Beispiel #18
0
void CDistributeMessage::packedSendMessage(NetMessage& netMessage)
{
	CMarkup xml;
	xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
	xml.AddElem("Message");
	xml.AddChildElem("Header");
	xml.IntoElem();
	xml.AddAttrib("MsgType", "EMSG_DISTRIBUTEMSG_REQ");
	xml.OutOfElem();
	xml.AddChildElem("Result");
	xml.IntoElem();
	xml.AddAttrib("ErrorCode", 0);
	xml.AddAttrib("Value", QString::fromLocal8Bit("³É¹¦").toStdString().c_str());
	xml.OutOfElem();
	xml.AddChildElem("Info");
	xml.IntoElem();
	xml.AddAttrib("Msg", MessageDataMediator->m_strDistributeMsg.toStdString().c_str());
	xml.AddAttrib("Time", MessageDataMediator->m_strDistributeTime.toStdString().c_str());
	xml.OutOfElem();

	netMessage.msgBuffer = packXml(&xml);
	netMessage.msgLen = xml.GetDoc().length();
}
Beispiel #19
0
void CSoftInstallMessage::packedSendMessage(NetMessage& netMessage)
{
	CMarkup xml;
	xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
	xml.AddElem("Message");
	xml.AddChildElem("Header");
	xml.IntoElem();
	xml.AddAttrib("MsgType", "EMSG_SOFTINSTALL_RSP");
	xml.OutOfElem();
	xml.AddChildElem("Result");
	xml.IntoElem();
	xml.AddAttrib("ErrorCode", 0);
	xml.AddAttrib("Value", QString::fromLocal8Bit(m_bAddSuccess ? "添加成功" : "添加失败,XML无法解析").toStdString().c_str());
	xml.OutOfElem();
	xml.AddChildElem("Info");
	xml.IntoElem(); 
	xml.AddAttrib("Name", m_strName.toStdString().c_str());  //中文问题测试 yhb
	xml.AddAttrib("Version", m_strVersion.toStdString().c_str());
	xml.OutOfElem();

	netMessage.msgBuffer = packXml(&xml);;
	netMessage.msgLen = xml.GetDoc().length();
}
Beispiel #20
0
	void CCliMgr::GetSysService()
	{
		SC_HANDLE schManager = OpenSCManager(NULL, NULL, SERVICE_QUERY_STATUS);
		if (schManager == NULL)
		{
			DWORD dwError = GetLastError();
			_com_error Error(dwError);
			m_pLogger->WriteLog(LM_INFO, TEXT("GetSysService-OpenSCManager Error:%d:%s"), dwError, Error.ErrorMessage());
			return ;
		}

		DWORD dwSize = 0, dwCount = 0;
		LPENUM_SERVICE_STATUS st = (LPENUM_SERVICE_STATUS)LocalAlloc(LPTR, 64*1024);
		LPQUERY_SERVICE_CONFIG sc = (LPQUERY_SERVICE_CONFIG)LocalAlloc(LPTR, 4 * 1024);
		if (!EnumServicesStatus(schManager, SERVICE_TYPE_ALL, SERVICE_ACTIVE, st, 1024*64, &dwSize, &dwCount, NULL))
		{
			DWORD dwError = GetLastError();
			_com_error Error(dwError);
			m_pLogger->WriteLog(LM_INFO, TEXT("EnumServicesStatus Error:%d:%s"), dwError, Error.ErrorMessage());
		}

		CMarkup xml;
		xml.SetDoc("<?xml version=\"1.0\" encoding=\"gb2312\"?>\r\n");
		xml.AddElem("ServiceLst");
		xml.IntoElem();
		
		for (DWORD idx=0; idx<dwCount; idx++)
		{
			SC_HANDLE hService = ::OpenService(schManager,st[idx].lpServiceName,SERVICE_QUERY_CONFIG);
			if(hService)
			{
				DWORD dwSize = 0;
				::QueryServiceConfig(hService, sc, 4 * 1024, &dwSize);
				CloseServiceHandle(hService);
			}
			if (st[idx].ServiceStatus.dwCurrentState == SERVICE_RUNNING)
			{
				TCHAR buf[MAX_PATH] = {0};
				_stprintf(buf, TEXT("%s  %s  %s)\r\n"), st[idx].lpServiceName, sc->lpBinaryPathName, st[idx].lpDisplayName);

				string strProcName = ProcessImagePath(sc->lpBinaryPathName);
				xml.AddElem("Service");
				xml.AddAttrib("Name",		 st[idx].lpServiceName);
				xml.AddAttrib("Application", strProcName.c_str());
				xml.AddAttrib("DisplayName", st[idx].lpDisplayName);
				m_pLogger->WriteLog(LM_INFO, buf);
			}
		}
		xml.OutOfElem();
		string data=xml.GetDoc();
		char *pData = NULL;
		int  nSize = data.size() + 1024;
		char* buf= new char[nSize];
		_packageheader* pheader = (_packageheader*)buf;
		InitPackage(pheader, CMD_GAME_CLIENTTOCON);
		CPackageHelper out(buf);
		out.pushDWORD(Ctrl_ViewSviInfo);
		out.pushString(data.c_str(), data.size());
		pheader->Length = out.GetOffset();
		if (!ExecCmd(buf, pheader->Length, pData, nSize, false))
			m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewSviInfo Fail.");			
		else
		{
			m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewSviInfo Success.");
			CoTaskMemFree(pData);
		}
		delete []buf;
		LocalFree(st);
		LocalFree(sc);
		CloseServiceHandle(schManager);
	}
Beispiel #21
0
void XMLSerialized::SaveInfo(){
	CMarkup xml = OpenFile();
	if(xml.GetDoc().GetLength()==0){
		Serialize();
		return;
	}
	std::map<int,DATA*>::const_iterator item;
	for(item=  m_mapping.begin(); item != m_mapping.end(); item ++){
		DATA* data = item->second;
		if(data->_tagType == TagType::Root){
			continue;
		}
		if(data->_tagType == TagType::Element){
			xml.ResetPos();			
			if(FindPath(data->_parent,&xml)){
				if(!xml.FindElem(data->_tagName)){
					xml.AddElem(data->_tagName);
				}
				if(data->_dataType!= DataType::None){
					CString result;
					switch(data->_dataType){
						case DataType::String:
							xml.SetData(*(CString*)data->_value);
						break;
						case DataType::Int:
							xml.SetData(*(int*)data->_value);
						break;
						case DataType::Bool:
							xml.SetData((int)*(bool*)data->_value);
						break;
						case DataType::ByteArray:
							ByteArrayToString(result,L"|",(byte*)data->_value);
							xml.SetData(result);
						break;
						case DataType::IntArray:
							IntArrayToString(result,L"|",(int*)data->_value);
							xml.SetData(result);
						break;
					}
				}
				continue;
			}
		}
		if(data->_tagType == TagType::Attribute){
			if(FindPath(data->_parent,&xml)){
				xml.OutOfElem();
				CString result;
				
				switch(data->_dataType){
					case DataType::String:
						xml.SetAttrib(data->_tagName,*(CString*)data->_value);
					break;
					case DataType::Int:
						xml.SetAttrib(data->_tagName,*(int*)data->_value);
					break;
					case DataType::Bool:
						xml.SetAttrib(data->_tagName,(int)*(bool*)data->_value);
					break;
					case DataType::ByteArray:
						ByteArrayToString(result,L"|",(byte*)data->_value);
						xml.SetAttrib(data->_tagName,result);
					break;
					case DataType::IntArray:
						IntArrayToString(result,L"|",(int*)data->_value);
						xml.SetAttrib(data->_tagName,result);
					break;
				}
			}
		}		
	}
	xml.Save(sFileName);
}
Beispiel #22
0
	void CCliMgr::GetSysProcess()
	{
		DWORD aProcesses[1024] = {0}, cbNeeded = 0, cProcesses = 0, MemSize = 0;
		if (!EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ))
		{
			DWORD dwError = GetLastError();
			_com_error Error(dwError);
			m_pLogger->WriteLog(LM_INFO, TEXT("GetSysProcess (EnumProcess) Error:%d:%s"), dwError, Error.ErrorMessage());
			return;
		}
		cProcesses = cbNeeded / sizeof(DWORD);
		m_pLogger->WriteLog(LM_INFO, TEXT("Process Num:%d"), cProcesses);
		CMarkup xml;
		xml.SetDoc("<?xml version=\"1.0\" encoding=\"gb2312\"?>\r\n");
		xml.AddElem("ProcessLst");
		xml.IntoElem();
		for (DWORD idx=0; idx<cProcesses; idx++)
		{
			TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");
			HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, aProcesses[idx]);
			if (NULL == hProcess)
				continue;
			else
			{
				if (0 == GetModuleFileNameEx(hProcess, NULL, szProcessName, MAX_PATH))
				{
					CloseHandle( hProcess );
					continue;
				}
				PROCESS_MEMORY_COUNTERS pmc = {0};
				pmc.cb = sizeof(PROCESS_MEMORY_COUNTERS);
				if ( ::GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc)))
				{
					MemSize = pmc.WorkingSetSize;
				}
				CloseHandle( hProcess );
			}
			string strProcName = ProcessImagePath(szProcessName);		
 			TCHAR buf[MAX_PATH] = {0};
 			_stprintf(buf, TEXT("%s  %d  (PID: %u)\r\n"), szProcessName,MemSize, aProcesses[idx]);
			xml.AddElem("Process");
			xml.AddAttrib("Name",	strProcName);    
			xml.AddAttrib("Pid",	aProcesses[idx]);    
			xml.AddAttrib("Memory",	MemSize);				
			m_pLogger->WriteLog(LM_INFO, buf);
		}
		xml.OutOfElem();
		string data=xml.GetDoc(); 
		char *pData = NULL;
		int  nSize = data.size() +1024;
		char* buf= new char[nSize];
		_packageheader* pheader = (_packageheader*)buf;
		InitPackage(pheader, CMD_GAME_CLIENTTOCON);
		CPackageHelper out(buf);
		out.pushDWORD(Ctrl_ViewProcInfo);
		out.pushString(data.c_str(), data.size());
		pheader->Length = out.GetOffset();

		if (!ExecCmd(buf, pheader->Length, pData, nSize,false))
			m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewProcInfo Fail.");			
		else
		{
			m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewProcInfo Success.");
			CoTaskMemFree(pData);
		}
		delete []buf;
	}