您的位置:首页 > 其它

网狐框架分析三--中心服务器 150617

2015-06-17 18:17 295 查看
##1 中心服务器 CenterServer 流程

```flow

st=>start: Start

io=>inputoutput: verification

op=>operation: Your Operation

cond=>condition: Yes or No?

e=>end

st->io->op->cond

cond(yes)->e

cond(no)->op

```

---

#2 流程分析

## CCenterServerDlg::OnBnClickedStartService()//启动

=>m_CenterService.StartService()//启动

    ==>CCenterService::StartService()//开始服务

    

    ==>m_TCPNetworkEngine->SetTCPNetworkEngineEvent()//内核组件

        ===>CTCPNetworkEngine::SetTCPNetworkEngineEvent()//设置接口

        ===>m_QueueServiceEvent.SetQueueServiceSink()

        ===>SetQueueServiceSink()

        ===>m_pIQueueService.StartService()

        ===>CQueueService::StartService()//建立完成端口,启用线程

            ====>m_QueueServiceThread.StartThread()//启动线程

            ====>CServiceThread::StartThread()  //_beginthreadex

            ====>CServiceThread::ThreadFunction()// 线程函数

                =====>pServiceThread->OnEventThreadRun()//while循环调用函数

                =====>CQueueServiceThread::OnEventThreadRun()//while循环函数

                    ======>GetQueuedCompletionStatus()//等待完成端口,接收PostQueuedCompletionStatus发送的消息

                    ------>pQueueService->OnQueueServiceThread()//接收后消息处理

                    ------>CQueueService::OnQueueServiceThread()//

                    ------>m_pIQueueServiceSink->OnQueueServiceSink()//推送消息

            

        

    

    ==>m_AttemperEngine->StartService()//调度引擎

        ===>m_QueueService.StartService()//启动队列

        ===>CQueueService::StartService()//建立完成端口,启动线程

            ====>m_QueueServiceThread.StartThread()//

            ====>CServiceThread::StartThread()//_beginthreadex

                =====>CServiceThread::ThreadFunction()//

                    ======>pServiceThread->OnEventThreadRun()//while循环调用函数

        

    

    ==>m_DataBaseEngine->StartService()//数据引擎

        ===>CDataBaseEngine::StartService()//启动服务

            ====>m_QueueServiceEvent.SetQueueServiceSink()//设置队列

                =====>CQueueService::StartService()//建立完成端口,起线程

                    ======>m_QueueServiceThread.StartThread()//

                    ======> CServiceThread::StartThread()//_beginthreadex

    

    ==>m_TCPNetworkEngine->StartService()//网络引擎

        ===>CTCPNetworkEngine::StartService()//

            //1.获取cpu线程数

            //2.建立完成端口(启动监听线程while循环调用函数)

            //3.建立监听SOCKET

            //4.启动发送队列 m_SendQueueService.StartService();

            //5.建立读写线程,建立应答线程,运行读写线程,网络检测线程,运行应答线程

---
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: