| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- // 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
- }
|