void ProactorService::handle_time_out(const ACE_Time_Value& tv, const void* arg) { ACE_UNUSED_ARG(tv); ACE_UNUSED_ARG(arg); if(m_bServiceCloseFlag == true && m_pTimerLock->Acquire() == true) { UnregisterTimer(); delete this; } }
void ProactorService::ReserveClose() { if(this->handle() != ACE_INVALID_HANDLE) ACE_OS::closesocket(this->handle()); this->handle(ACE_INVALID_HANDLE); UnregisterTimer(); ProactorServiceMapSingleton::instance()->UnRegister(m_Serial); ISession::OnDisconnect(this->m_Serial); m_bServiceCloseFlag = true; }
LRESULT CALLBACK C3DCoordinateAxisMain::WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { TCHAR log[256]= {0,}; //std::string info; HDC hdc; PAINTSTRUCT ps; //POINT pt; switch(iMsg) { case WM_TIMER: Update(); return 0; case WM_LBUTTONDOWN: { POINT pt = {LOWORD(lParam), HIWORD(lParam)}; if( m_clickCnt < CLICK_MAX ) { m_clickVecPt[m_clickCnt].x = pt.x - WIN_WIDTH/2; m_clickVecPt[m_clickCnt].y = WIN_HEIGHT/2 - pt.y; m_clickVecPt[m_clickCnt].z = 0; m_clickCnt++; if(m_clickCnt == CLICK_MAX) { VECTOR tempVec[2]; for (UINT i = 0 ; i < m_clickCnt ; i++ ) { D3DVecNormalize( &tempVec[i], &m_clickVecPt[i]); } //cos0 float cos = D3DVecDot( &tempVec[0], &tempVec[1] ); //각도로 변경 degree = acosf(cos)*180/PI; //외적 D3DVecCross(&m_crossVec, &tempVec[0], &tempVec[1]); D3DVecNormalize( &m_crossVec, &m_crossVec ); } } } return 0; case WM_RBUTTONDOWN: if(m_clickCnt > 0) { m_clickCnt--; } return 0; case WM_PAINT: { hdc = BeginPaint(hWnd,&ps); PreRender(hdc); Render(m_hMemDc); PostRender(hdc); EndPaint(hWnd,&ps); } return 0; case WM_KEYDOWN: switch(wParam) { case VK_ESCAPE: PostQuitMessage(0); UnregisterTimer(); break; } break; case WM_DESTROY: PostQuitMessage(0); UnregisterTimer(); return 0; } return DefWindowProc(hWnd, iMsg, wParam, lParam); }