2024-12-21 10:04:04 +08:00
|
|
|
|
|
|
|
|
|
|
#include "Stdafx.h"
|
|
|
|
|
|
#include "ConnectionInfoMngr.h"
|
|
|
|
|
|
#include "XMLParser.h"
|
|
|
|
|
|
#include "NetConnection.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "ServiceMonitor.h"
|
|
|
|
|
|
#include "MainFrm.h"
|
|
|
|
|
|
#include "BasePartitionView.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DEFINE_SINGLETON_CLASS(CConnectionInfoMngr);
|
|
|
|
|
|
|
|
|
|
|
|
CConnectionInfoMngr::CConnectionInfoMngr()
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool CConnectionInfoMngr::LoadData ()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_vConnectionList.clear();
|
|
|
|
|
|
|
|
|
|
|
|
CXMLParser parser;
|
|
|
|
|
|
if (parser.Open("ConnectionList.xml") == false)
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
|
|
if (parser.FirstChildElement("ConnectionList", true))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (parser.FirstChildElement("Connection") == true)
|
|
|
|
|
|
{
|
|
|
|
|
|
do {
|
|
|
|
|
|
stConnectionInfo ConInfo;
|
|
|
|
|
|
memset(&ConInfo, 0, sizeof(ConInfo));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WCHAR wszTemp[1024];
|
|
|
|
|
|
wcscpy_s(wszTemp, NAMELENMAX, parser.GetAttribute("UserName"));
|
|
|
|
|
|
WideCharToMultiByte(CP_ACP, 0, wszTemp, -1, ConInfo.szUserName, NAMELENMAX, NULL, NULL);
|
|
|
|
|
|
|
|
|
|
|
|
wcscpy_s(wszTemp, NAMELENMAX, parser.GetAttribute("PasswordId"));
|
|
|
|
|
|
WideCharToMultiByte(CP_ACP, 0, wszTemp, -1, ConInfo.szPassWord, NAMELENMAX, NULL, NULL);
|
|
|
|
|
|
|
|
|
|
|
|
wcscpy_s(wszTemp, IPLENMAX, parser.GetAttribute("IP"));
|
|
|
|
|
|
WideCharToMultiByte(CP_ACP, 0, wszTemp, -1, ConInfo.szIpAddress, IPLENMAX, NULL, NULL);
|
|
|
|
|
|
|
|
|
|
|
|
ConInfo.wPort = (WORD)_tstoi(parser.GetAttribute("Port"));
|
|
|
|
|
|
|
|
|
|
|
|
ConInfo.nConID = inet_addr((char*)ConInfo.szIpAddress);
|
|
|
|
|
|
|
|
|
|
|
|
m_vConnectionList.push_back(ConInfo);
|
|
|
|
|
|
|
|
|
|
|
|
} while (parser.NextSiblingElement("Connection"));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CConnectionInfoMngr::ConnectToServerManager ()
|
|
|
|
|
|
{
|
|
|
|
|
|
stConnectionInfo ConInfo = {0,};
|
|
|
|
|
|
for (int i=0; i<(int)m_vConnectionList.size(); i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
ConInfo = m_vConnectionList[i];
|
|
|
|
|
|
|
|
|
|
|
|
CNetConnection* pNetConnection = CNetConnectionMgr::GetInstancePtr()->GetConnection (ConInfo.nConID);
|
|
|
|
|
|
if (pNetConnection) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
CNetSession* pNetSession = pNetConnection->GetSession();
|
|
|
|
|
|
if (!pNetSession)
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
DWORD dwRetVal = pNetSession->Connect(ConInfo.nConID, ConInfo.wPort);
|
|
|
|
|
|
if (NOERROR != dwRetVal)
|
|
|
|
|
|
continue;
|
|
|
|
|
|
}
|
|
|
|
|
|
else // <20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
// <20>Ʒ<EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD><DBB5>մϴ<D5B4>.
|
|
|
|
|
|
pNetConnection = CNetConnectionMgr::GetInstancePtr()->CreateConnection();
|
|
|
|
|
|
if (!pNetConnection)
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
CNetSession* pNetSession = pNetConnection->GetSession();
|
|
|
|
|
|
if (!pNetSession)
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
CMainFrame* pMainFrame = static_cast<CServiceMonitorApp*>(::AfxGetApp())->GetMainFrame();
|
|
|
|
|
|
if (!pMainFrame)
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
CBasePartitionView* pPartitionView = pMainFrame->AddPartition (pNetConnection, ConInfo.nConID);
|
|
|
|
|
|
if (!pPartitionView)
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
DWORD dwRetVal = pNetSession->Connect(ConInfo.nConID, ConInfo.wPort);
|
|
|
|
|
|
if (NOERROR != dwRetVal)
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
// Ŀ<><C4BF><EFBFBD>Ǿ<EFBFBD><C7BE>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
pPartitionView->SetConnectionID(ConInfo.nConID);
|
|
|
|
|
|
|
|
|
|
|
|
// Ŀ<>ؼǵ<D8BC><C7B5><EFBFBD>
|
|
|
|
|
|
CNetConnectionMgr::GetInstancePtr()->RegistConnection (pNetConnection);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool CConnectionInfoMngr::GetConInfo (UINT nConID, stConnectionInfo& ConInfo)
|
|
|
|
|
|
{
|
|
|
|
|
|
for (size_t i=0; i<m_vConnectionList.size(); i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_vConnectionList[i].nConID == nConID)
|
|
|
|
|
|
{
|
|
|
|
|
|
ConInfo = m_vConnectionList[i];
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|