00001 //----------------------------------------------------------- 00002 // Copyright Christian Arnault LAL-Orsay CNRS 00003 // 00004 // See the complete license in cmt_license.txt "http://www.cecill.info". 00005 //----------------------------------------------------------- 00006 00007 #include "cmt_database.h" 00008 #include "cmt_vector.h" 00009 00010 Database& Database::instance () 00011 { 00012 static Database db; 00013 00014 return (db); 00015 } 00016 00017 void Database::clear () 00018 { 00019 Branch::clear_all (); 00020 Constituent::clear_all (); 00021 Fragment::clear_all (); 00022 Group::clear_all (); 00023 Language::clear_all (); 00024 Package::clear_all (); 00025 Pattern::clear_all (); 00026 PatternList::clear_all (); 00027 Use::clear_all (); 00028 Symbol::clear_all (); 00029 Tag::clear_all (); 00030 Project::clear_all (); 00031 CmtPathPattern::clear_all (); 00032 } 00033 00034 Branch::BranchVector& Database::branches () 00035 { 00036 static Database& db = instance (); 00037 00038 return (db.m_branches); 00039 } 00040 00041 Constituent::ConstituentVector& Database::constituents () 00042 { 00043 static Database& db = instance (); 00044 00045 return (db.m_constituents); 00046 } 00047 00048 Fragment::FragmentVector& Database::fragments () 00049 { 00050 static Database& db = instance (); 00051 00052 return (db.m_fragments); 00053 } 00054 00055 Group::GroupVector& Database::groups () 00056 { 00057 static Database& db = instance (); 00058 00059 return (db.m_groups); 00060 } 00061 00062 Language::LanguageVector& Database::languages () 00063 { 00064 static Database& db = instance (); 00065 00066 return (db.m_languages); 00067 } 00068 00069 Package::PackageVector& Database::packages () 00070 { 00071 static Database& db = instance (); 00072 00073 return (db.m_packages); 00074 } 00075 00076 Package::PackageMap& Database::package_map () 00077 { 00078 static Database& db = instance (); 00079 00080 return (db.m_package_map); 00081 } 00082 00083 Pattern::PatternVector& Database::patterns () 00084 { 00085 static Database& db = instance (); 00086 00087 return (db.m_patterns); 00088 } 00089 00090 PatternList::PatternListMap& Database::pattern_list_map () 00091 { 00092 static Database& db = instance (); 00093 00094 return (db.m_pattern_list_map); 00095 } 00096 00097 PatternList::PatternListVector& Database::pattern_lists () 00098 { 00099 static Database& db = instance (); 00100 00101 return (db.m_pattern_lists); 00102 } 00103 00104 Use::UseVector& Database::all_uses () 00105 { 00106 static Database& db = instance (); 00107 00108 return (db.m_all_uses); 00109 } 00110 00111 Use::UsePtrVector& Database::uses () 00112 { 00113 static Database& db = instance (); 00114 00115 return (db.m_uses); 00116 } 00117 00118 Symbol::SymbolVector& Database::symbols () 00119 { 00120 static Database& db = instance (); 00121 00122 return (db.m_symbols); 00123 } 00124 00125 Symbol::SymbolMap& Database::symbol_map () 00126 { 00127 static Database& db = instance (); 00128 00129 return (db.m_symbol_map); 00130 } 00131 00132 Tag::TagVector& Database::all_tags () 00133 { 00134 static Database& db = instance (); 00135 00136 return (db.m_all_tags); 00137 } 00138 00139 Tag::TagPtrVector& Database::tags () 00140 { 00141 static Database& db = instance (); 00142 00143 return (db.m_tags); 00144 } 00145 00146 Tag::TagMap& Database::tag_map () 00147 { 00148 static Database& db = instance (); 00149 00150 return (db.m_tag_map); 00151 } 00152 00153 Project::ProjectVector& Database::projects () 00154 { 00155 static Database& db = instance (); 00156 00157 return (db.m_projects); 00158 } 00159 00160 CmtPathPattern::CmtPathPatternVector& Database::cmtpath_patterns () 00161 { 00162 static Database& db = instance (); 00163 00164 return (db.m_cmtpath_patterns); 00165 } 00166 00167 Database::Database () 00168 { 00169 } 00170