00001 00002 #ifndef OST_CONOP_MINIMAL_COMPOUND_LIB_HH 00003 #define OST_CONOP_MINIMAL_COMPOUND_LIB_HH 00004 00005 #include "compound_lib_base.hh" 00006 00007 namespace ost { namespace conop { 00008 00009 class MinimalCompoundLib; 00010 typedef boost::shared_ptr<MinimalCompoundLib> MinimalCompoundLibPtr; 00011 00012 // a minimal compound lib containing the definitions of the 20 standard 00013 // amino acids and standard nucleotides 00014 class DLLEXPORT_OST_CONOP MinimalCompoundLib : public CompoundLibBase { 00015 public: 00016 MinimalCompoundLib(): 00017 CompoundLibBase() 00018 {} 00019 virtual CompoundPtr FindCompound(const String& id, 00020 Compound::Dialect dialect) const; 00021 private: 00022 static CompoundMap InitCompounds(); 00023 // since this information is never going to change, it is shared 00024 // between instances of minimal compound lib. 00025 static CompoundMap compounds_; 00026 }; 00027 00028 00029 }} 00030 #endif