// package server -- главный тип приложения, содержит бота, интерфейсы и т.п. package server import ( "fmt" "wartank/pkg/components/kernel" "wartank/pkg/store" "wartank/pkg/types" "wartank/server/serv_bots" "wartank/server/serv_web" ) // Сервер -- главный тип приложения type Сервер struct { *kernel.Kernel хранилище types.IStore ботоФерма *serv_bots.БотоФерма сервВеб *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.НовБотоФерма(сам) 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 } // Store -- возвращает хранилище func (сам *Сервер) Store() types.IStore { return сам.хранилище } // Run -- запускает сервер бота в работу func (сам *Сервер) Run() error { сам.сервВеб.Пуск() <-сам.Done() return nil } // ServBots -- возвращает словарь ботов func (сам *Сервер) ServBots() types.ИБотоФерма { return сам.ботоФерма } // Gui -- возвращает графику фермы-ботов func (сам *Сервер) Gui() types.ИГуи { return nil // сам.gui }