battlesvr结构
BattleSvrMain.cpp?
main()入口 ?,調用框架Framework/MainImp.cpp標準的初始化, 循環處理, 結束退出三步驟
/MainImp.cpp
1. 初始化:?init_app
a:?CAppCtx* pAppCtx 基本配置
b: 啟動格式:?
fprintf( stderr, "example usage:\n\t%s"
" --id=busid --bus-key=xxx --channel-size=xxx --business-id=xxx"
" --conf-file=../conf/xxx_conf.xml --routerconf-file=librouter_zk_conf.xml --daemon start\n", servname );
c: 創建?CBattleSvrApp實例, 并且傳給skynet的?gGlobalCtrlBlock.pCurrentApp
d: 檢測pidfile, 創建pidfile, 注冊atexit( remove_pidfile );
e: 配置log文件名
f: 隨機種子初始化
g: 調用CBattleSvrApp的init初始化
?
2. 循環:?run_app
a: ?while循環, ,循環條件pAppCtx->m_is_shutdown
b: 循環dothing:pApp->Tick() tick循環,每幀調用一次
c: 循環dothing2: pApp->Proc() 主要是HandleENet和HandleRouter,兩類消息
d: 如果dothing2沒有什么事情,則sleep,平衡幀速? pApp->Idle()
3. 退出:?fini_app
a: pApp的退出,有標準接口??????????? pApp->Fini();??????????? pApp->Stop();
b: fini_bus()
c: free( pAppCtx )
這是上層的基本框架和流程
?
轉載于:https://www.cnblogs.com/sophirine/p/4936170.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的battlesvr结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 长城小汽车加92、95、97汽油有何区别
- 下一篇: 加速计使用