IncAFileMgr.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #pragma once
  2. #include "afx.h"
  3. #include "stdafx.h"
  4. #include "OTSFileSys.h"
  5. #include "OTSHelper.h"
  6. #include "PosXray.h"
  7. #include "OTSParticle.h"
  8. #include "IncADataDB.h"
  9. #include "ElementChemistryDB.h"
  10. #include "SegmentDB.h"
  11. #include "DBStoreFile.h"
  12. #include "MsrSampleStatus.h"
  13. #include "MsrResults.h"
  14. namespace OTSMODEL {
  15. using namespace OTSTools;
  16. using namespace OTSDATA;
  17. using namespace OTSSQLITE;
  18. class __declspec(dllexport) CIncAFileMgr : public CDBStoreFile
  19. {
  20. public:
  21. CIncAFileMgr(CString fileName);
  22. virtual ~CIncAFileMgr();
  23. virtual void Close() override
  24. {
  25. m_datastorePtr.reset();
  26. }
  27. //Create
  28. BOOL CreateIncAFile();
  29. BOOL Save(CString a_strPathName = _T(""));
  30. BOOL Update(CString a_strPathName = _T(""));
  31. // file pathname
  32. CString GetPathName() { return m_strPathName; }
  33. // particle list
  34. COTSParticleList GetParticleList() { return m_listParticle; }
  35. void SetParticleList(COTSParticleList& a_listParticle, BOOL a_bClear);
  36. // X-ray list
  37. CPosXrayList GetPosXrayList() { return m_listPosXray; }
  38. void SetPosXrayList(CPosXrayList& a_listPosXray, BOOL a_bClear);
  39. bool GetAllFieldsFromDB(COTSFieldDataList & allFlds, CMsrSampleStatusPtr& status, CMsrResultsPtr& rst,double aFieldArea);
  40. void SetFieldPos(CPoint p) { m_FieldPos = p; }
  41. CPoint GetFieldPos() {return m_FieldPos; }
  42. void SetMsrStatus(CMsrSampleStatusPtr s) { msrStatus = s; }
  43. CMsrSampleStatusPtr GetMsrStatus() { return msrStatus; }
  44. protected:
  45. BOOL SaveIncAList();
  46. BOOL UpdateIncAList();
  47. //Get DB
  48. CIncADataDBPtr GetIncADB();
  49. CElementChemistryDBPtr GetElementChemistryDB();
  50. CSegmentDBPtr GetSegmentDB();
  51. // cleanup
  52. void Cleanup();
  53. // initialization
  54. void Init();
  55. // duplication
  56. void Duplicate(const CIncAFileMgr& a_oSource);
  57. // file pathname
  58. CString m_strPathName;
  59. // particle list
  60. COTSParticleList m_listParticle;
  61. // X-ray list
  62. CPosXrayList m_listPosXray;
  63. CPoint m_FieldPos;
  64. CMsrSampleStatusPtr msrStatus;
  65. //database
  66. CIncADataDBPtr m_pIncADataDB;
  67. CElementChemistryDBPtr m_pElementChemistryDB;
  68. CSegmentDBPtr m_pSegmentDB;
  69. };
  70. typedef std::shared_ptr<CIncAFileMgr> __declspec(dllexport) CIncAFileMgrPtr;
  71. }