Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

cmt_database.h

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

Generated on Mon May 2 10:25:04 2005 for CMT by doxygen 1.3.5