| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // package server -- главный тип приложения, содержит бота, интерфейсы и т.п.
- package server
- import (
- "fmt"
- "wartank/pkg/components/kernel"
- "wartank/pkg/store"
- "wartank/pkg/types"
- "wartank/server/serv_bots"
- serv_web "wartank/server/serv_http"
- // "wartank/server/serv_desktop"
- )
- // Сервер -- главный тип приложения
- type Сервер struct {
- *kernel.Kernel
- хранилище types.IStore
- ботоФерма *serv_bots.БотоФерма
- // gui *serv_desktop.СерверДесктоп
- сервВеб *serv_web.СервВеб
- }
- // НовСервер -- возвращает новый объект приложения
- func НовСервер() (*Сервер, error) {
- kernel, ош := kernel.NewKernel()
- if ош != nil {
- return nil, fmt.Errorf("НовСервер(): in make IKernel, err=\n\t%w", ош)
- }
- сам := &Сервер{
- Kernel: kernel,
- }
- сам.хранилище, ош = store.NewStore(сам)
- if ош != nil {
- return nil, fmt.Errorf("НовСервер(): in open store, err=\n\t%w", ош)
- }
- сам.ботоФерма, ош = serv_bots.NewServBots(сам)
- if ош != nil {
- return nil, fmt.Errorf("НовСервер(): in create ServBots, err=\n\t%w", ош)
- }
- /*
- sf.gui, err = serv_desktop.НовСерверДесктоп(sf)
- 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
- }
- // Store -- возвращает хранилище
- func (sf *Сервер) Store() types.IStore {
- return sf.хранилище
- }
- // Run -- запускает сервер бота в работу
- func (сам *Сервер) Run() error {
- // go sf.bot.Run()
- // sf.gui.Run()
- сам.сервВеб.Пуск()
- <-сам.Done()
- // if err := sf._erverWeb.Error(); err != nil {
- // return fmt.Errorf("Server.Run(): in work IServHttp, err=\n\t%w", err)
- // }
- // if err := sf.bot.Error(); err != nil {
- // return fmt.Errorf("Server.Run(): in work IBot, err=\n\t%w", err)
- // }
- return nil
- }
- // ServBots -- возвращает словарь ботов
- func (sf *Сервер) ServBots() types.IServBots {
- return sf.ботоФерма
- }
- // Gui -- возвращает графику фермы-ботов
- func (sf *Сервер) Gui() types.ИГуи {
- return nil // sf.gui
- }
|