source: CMT/v1r26p20160527/source/cmt_database.h

Last change on this file was 663, checked in by rybkin, 10 years ago

See C.L. 522

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