SegmentDB.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include "DBBase.h"
  3. #include "OTSParticle.h"
  4. #include "OTSSegment.h"
  5. namespace OTSSQLITE
  6. {
  7. using namespace OTSDATA;
  8. using namespace OTSSQLITE;
  9. class __declspec(dllexport) CSegmentDB
  10. {
  11. public:
  12. CSegmentDB(CDBStoreBasePtr a_datastore);
  13. ~CSegmentDB();
  14. COTSFeaturePtr GetFeatureById(const long a_nXrayId, const long a_nFieldId, const long a_nSegmentSize);
  15. COTSParticleList& GetParticleInfoList(const BOOL a_bForce = FALSE);
  16. BOOL SaveFeature(const COTSParticleList& a_ParticleList);
  17. BOOL SaveFeature(const COTSParticlePtr a_pParticle);
  18. BOOL DeleteFeatureById(const long a_nFieldId, const long a_nXrayId);
  19. virtual CDBTableBasePtr GetTableInfo() ;
  20. bool GetAllSegmentsRecord(std::map < std::vector <int>, COTSSegmentsList>& mapSegments);
  21. virtual BOOL Init(const BOOL a_bClean = FALSE) ;
  22. virtual BOOL CreateTable(const BOOL a_bForce = FALSE) ;
  23. virtual BOOL DeleteTable() ;
  24. virtual BOOL RemoveAllRows() ;
  25. virtual BOOL IsDBExist() ;
  26. virtual CDBStoreBasePtr GetDatastore() ;
  27. virtual CDBQueryBasePtr GetTableQuery(LPCTSTR a_sOrderColumnName = nullptr) ;
  28. protected:
  29. BOOL ReadParticleInfoList();
  30. COTSParticleList ReadParticleInfoList(CDBQueryBasePtr a_query);
  31. COTSParticlePtr ReadParticleInfo(CDBQueryBasePtr a_query);
  32. CDBQueryBasePtr GetQueryById(const long a_nXrayId, const long a_nFieldId, const long a_nSegmentId, const long a_nSegmentNum);
  33. CDBQueryBasePtr GetQueryOfAllRecord();
  34. protected:
  35. CDBTableBasePtr m_tableInfo;
  36. COTSFeaturePtr m_pFeature;
  37. COTSParticleList m_listParticle;
  38. private:
  39. CDBBasePtr myDB;
  40. };
  41. typedef std::shared_ptr<CSegmentDB> __declspec(dllexport) CSegmentDBPtr;
  42. }