Notify_Thread.cpp 907 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include "Notify_Thread.h"
  2. #include "ResDataObject.h"
  3. #include "common_api.h"
  4. //extern Log4CPP::Logger* mLog::gLogger;
  5. Notify_Thread::Notify_Thread()
  6. {
  7. m_pDPC = NULL;
  8. }
  9. Notify_Thread::~Notify_Thread()
  10. {
  11. }
  12. bool Notify_Thread::Exec()
  13. {
  14. //check exit flag
  15. if (WaitTheThreadEndSign(0) == true)
  16. {
  17. return false;
  18. }
  19. ////mLog::FINFO("Drv NotifyT Entry");
  20. if (CheckForPause())
  21. {
  22. //mLog::FINFO("Got Pause Evt.Wait Resume");
  23. if (WaitforResume() == false)
  24. {
  25. //mLog::FINFO("Failed Wait Resume Evt.Exit Thread");
  26. return false;
  27. }
  28. //mLog::FINFO("Got Resume Evt.Go Normal");
  29. }
  30. //dpc work
  31. if (m_pDPC)
  32. {
  33. std::vector<std::shared_ptr<LinuxEvent>> wait = { m_ExitFlag, m_PauseEvt };
  34. if (m_pDPC->OnNotify(wait,2) == 0)
  35. {
  36. //mLog::FINFO("OnNotify return False");
  37. return false;
  38. }
  39. return true;
  40. }
  41. return false;
  42. }
  43. void Notify_Thread::SetDPC(DriverDPC *pDPC)
  44. {
  45. m_pDPC = pDPC;
  46. }