server.go 2.0 KB

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