applic.go 2.0 KB

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