service_pause.go 686 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package libbox
  2. import (
  3. "sync"
  4. "time"
  5. )
  6. type servicePauseFields struct {
  7. pauseAccess sync.Mutex
  8. pauseTimer *time.Timer
  9. }
  10. func (s *BoxService) Pause() {
  11. s.pauseAccess.Lock()
  12. defer s.pauseAccess.Unlock()
  13. if s.pauseTimer != nil {
  14. s.pauseTimer.Stop()
  15. }
  16. s.pauseTimer = time.AfterFunc(3*time.Second, s.ResetNetwork)
  17. }
  18. func (s *BoxService) Wake() {
  19. s.pauseAccess.Lock()
  20. defer s.pauseAccess.Unlock()
  21. if s.pauseTimer != nil {
  22. s.pauseTimer.Stop()
  23. }
  24. s.pauseTimer = time.AfterFunc(3*time.Minute, s.ResetNetwork)
  25. }
  26. func (s *BoxService) ResetNetwork() {
  27. s.instance.Router().ResetNetwork()
  28. }
  29. func (s *BoxService) UpdateWIFIState() {
  30. s.instance.Network().UpdateWIFIState()
  31. }