imstorage_manager.h 1.1 KB

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