source: CMT/v1r25/source/cmt_database.h

Last change on this file was 535, checked in by rybkin, 14 years ago

See C.L. 422

  • Property svn:eol-style set to native
File size: 2.4 KB
Line 
1//-----------------------------------------------------------
2// Copyright Christian Arnault LAL-Orsay CNRS
3// arnault@lal.in2p3.fr
4// See the complete license in cmt_license.txt "http://www.cecill.info".
5//-----------------------------------------------------------
6
7#ifndef __cmt_database_h__
8#define __cmt_database_h__
9
10#include "cmt_vector.h"
11
12#include "cmt_branch.h"
13#include "cmt_constituent.h"
14#include "cmt_fragment.h"
15#include "cmt_group.h"
16#include "cmt_language.h"
17#include "cmt_pattern.h"
18#include "cmt_use.h"
19#include "cmt_symbol.h"
20#include "cmt_project.h"
21#include "cmt_cmtpath_pattern.h"
22
23class Database
24{
25public:
26
27  static Database& instance ();
28
29  static void clear ();
30
31  static Branch::BranchVector& branches ();
32  static Constituent::ConstituentVector& constituents ();
33  static Fragment::FragmentVector& fragments ();
34  static Group::GroupVector& groups ();
35  static Language::LanguageVector& languages ();
36
37  static Package::PackageVector& packages ();
38  static Package::PackageMap& package_map ();
39
40  static Pattern::PatternVector& patterns ();
41
42  static PatternList::PatternListMap& pattern_list_map ();
43  static PatternList::PatternListVector& pattern_lists ();
44
45  static Use::UseVector& all_uses ();
46  static Use::UsePtrVector& uses ();
47
48  static Symbol::SymbolVector& symbols ();
49  static Symbol::SymbolMap& symbol_map ();
50
51  static Tag::TagVector& all_tags ();
52  static Tag::TagPtrVector& tags ();
53  static Tag::TagMap& tag_map ();
54
55  static Project::ProjectVector& projects ();
56  static Project::ProjectPtrVector& ordered_projects ();
57
58  static CmtPathPattern::CmtPathPatternVector& cmtpath_patterns ();
59
60private:
61
62  Database ();
63
64  Branch::BranchVector m_branches;
65  Constituent::ConstituentVector m_constituents;
66  Fragment::FragmentVector m_fragments;
67  Group::GroupVector m_groups;
68  Language::LanguageVector m_languages;
69
70  Package::PackageVector m_packages;
71  Package::PackageMap m_package_map;
72
73  Pattern::PatternVector m_patterns;
74
75  PatternList::PatternListMap m_pattern_list_map;
76  PatternList::PatternListVector m_pattern_lists;
77
78  Use::UseVector m_all_uses;
79  Use::UsePtrVector m_uses;
80  Symbol::SymbolVector m_symbols;
81  Symbol::SymbolMap m_symbol_map;
82  Tag::TagVector m_all_tags;
83  Tag::TagPtrVector m_tags;
84  Tag::TagMap m_tag_map;
85  Project::ProjectVector m_projects;
86  Project::ProjectPtrVector m_ordered_projects;
87
88  CmtPathPattern::CmtPathPatternVector m_cmtpath_patterns;
89
90};
91
92#endif
Note: See TracBrowser for help on using the repository browser.