sophirine

  :: :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

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 )

这是上层的基本框架和流程

 

posted on 2015-11-04 15:34  sophirine  阅读(148)  评论(0编辑  收藏  举报