#include "stdafx.h" #include "SetupClient.h" #include #include ManageSetup::ClientSetup::ClientSetup() { SetSetupFileName("./ManageSetupClient.ini"); Load(); } ManageSetup::ClientSetup::~ClientSetup() { } ManageSetup::ClientSetup& ManageSetup::ClientSetup::GetInstance() { static ClientSetup clientSetup; return clientSetup; } void ManageSetup::ClientSetup::Load(const char* szSetupFileName) { char szIP[MAX_PATH]; GetPrivateProfileString("ManageClient", "ManageServerIP", 0, szIP, MAX_PATH, szSetupFileName); UINT nPort = GetPrivateProfileInt("ManageClient", "ManageServerPort", CServerSetup::ManageServerManageClientListen, szSetupFileName); m_ManageServerAddr.set_addr(szIP, static_cast(nPort)); } void ManageSetup::ClientSetup::Save(const char* szSetupFileName) { char szIP[MAX_PATH]; _snprintf(szIP, MAX_PATH - 1, "%s", m_ManageServerAddr.get_addr_string()); szIP[MAX_PATH - 1] = 0; char szPort[MAX_PATH]; _snprintf(szPort, MAX_PATH - 1, "%d", m_ManageServerAddr.get_port_in()); szPort[MAX_PATH - 1] = 0; WritePrivateProfileString("ManageClient", "ManageServerIP", szIP, szSetupFileName); WritePrivateProfileString("ManageClient", "ManageServerPort", szPort, szSetupFileName); } void ManageSetup::ClientSetup::SetSetupFileName(const char* szSetupFileName) { if(0 != szSetupFileName) { _snprintf(m_szSetupFileName, MAX_PATH, "%s", szSetupFileName); m_szSetupFileName[MAX_PATH - 1] = 0; } } bool ManageSetup::ClientSetup::SerializeIn(const char* szData_In, unsigned long dwDataLen_In) { if(dwDataLen_In == GetExpectedSerializedDataSize()) { int nAddrSize = 0; memcpy(&m_ManageServerAddr.get_addr(), szData_In, sizeof(sockaddr)); memcpy(&nAddrSize, szData_In + sizeof(sockaddr), sizeof(int)); m_ManageServerAddr.set_size(nAddrSize); return true; } return false; } bool ManageSetup::ClientSetup::SerializeOut(char* szData_InOut, unsigned long& dwDataLen_InOut) { if(GetExpectedSerializedDataSize() < dwDataLen_InOut) { int nAddrSize = m_ManageServerAddr.get_size(); memcpy(szData_InOut, &m_ManageServerAddr.get_addr(), sizeof(sockaddr)); memcpy(szData_InOut + sizeof(sockaddr), &nAddrSize, sizeof(int)); dwDataLen_InOut = GetExpectedSerializedDataSize(); return true; } return false; } unsigned long ManageSetup::ClientSetup::GetExpectedSerializedDataSize() { return static_cast(sizeof(sockaddr) + sizeof(int)); }