server.go 1.7 KB

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