diff --git a/server/adminserver/app/app.go b/server/adminserver/app/app.go index 755bbe8e..7b8b041d 100644 --- a/server/adminserver/app/app.go +++ b/server/adminserver/app/app.go @@ -1,35 +1,34 @@ -package main +package app import ( "f5" - "main/db" "mt" + "main/constant" ) -type App struct { +type app struct { } -func (this *App) GetPkgName() string { +func (this *app) GetPkgName() string { return "adminserver" } -func (this *App) Init() { +func (this *app) Init() { f5.LoadMetaTable(mt.Table) this.registerDataSources() - db.InitDB() - ginMgr.init() + //ginMgr.init() } -func (this *App) UnInit() { - ginMgr.unInit() +func (this *app) UnInit() { + //ginMgr.unInit() } -func (this *App) Update() { +func (this *app) Update() { } -func (this *App) registerDataSources() { +func (this *app) registerDataSources() { f5.GetJsStyleDb().RegisterDataSource( - GAME_DB, + constant.GAME_DB, mt.Table.GameDb.GetById(0).GetHost(), mt.Table.GameDb.GetById(0).GetPort(), mt.Table.GameDb.GetById(0).GetUser(), @@ -37,7 +36,7 @@ func (this *App) registerDataSources() { mt.Table.GameDb.GetById(0).GetDatabase(), 30) f5.GetJsStyleDb().RegisterDataSource( - FRIEND_DB, + constant.FRIEND_DB, mt.Table.FriendDb.GetById(0).GetHost(), mt.Table.FriendDb.GetById(0).GetPort(), mt.Table.FriendDb.GetById(0).GetUser(), diff --git a/server/adminserver/app/export.go b/server/adminserver/app/export.go new file mode 100644 index 00000000..668918d5 --- /dev/null +++ b/server/adminserver/app/export.go @@ -0,0 +1,12 @@ +package app + +import ( + "main/constant" + "main/global" +) + +var _app = new(app) + +func init() { + global.RegModule(constant.APP_MODULE_IDX, _app) +} diff --git a/server/adminserver/common/types.go b/server/adminserver/common/types.go new file mode 100644 index 00000000..3caba173 --- /dev/null +++ b/server/adminserver/common/types.go @@ -0,0 +1,5 @@ +package common + +type App interface { + Run(func(), func()) +} diff --git a/server/adminserver/constant/constant.go b/server/adminserver/constant/constant.go index b7bdd6ae..1885eec0 100644 --- a/server/adminserver/constant/constant.go +++ b/server/adminserver/constant/constant.go @@ -8,3 +8,8 @@ const ( GAME_DB = "gamedb" FRIEND_DB = "firenddb" ) + +const ( + APP_MODULE_IDX = iota + MAX_MODULE_IDX +) diff --git a/server/adminserver/global/global.go b/server/adminserver/global/global.go new file mode 100644 index 00000000..afa814ae --- /dev/null +++ b/server/adminserver/global/global.go @@ -0,0 +1,47 @@ +package global + +import ( + "q5" + "fmt" + "main/constant" + "main/common" +) + +var modules [constant.MAX_MODULE_IDX]q5.Module +var initOrders = []int32 { +} + +var app common.App + +func GetApp() common.App { + return app +} + +func RegModule(idx int32, m q5.Module) { + fmt.Printf("RegModule module %d\n", idx) + modules[idx] = m + switch (idx) { + case constant.APP_MODULE_IDX: + { + app = m.(common.App) + } + default: + { + panic("unknow module") + } + } +} + +func InitModules() { + for _, val := range(initOrders) { + fmt.Printf("init module %d\n", val) + modules[val].Init() + } +} + +func UnInitModules() { + for _, val := range(initOrders) { + fmt.Printf("unInit module %d", val) + modules[val].UnInit() + } +} diff --git a/server/adminserver/initialize/enter.go b/server/adminserver/initialize/enter.go index c54029a7..be0f3bad 100644 --- a/server/adminserver/initialize/enter.go +++ b/server/adminserver/initialize/enter.go @@ -1,5 +1,11 @@ package initialize -func Init() { +import ( + _ "main/app" + . "main/global" +) + +func Init() { + GetApp().Run(InitModules, UnInitModules) }