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

📄 mpdupdatedlg.cpp

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	    if (!bFound)	    {		m_host_list.InsertString(-1, m_hostname);	    }	}    }}int CMPDUpdateDlg::OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex) {    if (*pListBox == m_host_list)    {	if (nKey == VK_DELETE)	{	    int index = m_host_list.GetCurSel();	    if (index != LB_ERR)	    {		m_host_list.DeleteString(index);		if (m_host_list.SetCurSel(index) == LB_ERR)		    m_host_list.SetCurSel(index-1);	    }	}    }	return CDialog::OnVKeyToItem(nKey, pListBox, nIndex);}void CMPDUpdateDlg::OnClose() {    if (m_hUpdateBtnThread)    {	TerminateThread(m_hUpdateBtnThread, -1);	m_hUpdateBtnThread = NULL;    }    easy_socket_finalize();	CDialog::OnClose();}void CMPDUpdateDlg::OnSize(UINT nType, int cx, int cy) {    CDialog::OnSize(nType, cx, cy);    if (nType != SIZE_MINIMIZED)    {	/*	if (m_nMinWidth != -1)	{	    if (cx < m_nMinWidth || cy < m_nMinHeight)	    {		RECT r, r2;		r.left = 0;		r.top = 0;		r.right = m_nMinWidth;		r.bottom = m_nMinHeight;		AdjustWindowRect(&r, WS_CHILD, FALSE);		GetWindowRect(&r2);		MoveWindow(r2.left, r2.top, r.right-r.left, r.bottom-r.top, TRUE);	    }	}	*/	if (m_nMinWidth <= cx || m_nMinHeight <= cy)	{	    if (cx < m_nMinWidth)		cx = m_nMinWidth;	    if (cy < m_nMinHeight)		cy = m_nMinHeight;	    rList.Resize(cx, cy);	    rResults.Resize(cx, cy);	    if (bOnInitDialogFinished)		Invalidate();	}    }}void CMPDUpdateDlg::OnShowHostChk() {    UpdateData();    if (m_bShowHostConfig)	GetHostConfig(NULL);    else    {	m_config_host = "";	m_config_mpich_version = "";	m_config_mpd_version = "";	UpdateData(FALSE);    }}void CMPDUpdateDlg::OnSelchangeHostList() {    UpdateData();    if (m_bShowHostConfig)    {	CString host;	int index = m_host_list.GetCurSel();	if (index != LB_ERR)	{	    m_host_list.GetText(index, host);	    GetHostConfig(host);	}    }}void CMPDUpdateDlg::GetHostConfig(const char *host){    CString sHost;    SOCKET sock;    char pszStr[MAX_CMD_LENGTH] = "mpd not installed";    UpdateData();    if (host == NULL)    {	int index = m_host_list.GetCurSel();	if (index == LB_ERR)	    return;	m_host_list.GetText(index, sHost);    }    else	sHost = host;    if (m_bNeedPassword)    {	if (m_bUseDefault)	    strcpy(m_pszPhrase, MPD_DEFAULT_PASSPHRASE);	else	    strcpy(m_pszPhrase, m_mpd_pwd);    }        HCURSOR hOldCursor = SetCursor( LoadCursor(NULL, IDC_WAIT) );        if (ConnectToMPDquickReport(sHost, m_mpd_port, m_pszPhrase, &sock, pszStr) == 0)    {	// get the mpd version	WriteString(sock, "version");	if (ReadStringTimeout(sock, pszStr, MPD_SHORT_TIMEOUT))	{	    m_config_mpd_version = "mpd:\r\n";	    m_config_mpd_version += pszStr;	}	else	{	    m_config_mpd_version = "mpd:\r\nunknown version";	}	// get the mpich version	WriteString(sock, "mpich version");	if (ReadStringTimeout(sock, pszStr, MPD_SHORT_TIMEOUT))	{	    m_config_mpich_version = "mpich:\r\n";	    m_config_mpich_version += pszStr;	}	else	{	    m_config_mpich_version = "mpich:\r\nunknown version";	}	m_config_host = sHost;	WriteString(sock, "done");	easy_closesocket(sock);    }    else    {	if (strstr(pszStr, "10061"))	    m_config_mpich_version = "mpd not installed";	else if (strstr(pszStr, "11001"))	    m_config_mpich_version = "unknown host";	else	    m_config_mpich_version = pszStr;	m_config_mpd_version = "";	m_config_host = sHost;    }        SetCursor(hOldCursor);    UpdateData(FALSE);}void CMPDUpdateDlg::OnAnlBtn() {    UpdateData();    m_urlname = "ftp://ftp.mcs.anl.gov/pub/mpi/nt/binaries/mpd.exe";    UpdateData(FALSE);}void CMPDUpdateDlg::OnFileBrowseBtn() {    UpdateData();        CFileDialog f(	TRUE, "*.exe", m_filename, 	OFN_HIDEREADONLY | OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST,	"Executables (*.exe)|*.exe|All files (*.*)|*.*||"	);    if (f.DoModal() == IDOK)    {	POSITION p;	p = f.GetStartPosition();	m_filename = f.GetNextPathName(p);	UpdateData(FALSE);    }}void CMPDUpdateDlg::OnURLRadio() {    UpdateData();        if (m_url_radio.GetCheck())    {	m_url_edit.EnableWindow();	m_anl_btn.EnableWindow();	m_file_edit.EnableWindow(FALSE);	m_file_browse_btn.EnableWindow(FALSE);    }    else    {	m_url_edit.EnableWindow(FALSE);	m_anl_btn.EnableWindow(FALSE);	m_file_edit.EnableWindow();	m_file_browse_btn.EnableWindow();    }}void CMPDUpdateDlg::OnFileRadio() {    UpdateData();        if (m_file_radio.GetCheck())    {	m_file_edit.EnableWindow();	m_file_browse_btn.EnableWindow();	m_url_edit.EnableWindow(FALSE);	m_anl_btn.EnableWindow(FALSE);    }    else    {	m_file_edit.EnableWindow(FALSE);	m_file_browse_btn.EnableWindow(FALSE);	m_url_edit.EnableWindow();	m_anl_btn.EnableWindow();    }}void CMPDUpdateDlg::OnSelectHostsBtn() {    CFindHostsDlg dlg;    if (dlg.DoModal() == IDOK)    {	QVS_Container qvs;	char str[100];	m_host_list.ResetContent();	qvs.decode_string((char*)(LPCTSTR)dlg.m_encoded_hosts);	if (qvs.first(str, 100))	{	    m_host_list.AddString(str);	    while (qvs.next(str, 100))	    {		m_host_list.AddString(str);	    }	}    }}void CMPDUpdateDlg::OnUpdateMpichCheck() {    UpdateData();    if (m_bUpdateMPICH)    {	m_mpich_source_static.EnableWindow();	m_mpich_filename_radio.EnableWindow();	m_mpich_url_radio.EnableWindow();	m_mpich_version_btn.EnableWindow();	OnMpichUrlRadio();    }    else    {	m_mpich_source_static.EnableWindow(FALSE);	m_mpich_filename_radio.EnableWindow(FALSE);	m_mpich_url_radio.EnableWindow(FALSE);	m_mpich_url_edit.EnableWindow(FALSE);	m_mpich_anl_btn.EnableWindow(FALSE);	m_mpich_filename_edit.EnableWindow(FALSE);	m_mpich_file_browse_btn.EnableWindow(FALSE);	m_mpich_version_btn.EnableWindow(FALSE);    }}void CMPDUpdateDlg::OnUpdateMpdCheck() {    UpdateData();    if (m_bUpdateMPD)    {	m_source_static.EnableWindow();	m_file_radio.EnableWindow();	m_url_radio.EnableWindow();	m_mpd_version_btn.EnableWindow();	OnURLRadio();    }    else    {	m_source_static.EnableWindow(FALSE);	m_file_radio.EnableWindow(FALSE);	m_url_radio.EnableWindow(FALSE);	m_url_edit.EnableWindow(FALSE);	m_anl_btn.EnableWindow(FALSE);	m_file_edit.EnableWindow(FALSE);	m_file_browse_btn.EnableWindow(FALSE);	m_mpd_version_btn.EnableWindow(FALSE);    }}void CMPDUpdateDlg::OnMpdPortChk() {    UpdateData();    if (m_bMPDPortChecked)    {	m_mpd_port_edit.EnableWindow();	m_mpd_port_static.EnableWindow(FALSE);    }    else    {	m_mpd_port_edit.EnableWindow(FALSE);	m_mpd_port_static.EnableWindow();    }}void CMPDUpdateDlg::OnMpdPassphraseChk() {    UpdateData();    if (m_bMPDPassphraseChecked)    {	m_mpd_pwd_edit.EnableWindow();	m_mpd_pwd_static.EnableWindow(FALSE);    }    else    {	m_mpd_pwd_edit.EnableWindow(FALSE);	m_mpd_pwd_static.EnableWindow();    }}void CMPDUpdateDlg::OnMpichUrlRadio() {    UpdateData();        if (m_mpich_url_radio.GetCheck())    {	m_mpich_url_edit.EnableWindow();	m_mpich_anl_btn.EnableWindow();	m_mpich_filename_edit.EnableWindow(FALSE);	m_mpich_file_browse_btn.EnableWindow(FALSE);    }    else    {	m_mpich_url_edit.EnableWindow(FALSE);	m_mpich_anl_btn.EnableWindow(FALSE);	m_mpich_filename_edit.EnableWindow();	m_mpich_file_browse_btn.EnableWindow();    }}void CMPDUpdateDlg::OnMpichFileRadio() {    UpdateData();        if (m_mpich_filename_radio.GetCheck())    {	m_mpich_filename_edit.EnableWindow();	m_mpich_file_browse_btn.EnableWindow();	m_mpich_url_edit.EnableWindow(FALSE);	m_mpich_anl_btn.EnableWindow(FALSE);    }    else    {	m_mpich_filename_edit.EnableWindow(FALSE);	m_mpich_file_browse_btn.EnableWindow(FALSE);	m_mpich_url_edit.EnableWindow();	m_mpich_anl_btn.EnableWindow();    }}void CMPDUpdateDlg::OnMpichFileBrowseBtn() {    UpdateData();        CFileDialog f(	TRUE, "*.dll", m_mpich_filename, 	OFN_HIDEREADONLY | OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST,	"Dynamic libraries (*.dll)|*.dll|All files (*.*)|*.*||"	);    if (f.DoModal() == IDOK)    {	POSITION p;	p = f.GetStartPosition();	m_mpich_filename = f.GetNextPathName(p);	UpdateData(FALSE);    }}void CMPDUpdateDlg::OnMpichAnlBtn() {    UpdateData();    m_mpich_url = "ftp://ftp.mcs.anl.gov/pub/mpi/nt/binaries/mpich.dll";    UpdateData(FALSE);}void CMPDUpdateDlg::OnMpichVersionBtn() {    HCURSOR hOldCursor;    bool bDeleteTmpMPICH = false;    unsigned int version;    char str[100];    UpdateData();    hOldCursor = SetCursor( LoadCursor(NULL, IDC_WAIT) );    if (m_mpich_url_radio.GetCheck())    {	if (!GetTmpMPICHFromURL())	{	    SetCursor(hOldCursor);	    MessageBox("Unable to retrieve the new mpich dll from the specified url.", "Error");	    return;	}	bDeleteTmpMPICH = true;    }    if (!GetLocalMPICHVersion(m_mpich_url_radio.GetCheck() ? m_mpich_localfile : m_mpich_filename, version))    {	if (bDeleteTmpMPICH)	{	    DeleteFile(m_mpich_localfile);	    DeleteFile(m_mpich_localfiled);	}	SetCursor(hOldCursor);	MessageBox("Unable to get the version of the new mpich dll", "Error");	return;    }    if (bDeleteTmpMPICH)    {	DeleteFile(m_mpich_localfile);	DeleteFile(m_mpich_localfiled);    }    if (version == 0)    {	m_mpich_version = "<not versioned>";    }    else    {	mpd_version_int_to_string(version, str);	m_mpich_version = str;    }    SetCursor(hOldCursor);    UpdateData(FALSE);}void CMPDUpdateDlg::OnMpdVersionBtn() {    HCURSOR hOldCursor;    bool bDeleteTmpMpd = false;    unsigned int version;    char str[100];    UpdateData();    hOldCursor = SetCursor( LoadCursor(NULL, IDC_WAIT) );    if (m_url_radio.GetCheck())    {	if (!GetTmpMpdFromURL())	{	    SetCursor(hOldCursor);	    MessageBox("Unable to retrieve the new mpd from the specified url.", "Error");	    return;	}	bDeleteTmpMpd = true;    }        if (!GetLocalVersion(m_url_radio.GetCheck() ? m_localfile : m_filename, version))    {	if (bDeleteTmpMpd)	    DeleteFile(m_localfile);	SetCursor(hOldCursor);	MessageBox("Unable to get the version of the new mpd", "Error");	return;    }        if (bDeleteTmpMpd)    {	DeleteFile(m_localfile);    }    mpd_version_int_to_string(version, str);    m_mpd_version = str;    SetCursor(hOldCursor);    UpdateData(FALSE);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -