server.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // package server -- главный тип приложения, содержит бота, интерфейсы и т.п.
  2. package server
  3. import (
  4. "fmt"
  5. "wartank/pkg/components/kernel"
  6. "wartank/pkg/types"
  7. "wartank/server/serv_bots"
  8. "wartank/server/serv_web"
  9. )
  10. // Сервер -- главный тип приложения
  11. type Сервер struct {
  12. types.ИЯдро
  13. ботоФерма *serv_bots.БотоФерма
  14. сервВеб *serv_web.СервВеб
  15. }
  16. // НовСервер -- возвращает новый объект приложения
  17. func НовСервер() (*Сервер, error) {
  18. ядро, ош := kernel.НовЯдро()
  19. if ош != nil {
  20. return nil, fmt.Errorf("НовСервер(): in make IKernel, err=\n\t%w", ош)
  21. }
  22. сам := &Сервер{
  23. ИЯдро: ядро,
  24. }
  25. сам.ботоФерма, ош = serv_bots.НовБотоФерма(сам)
  26. if ош != nil {
  27. return nil, fmt.Errorf("НовСервер(): in create ServBots, err=\n\t%w", ош)
  28. }
  29. /*
  30. сам.gui, err = serv_desktop.НовСерверДесктоп(сам)
  31. if err != nil {
  32. return nil, fmt.Errorf("НовСервер(): in make Gui, err=\n\t%w", err)
  33. }
  34. */
  35. сам.сервВеб, ош = serv_web.НовСервВеб(сам)
  36. if ош != nil {
  37. return nil, fmt.Errorf("НовСервер(): при создании СервВеб, ош=\n\t%w", ош)
  38. }
  39. return сам, nil
  40. }
  41. // Run -- запускает сервер бота в работу
  42. func (сам *Сервер) Run() error {
  43. сам.сервВеб.Пуск()
  44. <-сам.Done()
  45. return nil
  46. }
  47. // ServBots -- возвращает словарь ботов
  48. func (сам *Сервер) ServBots() types.ИБотоФерма {
  49. return сам.ботоФерма
  50. }
  51. // Gui -- возвращает графику фермы-ботов
  52. func (сам *Сервер) Gui() types.ИГуи {
  53. return nil // сам.gui
  54. }