⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 warsvrwin32ntenginetask.cpp

📁 ftpserver very good sample
💻 CPP
字号:
#include "StdAfx.h"#include "WarSvrWin32NtEngineTask.h"   // class implemented#ifndef WAR_SVR_WIN32_NT_ENGINE_TASK_H#   include "WarSvrWin32NtEngineTask.h"#endif#ifndef WAR_THREAD_FOR_POOL_H#   include "WarThreadForPool.h"#endif#ifndef WAR_SVR_WIN32_NT_ENGINE_H#   include "WarSvrWin32NtEngine.h"#endif/////////////////////////////// PUBLIC /////////////////////////////////////////============================= LIFECYCLE ====================================WarSvrWin32NtEngineTask::WarSvrWin32NtEngineTask(    WarSvrWin32NtEngine& rEngine)    : mrEngine(rEngine){}// WarSvrWin32NtEngineTaskWarSvrWin32NtEngineTask::~WarSvrWin32NtEngineTask(){}// ~WarSvrWin32NtEngineTask//============================= OPERATORS ====================================//============================= OPERATIONS ===================================//============================= ACCESS     ===================================//============================= INQUIRY    ===================================/////////////////////////////// PROTECTED  ///////////////////////////////////void WarSvrWin32NtEngineTask::OnProcessing(WarThreadForPool * pThread){    while(!mpThread->IsExiting())    {        DWORD dwBytes = 0;        DWORD dwKey = 0;        LPOVERLAPPED pol_data = NULL;        DWORD dwError = 0;        BOOL was_successfull = ::GetQueuedCompletionStatus(            mrEngine.GetPort(),             &dwBytes,            &dwKey,             &pol_data,             GetWaitTimeout());        if (pol_data && dwKey)        {            if (!was_successfull)                dwError = ::GetLastError();            // dwKey is pointer to a function that handles the event            ((LPOVERLAPPED_COMPLETION_ROUTINE)dwKey)(dwError,                dwBytes, pol_data);        }        else        {            WarError system_error;            system_error.Capture();            if (system_error.SystemError() != WAIT_TIMEOUT)            {                if (!system_error)                    system_error = WAR_ERR_SYSTEM_CALL_FAILED;                WarThrow(system_error, "GetQueuedCompletionStatus()");            }        }    }}/////////////////////////////// PRIVATE    ///////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -