imstorage_manager.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #pragma once
  2. #include <string>
  3. #include <opencv2\opencv.hpp>
  4. #include <windows.h>
  5. #include <queue>
  6. #include <pcl\point_types.h>
  7. #include <pcl\point_cloud.h>
  8. //using namespace cv;
  9. using namespace std;
  10. //namespace graft_cv
  11. //{
  12. typedef struct
  13. {
  14. string img_name;
  15. cv::Mat image;
  16. } ImgParam;
  17. typedef struct
  18. {
  19. string pcd_name;
  20. pcl::PointCloud<pcl::PointXYZ> pcd;
  21. } PcdParam;
  22. typedef struct
  23. {
  24. int nIndex;
  25. queue<ImgParam>* imgQ;
  26. } ThreadParamSave;
  27. typedef struct
  28. {
  29. int nIndex;
  30. queue<PcdParam>* pcdQ;
  31. } ThreadParamSavePcd;
  32. typedef struct
  33. {
  34. string folder;
  35. int store_days;
  36. bool* state;
  37. } ThreadParamClean;
  38. int WINAPI TheadFuncClearn(LPVOID lpParam);
  39. int WINAPI TheadFuncSave(LPVOID lpParam);
  40. int WINAPI TheadFuncSavePcd(LPVOID lpParam);
  41. void getFiles( string path, vector<string>& files, time_t clean_time);
  42. class CImStoreManager{
  43. public:
  44. CImStoreManager();
  45. ~CImStoreManager();
  46. // return 0--ok, 1--failed(not exists)
  47. int setStoreDir(string& folder);
  48. void getStoreDir(string& folder);
  49. void setStoreDays(int days);
  50. //saveImage() return 0--ok, 1 -- invalid image or folder
  51. int saveImage(cv::Mat&img,string name_id);
  52. void restart_start_worker();
  53. int saveBinPly(pcl::PointCloud<pcl::PointXYZ>::Ptr pcd, string name_id);
  54. protected:
  55. int m_storeDays;
  56. string m_storeDir;
  57. bool is_valid_folder();
  58. HANDLE m_workHandle;
  59. HANDLE m_workHandleSave;
  60. HANDLE m_workHandleSavePcd;
  61. queue<ImgParam> m_images;
  62. queue<PcdParam> m_pcds;
  63. };
  64. //};