source: CMT/v1r19/source/cmt_database.h @ 1

Last change on this file since 1 was 1, checked in by arnault, 19 years ago

Import all tags

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
57  static CmtPathPattern::CmtPathPatternVector& cmtpath_patterns ();
58
59private:
60
61  Database ();
62
63  Branch::BranchVector m_branches;
64  Constituent::ConstituentVector m_constituents;
65  Fragment::FragmentVector m_fragments;
66  Group::GroupVector m_groups;
67  Language::LanguageVector m_languages;
68
69  Package::PackageVector m_packages;
70  Package::PackageMap m_package_map;
71
72  Pattern::PatternVector m_patterns;
73
74  PatternList::PatternListMap m_pattern_list_map;
75  PatternList::PatternListVector m_pattern_lists;
76
77  Use::UseVector m_all_uses;
78  Use::UsePtrVector m_uses;
79  Symbol::SymbolVector m_symbols;
80  Symbol::SymbolMap m_symbol_map;
81  Tag::TagVector m_all_tags;
82  Tag::TagPtrVector m_tags;
83  Tag::TagMap m_tag_map;
84  Project::ProjectVector m_projects;
85
86  CmtPathPattern::CmtPathPatternVector m_cmtpath_patterns;
87
88};
89
90#endif
Note: See TracBrowser for help on using the repository browser.