mod_serv.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // package mod_serv -- главный тип приложения, содержит бота, интерфейсы и т.п.
  2. package mod_serv
  3. import (
  4. "time"
  5. . "gitp78su.ipnodns.ru/svi/kern"
  6. . "gitp78su.ipnodns.ru/svi/kern/kc/helpers"
  7. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  8. . "wartank/app/lev0/types"
  9. "wartank/app/lev3/farm_bots"
  10. "wartank/app/lev3/serv_web"
  11. "wartank/app/lev3/server_stat"
  12. )
  13. // МодульСервер -- главный тип приложения
  14. type МодульСервер struct {
  15. IKernelModule
  16. конт IKernelCtx
  17. ботоФерма *farm_bots.БотоФерма
  18. сервСтат ИСерверСтат
  19. лог ILogBuf
  20. }
  21. // НовМодСервер -- возвращает новый модуль сервера
  22. func НовМодСервер() *МодульСервер {
  23. лог := NewLogBuf()
  24. лог.Info("НовМодСервер()\n")
  25. конт := GetKernelCtx()
  26. сам := &МодульСервер{
  27. конт: конт,
  28. IKernelModule: NewKernelModule("мод_сервер"),
  29. лог: лог,
  30. }
  31. конт.Set("мод_сервер", сам, "Модуль сервера WarBot")
  32. _ = GetKernelStoreKv()
  33. сам.ботоФерма = farm_bots.НовБотоФерма()
  34. сервВеб := serv_web.НовСервВеб()
  35. сам.Ctx().Set("сервВеб", сервВеб, "Веб-сервер модуля сервера")
  36. сам.сервСтат = server_stat.НовСерверСтат()
  37. сам.Ctx().Set("сервСтат", сам.сервСтат, "Статистика сервера")
  38. _ = ИПриложение(сам)
  39. return сам
  40. }
  41. // Пуск -- запускает сервер бота в работу
  42. func (сам *МодульСервер) Run() {
  43. сам.лог.Info("МодульСервер.Пуск()\n")
  44. go сам.пуск()
  45. }
  46. func (сам *МодульСервер) пуск() {
  47. time.Sleep(time.Minute * 20)
  48. сам.конт.Cancel()
  49. Hassert(false, "МодульСервер.пуск(): сработал таймер.")
  50. }
  51. // Стат -- возвращает статистику сервера
  52. func (сам *МодульСервер) Стат() ИСерверСтат {
  53. return сам.сервСтат
  54. }
  55. // ServBots -- возвращает словарь ботов
  56. func (сам *МодульСервер) ServBots() ИБотоФерма {
  57. return сам.ботоФерма
  58. }