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