You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.2 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. //
  2. // Created by zwsd
  3. //
  4. #pragma once
  5. #include <fstream>
  6. #include <iostream>
  7. #include <list>
  8. #include <map>
  9. #include <memory>
  10. #include <mutex>
  11. #include <set>
  12. #include <sstream>
  13. #include <string>
  14. #include <vector>
  15. #include "disinfection_logs_manager.hpp"
  16. #include "disinfection_state.hpp"
  17. #include "iflytop/components/zcanreceiver/zcanhost.hpp"
  18. #include "iflytop/core/core.hpp"
  19. #include "service/device_io_control_service.hpp"
  20. #include "utils/dvalue_computer.hpp"
  21. #include "zservice_container/zservice_container.hpp"
  22. /**
  23. * @brief
  24. *
  25. * service:
  26. */
  27. namespace iflytop {
  28. using namespace std;
  29. using namespace core;
  30. class DisinfectionPrinterService : public enable_shared_from_this<DisinfectionPrinterService> {
  31. ENABLE_LOGGER(DisinfectionPrinterService);
  32. private:
  33. shared_ptr<IF_DeviceIoContrlService> m_deviceIoControlService;
  34. recursive_mutex lock_;
  35. unique_ptr<Thread> m_workThread;
  36. queue<shared_ptr<DisinfectionPrinterTask>> tasks;
  37. public:
  38. DisinfectionPrinterService() {}
  39. public:
  40. void initialize();
  41. void pushPrintTask(shared_ptr<DisinfectionPrinterTask> task);
  42. private:
  43. void printTask(shared_ptr<DisinfectionPrinterTask> task);
  44. };
  45. } // namespace iflytop