| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // package server -- главный тип приложения, содержит бота, интерфейсы и т.п.
- package server
- import (
- "fmt"
- "wartank/pkg/components/kernel"
- "wartank/pkg/types"
- "wartank/server/serv_bots"
- "wartank/server/serv_web"
- "wartank/server/server_stat"
- )
- // Сервер -- главный тип приложения
- type Сервер struct {
- types.ИЯдро
- ботоФерма *serv_bots.БотоФерма
- сервВеб *serv_web.СервВеб
- сервСтат types.ИСерверСтат
- }
- // НовСервер -- возвращает новый объект приложения
- func НовСервер() (*Сервер, error) {
- ядро, ош := kernel.НовЯдро()
- if ош != nil {
- return nil, fmt.Errorf("НовСервер(): in make IKernel, err=\n\t%w", ош)
- }
- сам := &Сервер{
- ИЯдро: ядро,
- }
- сам.ботоФерма, ош = serv_bots.НовБотоФерма(сам)
- if ош != nil {
- return nil, fmt.Errorf("НовСервер(): in create ServBots, err=\n\t%w", ош)
- }
- сам.сервВеб, ош = serv_web.НовСервВеб(сам)
- if ош != nil {
- return nil, fmt.Errorf("НовСервер(): при создании СервВеб, ош=\n\t%w", ош)
- }
- сам.сервСтат, ош = server_stat.НовСерверСтат(сам)
- if ош != nil {
- return nil, fmt.Errorf("НовСервер(): при создании ИСервСтат, ош=\n\t%w", ош)
- }
- return сам, nil
- }
- // Run -- запускает сервер бота в работу
- func (сам *Сервер) Run() error {
- сам.сервВеб.Пуск()
- <-сам.Done()
- return nil
- }
- // Стат -- возвращает статистику сервера
- func (сам *Сервер) Стат() types.ИСерверСтат {
- return сам.сервСтат
- }
- // ServBots -- возвращает словарь ботов
- func (сам *Сервер) ServBots() types.ИБотоФерма {
- return сам.ботоФерма
- }
|