mod_keeper.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // package mod_keeper -- модуль сторожа ядра
  2. package mod_keeper
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/krn/kctx"
  5. "gitp78su.ipnodns.ru/svi/kern/krn/kmodule"
  6. "gitp78su.ipnodns.ru/svi/kern/krn/kserv_http"
  7. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  8. "gitp78su.ipnodns.ru/svi/kern/mds/mod_serv_http/http_api"
  9. "gitp78su.ipnodns.ru/svi/kern/mds/mod_serv_http/page_module"
  10. "gitp78su.ipnodns.ru/svi/kern/mds/mod_serv_http/page_modules"
  11. "gitp78su.ipnodns.ru/svi/kern/mds/mod_serv_http/page_monolit"
  12. )
  13. // ModuleKeeper -- модуль сторожа
  14. type ModuleKeeper struct {
  15. IKernelModule
  16. kCtx IKernelCtx
  17. kServHttp IKernelServerHttp
  18. log ILogBuf
  19. }
  20. // NewModuleKeeper -- возвращает новый модуль сторожа ядра
  21. func NewModuleKeeper() *ModuleKeeper {
  22. sf := &ModuleKeeper{
  23. kCtx: kctx.GetKernelCtx(),
  24. IKernelModule: kmodule.NewKernelModule("kKeeper"),
  25. kServHttp: kserv_http.GetKernelServHttp(),
  26. }
  27. sf.log = sf.kCtx.Keeper().Log()
  28. _ = page_monolit.GetPageMonolit()
  29. _ = page_modules.GetPageModules()
  30. _ = page_module.GetPageModule()
  31. _ = http_api.NewHttpApi()
  32. return sf
  33. }
  34. // Run -- запускает модуль в работу
  35. func (sf *ModuleKeeper) Run() {
  36. sf.log.Info("ModuleKernelCtx.Run(): module=%v, is run", sf.Name())
  37. go sf.kServHttp.Run()
  38. }
  39. // IsWork -- признак работы модуля
  40. func (sf *ModuleKeeper) IsWork() bool {
  41. return sf.kCtx.Wg().IsWork()
  42. }