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 )
这是上层的基本框架和流程