server.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // package server -- главный тип приложения, содержит бота, интерфейсы и т.п.
  2. package server
  3. import (
  4. "wartank/pkg/kernel"
  5. . "wartank/pkg/kernel/kernel_types"
  6. "wartank/pkg/kernel/logger"
  7. . "wartank/server/lev0/types"
  8. "wartank/server/serv_bots"
  9. "wartank/server/serv_web"
  10. "wartank/server/server_stat"
  11. )
  12. // Сервер -- главный тип приложения
  13. type Сервер struct {
  14. ИЯдро
  15. ботоФерма *serv_bots.БотоФерма
  16. сервВеб *serv_web.СервВеб
  17. сервСтат ИСерверСтат
  18. лог ИЛоггер
  19. }
  20. // НовСервер -- возвращает новый объект приложения
  21. func НовСервер() *Сервер {
  22. лог := logger.НовЛоггер("Сервер")
  23. лог.Инфо("НовСервер()\n")
  24. сам := &Сервер{
  25. ИЯдро: kernel.НовЯдро(),
  26. лог: лог,
  27. }
  28. сам.ботоФерма = serv_bots.НовБотоФерма(сам)
  29. сам.сервВеб = serv_web.НовСервВеб(сам)
  30. сам.сервСтат = server_stat.НовСерверСтат(сам)
  31. return сам
  32. }
  33. // Пуск -- запускает сервер бота в работу
  34. func (сам *Сервер) Пуск() error {
  35. сам.лог.Инфо("Сервер.Пуск()\n")
  36. сам.сервВеб.Пуск()
  37. <-сам.Done()
  38. return nil
  39. }
  40. // Стат -- возвращает статистику сервера
  41. func (сам *Сервер) Стат() ИСерверСтат {
  42. return сам.сервСтат
  43. }
  44. // ServBots -- возвращает словарь ботов
  45. func (сам *Сервер) ServBots() ИБотоФерма {
  46. return сам.ботоФерма
  47. }