| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // package server -- главный тип приложения, содержит бота, интерфейсы и т.п.
- package server
- import (
- "fmt"
- "wartank/pkg/components/kernel"
- "wartank/pkg/store"
- "wartank/pkg/types"
- "wartank/server/gui"
- "wartank/server/serv_bots"
- )
- // Server -- главный тип приложения
- type Server struct {
- *kernel.Kernel
- store types.IStore
- servBots *serv_bots.ServBots
- gui *gui.Gui
- }
- // NewServer -- возвращает новый объект приложения
- func NewServer() (sf *Server, err error) {
- kernel, err := kernel.NewKernel()
- if err != nil {
- return nil, fmt.Errorf("NewServer(): in make IKernel, err=\n\t%w", err)
- }
- sf = &Server{
- Kernel: kernel,
- }
- sf.store, err = store.NewStore(sf)
- if err != nil {
- return nil, fmt.Errorf("NewServer(): in open store, err=%w", err)
- }
- sf.servBots, err = serv_bots.NewServBots(sf)
- if err != nil {
- return nil, fmt.Errorf("NewServer(): in create ServBots, err=%w", err)
- }
- sf.gui, err = gui.NewGui(sf)
- if err != nil {
- return nil, fmt.Errorf("NewServer(): in make Gui, err=\n\t%w", err)
- }
- return sf, nil
- }
- // Store -- возвращает хранилище
- func (sf *Server) Store() types.IStore {
- return sf.store
- }
- // Run -- запускает сервер бота в работу
- func (sf *Server) Run() error {
- // go sf.bot.Run()
- sf.gui.Run()
- <-sf.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 *Server) ServBots() types.IServBots {
- return sf.servBots
- }
- // Gui -- возвращает графику фермы-ботов
- func (sf *Server) Gui() types.ИГуи {
- return sf.gui
- }
|