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(); }
BOOL CTxParamString::UpdateData( BOOL bToReal /*= TRUE*/ ) { CString strTmp; CMarkup markDoc; WriteMarkupString(markDoc, m_kvData); m_strRealString = markDoc.GetDoc(); return TRUE; }
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(); }
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()); }
string Money::showXml () const { CMarkup xml; xml.AddElem("money"); xml.IntoElem(); addBaseValues(xml); xml.AddElem("amount", tostring(amount_)); return xml.GetDoc(); }
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; }
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(); }
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; }
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(); }
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(); }
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); }
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); }
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; }