// package applic -- главный тип приложения, содержит бота, интерфейсы и т.п. package applic import ( . "gitp78su.ipnodns.ru/svi/kern" . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes" . "wartank/app/lev0/types" "wartank/app/lev3/farm_bots" "wartank/app/lev3/serv_web" "wartank/app/lev3/server_stat" ) // Приложение -- главный тип приложения type Приложение struct { IKernelCtx ботоФерма *farm_bots.БотоФерма сервСтат ИСерверСтат лог ILogBuf ядроВеб IKernelServerHttp } // НовПриложение -- возвращает новый объект приложения func НовПриложение() *Приложение { лог := NewLogBuf() лог.Info("НовПриложение()\n") сам := &Приложение{ IKernelCtx: GetKernelCtx(), лог: лог, } _ = GetKernelStoreKv() сам.ядроВеб = GetKernelServerHttp() сам.Set("приложение", сам, "Приложение WarTank") сам.ботоФерма = farm_bots.НовБотоФерма(сам) _ = serv_web.НовСервВеб(сам) сам.сервСтат = server_stat.НовСерверСтат(сам) _ = ИПриложение(сам) return сам } // Пуск -- запускает сервер бота в работу func (сам *Приложение) Пуск() { сам.лог.Info("НовПриложение.Пуск()\n") сам.ядроВеб.Run() <-сам.Ctx().Done() } // Стат -- возвращает статистику сервера func (сам *Приложение) Стат() ИСерверСтат { return сам.сервСтат } // ServBots -- возвращает словарь ботов func (сам *Приложение) ServBots() ИБотоФерма { return сам.ботоФерма }