Exemplo n.º 1
0
void PageInfo::release() {
	std::unique_lock<std::mutex> lock(p_cache->p_mutex);
	
	p_flags |= kFlagRelease;
	if((p_flags & kFlagLoaded) && p_useCount == 0)
		doRelease(std::move(lock));
}
Exemplo n.º 2
0
HRESULT CGifSmileyCtrl::UnloadImage( )
{
	if ( m_nTimerId ) 
		::KillTimer( NULL, m_nTimerId );
	if (m_pGifImage)
	{
		LISTIMAGES::iterator it=_listImages.begin();
		while (it!=_listImages.end())
		{
			if ((*it) && (*it)->IsEqual(m_pGifImage))
			{
				if ( (*it)->UnloadImage() && _purgeImageListTimerId==0 ) 
				{
					//_purgeImageListTimerId=::SetTimer(NULL,0, 1000, PurgeImageListTimerProc);
					doRelease();
				}
				break;
			}
			it++;
		}
	}
	m_nTimerId=NULL;   
	m_pGifImage=NULL;
	m_pDelays=NULL;
	m_nFrameCount=0;
	m_nCurrentFrame=0;
	m_nFrameSize=Size(0,0);
	m_sizeExtent.cx=0;
	m_sizeExtent.cy=0;

	return S_OK;
} 
DhcpServerMessage *DHCPD::process(DhcpClientMessage &req)
{
    DhcpServerMessage *reply = NULL;

    req.dump();

    OptServerId sid(req);
    if (sid.present() && sid.value().u != m_pConfig->getIPv4Address().u)
    {
        if (req.broadcasted() && req.messageType() == RTNET_DHCP_MT_REQUEST)
            m_db.cancelOffer(req);

        return NULL;
    }

    switch (req.messageType())
    {
        /*
         * Requests that require server's reply.
         */
        case RTNET_DHCP_MT_DISCOVER:
            reply = doDiscover(req);
            break;

        case RTNET_DHCP_MT_REQUEST:
            reply = doRequest(req);
            break;

        case RTNET_DHCP_MT_INFORM:
            reply = doInform(req);
            break;

        /*
         * Requests that don't have a reply.
         */
        case RTNET_DHCP_MT_DECLINE:
            doDecline(req);
            break;

        case RTNET_DHCP_MT_RELEASE:
            doRelease(req);
            break;

        /*
         * Unexpected or unknown message types.
         */
        case RTNET_DHCP_MT_OFFER: /* FALLTHROUGH */
        case RTNET_DHCP_MT_ACK:   /* FALLTHROUGH */
        case RTNET_DHCP_MT_NAC:   /* FALLTHROUGH */
        default:
            break;
    }

    return reply;
}
Exemplo n.º 4
0
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	static BOOL bAlarm = FALSE;

	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc;

	//if( message == CMouseHook::UWM_DRAGEEND)
	//{
	//	SetCapture(NULL);
	//	SetCursor(LoadCursor(NULL,IDC_ARROW));
	//	CMouseHook::StopHook();
	//	if( g_pChessBoard )
	//	{
	//		g_pChessBoard->GetGameWindow();
	//	}
	//}

	switch (message)
	{
	case WM_ACTIVATEAPP:
		g_bActive = wParam;
		break;
	case WM_COMMAND:
		wmId    = LOWORD(wParam);
		wmEvent = HIWORD(wParam);
		// Parse the menu selections:
		switch (wmId)
		{
		case IDM_CAPTURE:
			break;
		case IDM_ABOUT:
			//test();
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, About);
			break;
		case IDM_EXIT:
			DestroyWindow(hwnd);
			break;
		case IDM_SEC5:
			AppEnv::nThinkTime = 5;			
			CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC5, MF_CHECKED);
			CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC10, MF_UNCHECKED);
			CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC30, MF_UNCHECKED);
			break;
		case IDM_SEC10:
			AppEnv::nThinkTime = 10;
			CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC5, MF_UNCHECKED);
			CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC10, MF_CHECKED);
			CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC30, MF_UNCHECKED);
			break;
		case IDM_SEC30:
			AppEnv::nThinkTime = 30;
			CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC5, MF_UNCHECKED);
			CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC10, MF_UNCHECKED);
			CheckMenuItem(GetMenu(g_hWndMain), IDM_SEC30, MF_CHECKED);
			break;
		case IDM_AUTOPLAY:
			AppEnv::bAutoPlay = !AppEnv::bAutoPlay ;
			if(AppEnv::bAutoPlay )
				CheckMenuItem(GetMenu(g_hWndMain), IDM_AUTOPLAY, MF_CHECKED);
			else
				CheckMenuItem(GetMenu(g_hWndMain), IDM_AUTOPLAY, MF_UNCHECKED);			
		default:
			return DefWindowProc(g_hWndMain, message, wParam, lParam);
		}
		break;

	case WM_PAINT:
		hdc = BeginPaint(hwnd, &ps);

		if ( g_pMainSurface  )
		{
			g_pMainSurface->FastBlt(hdc);
		}

		EndPaint(hwnd, &ps);
		break;
	case WM_LBUTTONDOWN:
		//SetCapture(hwnd);
		//SetCursor(LoadCursor(NULL,IDC_CROSS));
		//CMouseHook::StartHook(hwnd);
		break;
	//case WM_KEYUP:
	//		vk = (int) wParam;

	//		switch( vk )
	//		{
	//		case VK_RETURN:
	//			if ( g_pChessEngine)
	//			{
	//				if ( g_pChessEngine->GetState() == CChessEngine::BusyWait )
	//					g_pChessEngine->SendCommand("stop");
	//			}
	//			//DumpBoradHash();
	//			break;
	//		}
		break;
	case WM_TIMER:
		switch( wParam )
		{
		case APPUPDATE_TIMER:
			if (!AppLoop()) {
			    DestroyWindow(hwnd);
			}
			doUpdate();

			return 0;

		}
		break;
	case WM_DESTROY:
		if(g_bInitialized)
		{
			ExitApp();
		}

		doRelease();

		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hwnd, message, wParam, lParam);
	}
	return 0;
}