basestat.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package basestat
  2. import (
  3. // "log"
  4. "wartank/pkg/components/counttime"
  5. "wartank/pkg/types"
  6. )
  7. /*
  8. Статистика по базе
  9. */
  10. // BaseStat -- статистика по базе
  11. type BaseStat struct {
  12. app types.IServer
  13. poligonTime types.ICountTime // Сколько осталось времени работы полигона
  14. }
  15. // NewBaseStat -- возвращает новый *BaseStat
  16. func NewBaseStat(app types.IServer) *BaseStat {
  17. sf := &BaseStat{
  18. app: app,
  19. }
  20. sf.poligonTime = counttime.NewCountTime(app)
  21. go sf.run()
  22. return sf
  23. }
  24. // Главный цикл ожидания
  25. func (sf *BaseStat) run() {
  26. for range sf.poligonTime.ChanSig() {
  27. }
  28. }
  29. // PoligonTime -- сколько осталось времени работы полигона
  30. func (sf *BaseStat) PoligonTime() types.ICountTime {
  31. return sf.poligonTime
  32. }
  33. // PoligonUpdate -- обновляет время работы полигона
  34. func (sf *BaseStat) PoligonUpdate(poligonFact string) {
  35. if err := sf.poligonTime.Parse(poligonFact); err != nil {
  36. // log._rintf("ERRO BaseStat.PoligonUpdate(): при обновлении времени работы полигона\n\tpoligonFact=%q\terr=%v\n", poligonFact, err)
  37. }
  38. }