Main Page ? Class Hierarchy ? Compound List ? File List ? Compound Members ? File Members ?

cmt_database.h

Go to the documentation of this file.
00001 #ifndef __cmt_database_h__
00002 #define __cmt_database_h__
00003 
00004 #include "cmt_vector.h"
00005 
00006 #include "cmt_branch.h"
00007 #include "cmt_constituent.h"
00008 #include "cmt_fragment.h"
00009 #include "cmt_group.h"
00010 #include "cmt_language.h"
00011 #include "cmt_pattern.h"
00012 #include "cmt_use.h"
00013 #include "cmt_symbol.h"
00014 #include "cmt_project.h"
00015 #include "cmt_cmtpath_pattern.h"
00016 
00017 class Database
00018 {
00019 public:
00020 
00021   static Database& instance ();
00022 
00023   static void clear ();
00024 
00025   static Branch::BranchVector& branches ();
00026   static Constituent::ConstituentVector& constituents ();
00027   static Fragment::FragmentVector& fragments ();
00028   static Group::GroupVector& groups ();
00029   static Language::LanguageVector& languages ();
00030 
00031   static Package::PackageVector& packages ();
00032   static Package::PackageMap& package_map ();
00033 
00034   static Pattern::PatternVector& patterns ();
00035 
00036   static PatternList::PatternListMap& pattern_list_map ();
00037   static PatternList::PatternListVector& pattern_lists ();
00038 
00039   static Use::UseVector& all_uses ();
00040   static Use::UsePtrVector& uses ();
00041 
00042   static Symbol::SymbolVector& symbols ();
00043   static Symbol::SymbolMap& symbol_map ();
00044 
00045   static Tag::TagVector& all_tags ();
00046   static Tag::TagPtrVector& tags ();
00047   static Tag::TagMap& tag_map ();
00048 
00049   static Project::ProjectVector& projects ();
00050 
00051   static CmtPathPattern::CmtPathPatternVector& cmtpath_patterns ();
00052 
00053 private:
00054 
00055   Database ();
00056 
00057   Branch::BranchVector m_branches;
00058   Constituent::ConstituentVector m_constituents;
00059   Fragment::FragmentVector m_fragments;
00060   Group::GroupVector m_groups;
00061   Language::LanguageVector m_languages;
00062 
00063   Package::PackageVector m_packages;
00064   Package::PackageMap m_package_map;
00065 
00066   Pattern::PatternVector m_patterns;
00067 
00068   PatternList::PatternListMap m_pattern_list_map;
00069   PatternList::PatternListVector m_pattern_lists;
00070 
00071   Use::UseVector m_all_uses;
00072   Use::UsePtrVector m_uses;
00073   Symbol::SymbolVector m_symbols;
00074   Symbol::SymbolMap m_symbol_map;
00075   Tag::TagVector m_all_tags;
00076   Tag::TagPtrVector m_tags;
00077   Tag::TagMap m_tag_map;
00078   Project::ProjectVector m_projects;
00079 
00080   CmtPathPattern::CmtPathPatternVector m_cmtpath_patterns;
00081 
00082 };
00083 
00084 #endif

Generated on Thu Jul 1 15:25:31 2004 for CMT by 1.2.18