From 7086631f1a93cfb9b29620ed143a2e6be46761f4 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 7 Sep 2023 16:20:04 +0800 Subject: [PATCH] 1 --- server/hallserver/app/app.go | 3 +- server/hallserver/common/types.go | 2 +- server/hallserver/constant/constant.go | 1 + server/hallserver/global/global.go | 49 ++++++++++++++++++++++++++ server/hallserver/initialize/enter.go | 39 ++++---------------- server/hallserver/room/export.go | 16 ++++----- third_party/q5 | 2 +- 7 files changed, 68 insertions(+), 44 deletions(-) diff --git a/server/hallserver/app/app.go b/server/hallserver/app/app.go index 419766a9..7d7bf43d 100644 --- a/server/hallserver/app/app.go +++ b/server/hallserver/app/app.go @@ -20,9 +20,10 @@ func (this *app) GetPkgName() string { return "imserver" } -func (this *app) SetCb(initCb func(), unInitCb func()) { +func (this *app) Run(initCb func(), unInitCb func()) { this.initCb = initCb this.unInitCb = unInitCb + f5.Run(this) } func (this *app) Init() { diff --git a/server/hallserver/common/types.go b/server/hallserver/common/types.go index 1d3d09ab..6549776d 100644 --- a/server/hallserver/common/types.go +++ b/server/hallserver/common/types.go @@ -36,6 +36,6 @@ type HttpListener interface { } type App interface { - SetCb(func(), func()) + Run(func(), func()) AddNetMsg(*f5.MsgHdr) } diff --git a/server/hallserver/constant/constant.go b/server/hallserver/constant/constant.go index 9dfdaea2..c1726233 100644 --- a/server/hallserver/constant/constant.go +++ b/server/hallserver/constant/constant.go @@ -21,5 +21,6 @@ const ( WSPLISTENER_MODULE_IDX HANDLER_MGR_MODULE_IDX HTTP_LISTENER_MODULE_IDX + PLAYER_MGR_MODULE_IDX MAX_MODULE_IDX ) diff --git a/server/hallserver/global/global.go b/server/hallserver/global/global.go index 06e02cfb..1dbefe66 100644 --- a/server/hallserver/global/global.go +++ b/server/hallserver/global/global.go @@ -7,6 +7,13 @@ import ( ) var modules [constant.MAX_MODULE_IDX]q5.Module +var initOrders = []int32 { + constant.HTTP_LISTENER_MODULE_IDX, + constant.PLAYER_MGR_MODULE_IDX, + constant.ROOMMGR_MODULE_IDX, + constant.WSPLISTENER_MODULE_IDX, + constant.HTTP_LISTENER_MODULE_IDX, +} var app common.App var roomMgr common.RoomMgr @@ -31,4 +38,46 @@ func GetApp() common.App { func RegModule(idx int32, m q5.Module) { modules[idx] = m + switch (idx) { + case constant.APP_MODULE_IDX: + { + app = m.(common.App) + } + case constant.WSPLISTENER_MODULE_IDX: + { + wspListener = m.(common.WspListener) + } + case constant.HANDLER_MGR_MODULE_IDX: + { + //wspListener = m.(.common.H) + } + case constant.HTTP_LISTENER_MODULE_IDX: + { + //wspListener = m.(.common.H) + } + case constant.PLAYER_MGR_MODULE_IDX: + { + playerMgr = m.(common.PlayerMgr) + } + case constant.ROOMMGR_MODULE_IDX: + { + roomMgr = m.(common.RoomMgr) + } + default: + { + panic("unknow module") + } + } +} + +func InitModules() { + for _, val := range(initOrders) { + modules[val].Init() + } +} + +func UnInitModules() { + for _, val := range(initOrders) { + modules[val].UnInit() + } } diff --git a/server/hallserver/initialize/enter.go b/server/hallserver/initialize/enter.go index 3610cb14..38c1e25e 100644 --- a/server/hallserver/initialize/enter.go +++ b/server/hallserver/initialize/enter.go @@ -1,41 +1,14 @@ package initialize -/* import ( - "f5" + _ "main/room" + _ "main/player" + _ "main/listener" + _ "main/app" - "main/global" - "main/room" - "main/player" - "main/listener" - "main/app" + . "main/global" ) -*/ func Init() { - //app.GetApp().SetCb(initApp, unInitApp) - //f5.Run(app.GetApp()) -} - -func initApp() { - /* - global.SetPlayerMgr(player.GetPlayerMgr()) - global.SetRoomMgr(room.GetRoomMgr()) - global.SetWspListener(listener.GetWspListener()) - - listener.GetHandlerMgr().Init() - player.GetPlayerMgr().Init() - room.GetRoomMgr().Init() - listener.GetWspListener().Init() - listener.GetHttpListener().Init() - */ -} - -func unInitApp() { - /* - listener.GetHttpListener().UnInit() - listener.GetWspListener().UnInit() - room.GetRoomMgr().UnInit() - player.GetPlayerMgr().UnInit() - */ + GetApp().Run(InitModules, UnInitModules) } diff --git a/server/hallserver/room/export.go b/server/hallserver/room/export.go index 4f6bd286..0c21da58 100644 --- a/server/hallserver/room/export.go +++ b/server/hallserver/room/export.go @@ -1,12 +1,12 @@ package room -var g = struct { - roomMgr *roomMgr -} {} +import ( + "main/constant" + "main/global" +) -func GetRoomMgr() *roomMgr { - if (g.roomMgr == nil) { - g.roomMgr = new(roomMgr) - } - return g.roomMgr +var _roomMgr = new(roomMgr) + +func init() { + global.RegModule(constant.ROOMMGR_MODULE_IDX, _roomMgr) } diff --git a/third_party/q5 b/third_party/q5 index 98231336..ed967899 160000 --- a/third_party/q5 +++ b/third_party/q5 @@ -1 +1 @@ -Subproject commit 9823133648feefa1692f7e451b94d2ae00184785 +Subproject commit ed967899c443330d8a83e121f28cf11768df6611