Files
Sun1602/Tools/WiseClient/Application/WiseClientV2.MainFrame.cpp
T
2022-10-26 12:25:11 +08:00

116 lines
2.3 KiB
C++

// 종합솔루션.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//
#include "stdafx.h"
#include "WiseClientV2.MainFrame.h"
#include "WiseClientV2.CoreFrame.h"
#include <PacketHandler/PacketHandler.h>
//////////////////////////////////////////////////////////////////////////
DECLARE_BASE_WISE_STEP_FUNCTION()
{
DISPMSG("WiseClient V2 Update\n");
CoreFrame::GetCoreFrame()->Init();
// User할당
Manipulater::CreateLogicFlowByWiseMode();
BOOL bContinue = TRUE;
while(bContinue)
{
Sleep(10);
bContinue = MainFrame::GetMainFrame()->Update();
}
};
REGISTER_STEP_HANDLER_BASE(eWISE_ROUTINES_INIT_MAIN_FRAME);
//////////////////////////////////////////////////////////////////////////
// <MODULE VARIABLEs>
static MainFrame* s_pMainFrame = NULL;
MainFrame::MainFrame()
{
WorkLoadManager::CreateInstance();
}
MainFrame::~MainFrame()
{
WorkLoadManager::DestroyInstance();
PacketHandler::ClosePacketHandler();
SAFE_DELETE(Manipulater::IOCPServerREF());
}
void MainFrame::CreateInstance()
{
if(!s_pMainFrame)
s_pMainFrame = new MainFrame();
}
void MainFrame::DestroyInstance()
{
SAFE_DELETE(s_pMainFrame);
}
MainFrame* MainFrame::GetMainFrame()
{
return s_pMainFrame;
}
//#include <Object/WiseUser.h>
// <METHODs>
BOOL MainFrame::Update()
{
// 네트워크 엔진의 경우는 다른 엔진을 사용할 수 있다고 염두해두자.
//IOCPServer* pIOCPServer = Manipulater::IOCPServerREF();
//pIOCPServer->Update();
//WiseUser* pUser = new WiseUser();
////pUser->Init(NULL);
//WiseUserDelegator rUSER = pUser;
//sSIG_NOTIFY sNTF;
//rUSER.OnMsg(&sNTF);
if(!ConsoleProcess())
return FALSE;
WorkLoadManager::Update();
CoreFrame::GetCoreFrame()->Update(NULL);
return TRUE;
}
//////////////////////////////////////////////////////////////////////////
//
#include <conio.h>
BOOL MainFrame::ConsoleProcess()
{
if(!kbhit())
return TRUE;
CHAR chr = (CHAR)getch();
switch(chr)
{
case 0x1B:
{
BYTE stream[100];
sSIG_STEP& rSIGNAL = *(new (stream) sSIG_STEP());
rSIGNAL.SUBTYPE() = sSIG_STEP::CLOSURE_STEP;
sSIG_STEP_ARG& rARG = rSIGNAL.InstanceOf<sSIG_STEP_ARG>();
rARG.SetInfo(LFG_MAX, S_000920_CLOSURE_EXCEPTION_LF);
CoreFrame::GetCoreFrame()->Update(&rSIGNAL);
WorkLoadManager::ReleaseTaskAll();
//exit(0);
}
return FALSE;
}
return TRUE;
}