PushThread.cpp 746 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //
  2. // Created by jarod on 2022/9/7.
  3. //
  4. #include "PushThread.h"
  5. #include "Push.h"
  6. void PushThread::terminate()
  7. {
  8. std::lock_guard<std::mutex> lock(_mutex);
  9. _terminate = true;
  10. _cond.notify_one();
  11. }
  12. void PushThread::addCurrent(CurrentPtr &current)
  13. {
  14. std::lock_guard<std::mutex> lock(_mutex);
  15. _currents[current->getUId()] = current;
  16. }
  17. void PushThread::delCurrent(CurrentPtr &current)
  18. {
  19. std::lock_guard<std::mutex> lock(_mutex);
  20. _currents.erase(current->getUId());
  21. }
  22. void PushThread::run()
  23. {
  24. while(!_terminate)
  25. {
  26. std::unique_lock<std::mutex> lock(_mutex);
  27. for(auto it : _currents)
  28. {
  29. TestApp::Push::async_response_push_pushMsg(it.second, 0, "push message");
  30. }
  31. _cond.wait_for(lock, std::chrono::milliseconds(1000));
  32. }
  33. }