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