#pragma once #include "otsdataconst.h" #include "StandardItem.h" #include using namespace OTSDATA; namespace OTSClassifyEngine { class __declspec(dllexport) CSTDLib { public: CSTDLib(std::string dbName); CSTDLib(const CSTDLib& a_oSource); CSTDLib(CSTDLib* a_poSource); ~CSTDLib(); void Init(); bool LoadSpectrumSTDFromDB(std::string dbName); CSTDLib& operator= (const CSTDLib& a_oSource); BOOL operator== (const CSTDLib& a_oSource); void SetName(CString strName); CString GetName(); bool AddItem(CSpectrumSTDItemPtr stdMineral); // begin with 0,insert a record at iIndex bool InsertItem(CSpectrumSTDItemPtr stdMineral, int iIndex); CSpectrumSTDItemPtr GetSTDItem(int iIndex); int GetSTDItemCount(); void Clear(); bool CreateSpectrumSTDItemByXrayDATA(COTSParticlePtr part, COLORREF color); bool UpdateNewSTDItemToDB(CSpectrumSTDItemPtr itm); protected: CString GetDifferItemName(CString strMineralName); bool HasSameItemName(CString strMineralName); void Cleanup(); void Duplicate(const CSTDLib& a_oSource); private: CString m_dbName; CSpectrumSTDItemList m_listSTDItems; }; typedef std::shared_ptr __declspec(dllexport) CSTDLibPtr; typedef std::vector __declspec(dllexport) CSTDLibList; }