Ejemplo n.º 1
0
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;	
	}
}
Ejemplo n.º 2
0
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);
}