desc_lorca.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // package desc_lorca -- главный тип десктопного приложения для lorca
  2. package desc_lorca
  3. import (
  4. "wartank/desc_lorca/lorca_gui"
  5. "wartank/pkg/components/kernel/logger"
  6. "wartank/server"
  7. )
  8. // ДесктопЛорка -- главный тип десктопного приложения для lorca
  9. type ДесктопЛорка struct {
  10. сервер *server.Сервер // Сервер для взаимодействия с лоркой
  11. гипЛорка *lorca_gui.ЛоркаГуи // ГИП десктопа на Лорке
  12. лог *logger.Логгер
  13. }
  14. // НовДесктопЛорка -- возвращает новый десктоп на Лорке
  15. func НовДесктопЛорка() *ДесктопЛорка {
  16. лог := logger.НовЛоггер("ДесктопЛорка")
  17. лог.Инфо("НовДесктопЛорка()\n")
  18. гип, ош := lorca_gui.НовЛоркаГуи()
  19. лог.Паника(ош != nil, "НовДесктопЛорка(): при создании ЛоркаГуи, ош=\n\t%v\n", ош)
  20. сам := &ДесктопЛорка{
  21. гипЛорка: гип,
  22. лог: лог,
  23. }
  24. сам.сервер = server.НовСервер()
  25. return сам
  26. }
  27. // Отменить -- отменяет работу десктопа
  28. func (сам *ДесктопЛорка) Отменить() {
  29. сам.сервер.Отменить()
  30. }
  31. // Пуск -- запускает работу десктопа
  32. func (сам *ДесктопЛорка) Пуск() {
  33. go func() {
  34. ош := сам.сервер.Пуск()
  35. сам.лог.Паника(ош != nil, "Пуск(): при запуске сервера, ош=\n\t%v\n", ош)
  36. }()
  37. сам.сервер.Wg().Wait()
  38. }