00001
00002
00003
00004
00005
00006
00007
00008
00010
00011 #if !defined(HAATOMORBDB_H)
00012 #define HAATOMORBDB_H
00013
00014 #include "haatomorb.h"
00015
00016 class HaAtomOrbRef
00017
00018
00019 {
00020 public:
00021 HaAtomOrbRef();
00022 HaAtomOrbRef(const HaString & sid, const HaString & bsid, const HaString & asmb);
00023 virtual ~HaAtomOrbRef();
00024
00025 friend class HaAtomOrbDB;
00026
00027 bool operator == (const HaAtomOrbRef & rhs) const;
00028 bool operator < (const HaAtomOrbRef & rhs) const;
00029
00030 protected:
00031 HaString setid;
00032 HaString BasName;
00033 HaString AtomSymbol;
00034 };
00035
00036
00037 class HaAtomOrbDB
00038 {
00039 public:
00040 HaAtomOrbDB();
00041 virtual ~HaAtomOrbDB();
00042
00043 bool Init();
00044
00045
00046 list<HaAtomOrb> Extract(const HaString & setid,
00047 const HaString & AtBas, const HaString & AtomSymbol) const;
00048 bool Store(const HaString setid, const HaString AtBas, const HaString AtomSymbol,
00049 HaAtomOrb & ao);
00050 bool Store(const HaAtomOrbRef & ref, const HaAtomOrb & ao);
00051
00052
00053 protected:
00054 multimap<HaAtomOrbRef,HaAtomOrb, less<HaAtomOrbRef> > dat;
00055
00056 bool Init321G_HFAO();
00057 bool Init321PPG_HFAO();
00058 bool Init321G_M1_HFAO();
00059 bool InitHay1_DZ_HFAO();
00060 bool InitHay1_DZPP_HFAO();
00061 };
00062
00063 #endif // !defined(HAATOMORBDB)