📄 terminalclientthread.cpp
字号:
{ // This section is not thread safe. if (g_nNextGroupID == -1 || g_nNextGroupID > g_nMaxGroupID) { // Get the current group id Command.nCommand = MPD_CMD_GET; strcpy(Command.pCommandBuffer, "global:currentID"); Command.hCmd.nBufferLength = strlen(Command.pCommandBuffer) + 1; hCommand = InsertCommand(Command); nLength = 100; WaitForCommand(hCommand, buffer, &nLength); // Save it and increment it by some ammount g_nNextGroupID = atoi(buffer); g_nMaxGroupID = g_nNextGroupID + 999; // Put the new group id back in the database Command.nCommand = MPD_CMD_PUTC; sprintf(Command.pCommandBuffer, "global:currentID=%d", g_nMaxGroupID+1); Command.hCmd.nBufferLength = strlen(Command.pCommandBuffer) + 1; hCommand = InsertCommand(Command); WaitForCommand(hCommand); } sprintf(buffer, "%d\n", g_nNextGroupID); g_nNextGroupID++; WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (stricmp(buffer, "hosts") == 0) { Command.nCommand = MPD_CMD_HOSTS; Command.hCmd.nBufferLength = 0; hCommand = InsertCommand(Command); nLength = CMD_BUFF_SIZE_PLUS_PADDING; WaitForCommand(hCommand, buffer, &nLength); WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (stricmp(buffer, "cpu") == 0) { Command.nCommand = MPD_CMD_CPUSAGE; Command.hCmd.nBufferLength = 0; hCommand = InsertCommand(Command); nLength = CMD_BUFF_SIZE_PLUS_PADDING; WaitForCommand(hCommand, buffer, &nLength); strcat(buffer, "\n"); WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (stricmp(buffer, "ps") == 0) { Command.nCommand = MPD_CMD_PS; Command.hCmd.nBufferLength = 0; hCommand = InsertCommand(Command); nLength = CMD_BUFF_SIZE_PLUS_PADDING; WaitForCommand(hCommand, buffer, &nLength); WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (strnicmp(buffer, "set ", 4) == 0) { Command.nCommand = MPD_CMD_ADD; strcpy(Command.pCommandBuffer, &buffer[4]); Command.hCmd.nBufferLength = strlen(Command.pCommandBuffer) + 1; hCommand = InsertCommand(Command); WaitForCommand(hCommand); } else if (strnicmp(buffer, "enable ", 7) == 0) { Command.nCommand = MPD_CMD_ENABLE; strcpy(Command.pCommandBuffer, &buffer[7]); Command.hCmd.nBufferLength = strlen(Command.pCommandBuffer) + 1; hCommand = InsertCommand(Command); WaitForCommand(hCommand); } else if (strnicmp(buffer, "disable ", 8) == 0) { Command.nCommand = MPD_CMD_DISABLE; strcpy(Command.pCommandBuffer, &buffer[8]); Command.hCmd.nBufferLength = strlen(Command.pCommandBuffer) + 1; hCommand = InsertCommand(Command); WaitForCommand(hCommand); } else if (strnicmp(buffer, "id ", 3) == 0) { strcpy(pszID, &buffer[3]); bIdSet = true; } else if (strnicmp(buffer, "get ", 4) == 0) { if (bIdSet) { Command.nCommand = MPD_CMD_GET; sprintf(Command.pCommandBuffer, "%s:%s", pszID, &buffer[4]); Command.hCmd.nBufferLength = strlen(Command.pCommandBuffer) + 1; hCommand = InsertCommand(Command); nLength = CMD_BUFF_SIZE_PLUS_PADDING; WaitForCommand(hCommand, buffer, &nLength); } else sprintf(buffer, "'id dbsID' must be called before get\n"); WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); strcpy(buffer, "\n"); WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (strnicmp(buffer, "put ", 4) == 0) { if (bIdSet) { Command.nCommand = MPD_CMD_PUT; sprintf(Command.pCommandBuffer, "%s:%s", pszID, &buffer[4]); Command.hCmd.nBufferLength = strlen(Command.pCommandBuffer) + 1; hCommand = InsertCommand(Command); WaitForCommand(hCommand); sprintf(buffer, "put completed\n"); } else sprintf(buffer, "'id dbsID' must be called before put\n"); //WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (strnicmp(buffer, "putc ", 5) == 0) { if (bIdSet) { Command.nCommand = MPD_CMD_PUTC; sprintf(Command.pCommandBuffer, "%s:%s", pszID, &buffer[5]); Command.hCmd.nBufferLength = strlen(Command.pCommandBuffer) + 1; hCommand = InsertCommand(Command); WaitForCommand(hCommand); sprintf(buffer, "putc completed\n"); } else sprintf(buffer, "'id dbsID' must be called before putc\n"); //WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (strnicmp(buffer, "prune ", 6) == 0) { Command.nCommand = MPD_CMD_DELETE_ID; sprintf(Command.pCommandBuffer, "%s", &buffer[6]); Command.hCmd.nBufferLength = strlen(Command.pCommandBuffer) + 1; hCommand = InsertCommand(Command); WaitForCommand(hCommand); sprintf(buffer, "prune completed\n"); //WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (strnicmp(buffer, "delete ", 7) == 0) { if (bIdSet) { Command.nCommand = MPD_CMD_DELETE_KEY; sprintf(Command.pCommandBuffer, "%s:%s", pszID, &buffer[7]); Command.hCmd.nBufferLength = strlen(Command.pCommandBuffer) + 1; hCommand = InsertCommand(Command); WaitForCommand(hCommand); sprintf(buffer, "delete completed\n"); } else sprintf(buffer, "'id dbsID' must be called before delete\n"); //WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (stricmp(buffer, "ring") == 0) { QueryPerformanceFrequency(&nFrequency); QueryPerformanceCounter(&nStart); Command.nCommand = MPD_CMD_RUN_THE_RING; Command.hCmd.nBufferLength = 0; hCommand = InsertCommand(Command); WaitForCommand(hCommand); QueryPerformanceCounter(&nFinish); double s = double(nFinish.QuadPart - nStart.QuadPart) / (double)nFrequency.QuadPart; if (s < 0.000001) sprintf(buffer, "ring returned in %4.2f nano seconds\n", s * 1000000000); else if (s < 0.001) sprintf(buffer, "ring returned in %4.2f micro seconds\n", s * 1000000); else if (s < 1) sprintf(buffer, "ring returned in %4.2f milli seconds\n", s * 1000); else sprintf(buffer, "ring returned in %4.2f seconds\n", s); WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (stricmp(buffer, "print lists") == 0) { // Make everyone print out their lists Command.nCommand = MPD_CMD_PRINT_LISTS; Command.hCmd.nBufferLength = 0; hCommand = InsertCommand(Command); WaitForCommand(hCommand); /*/ // Print out the local list only g_List.PrintToString(buffer); WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); //*/ } else if (stricmp(buffer, "print") == 0) { // Print out the local list only g_List.PrintToString(buffer); WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else if (stricmp(buffer, "print database") == 0 || stricmp(buffer, "database") == 0) { Command.nCommand = MPD_CMD_PRINT_DATABASE; Command.hCmd.nBufferLength = 0; hCommand = InsertCommand(Command); nLength = CMD_BUFF_SIZE_PLUS_PADDING; WaitForCommand(hCommand, buffer, &nLength); if (nLength > 0) WriteFile(hOutput, buffer, nLength, &dwNumWritten, NULL); } else if (stricmp(buffer, "lookup") == 0) g_List.m_bLookupIP = true; else if (stricmp(buffer, "nolookup") == 0) g_List.m_bLookupIP = false; else if (stricmp(buffer, "help") == 0) { PrintHelpToString(buffer); WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); } else { WriteFile(hOutput, "unknown command: '", strlen("unknown command: '"), &dwNumWritten, NULL); WriteFile(hOutput, buffer, strlen(buffer), &dwNumWritten, NULL); WriteFile(hOutput, "'\n", strlen("'\n"), &dwNumWritten, NULL); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -