// package server -- главный тип приложения, содержит бота, интерфейсы и т.п. package server import ( "wartank/pkg/kernel/kernel_ctx" "wartank/pkg/kernel/kernel_log" "wartank/pkg/kernel/kernel_serv_http" "wartank/pkg/kernel/kernel_store" . "wartank/pkg/kernel/kernel_types" . "wartank/server/lev0/types" "wartank/server/lev2/serv_bots" "wartank/server/lev2/serv_web" "wartank/server/lev2/server_stat" ) // Сервер -- главный тип приложения type Сервер struct { ИЯдроКонтекст ботоФерма *serv_bots.БотоФерма сервСтат ИСерверСтат лог ИЯдроЛог ядроВеб ИЯдроСерверВеб } // НовСервер -- возвращает новый объект приложения func НовСервер() *Сервер { лог := kernel_log.НовЛоггер("Сервер") лог.Инфо("НовСервер()\n") сам := &Сервер{ ИЯдроКонтекст: kernel_ctx.ПолучЯдроКонтекст(), лог: лог, } _ = kernel_store.GetKernelStore(сам) сам.ядроВеб = kernel_serv_http.GetKernelServHttp(сам) сам.Уст("сервер", сам) сам.ботоФерма = serv_bots.НовБотоФерма(сам) _ = serv_web.НовСервВеб(сам) сам.сервСтат = server_stat.НовСерверСтат(сам) _ = ИСервер(сам) return сам } // Пуск -- запускает сервер бота в работу func (сам *Сервер) Пуск() error { сам.лог.Инфо("Сервер.Пуск()\n") сам.ядроВеб.Run() <-сам.Конт().Done() return nil } // Стат -- возвращает статистику сервера func (сам *Сервер) Стат() ИСерверСтат { return сам.сервСтат } // ServBots -- возвращает словарь ботов func (сам *Сервер) ServBots() ИБотоФерма { return сам.ботоФерма }