mod_serv.go 2.0 KB

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