⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 terminalclientthread.cpp

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		{			// 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 + -