1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef ARY_CPP_C_REPOSYPART_HXX
25 #define ARY_CPP_C_REPOSYPART_HXX
26 
27 
28 
29 // BASE CLASSES
30 #include <cpp_internalgate.hxx>
31 
32 namespace ary
33 {
34 namespace cpp
35 {
36     class CeAdmin;
37     class DefAdmin;
38     class TypeAdmin;
39 }
40 }
41 
42 
43 
44 
45 namespace ary
46 {
47 namespace cpp
48 {
49 
50 
51 
52 /** The C++ partition of the repository.
53 */
54 class RepositoryPartition : public InternalGate
55 {
56   public:
57                         RepositoryPartition(
58                             RepositoryCenter &  i_reposyImpl );
59     virtual             ~RepositoryPartition();
60 
61     // INHERITED
62         // Interface Gate:
63     virtual void        Calculate_AllSecondaryInformation();
64 //                            const ::autodoc::Options &
65 //                                                i_options );
66     virtual const String &
67                         RepositoryTitle() const;
68 	virtual const CodeEntity *
69 	                    Search_RelatedCe(
70 							Type_id		        i_type ) const;
71     virtual const ::ary::cpp::CppEntity *
72                         Search_Entity(
73                             GlobalId            i_id ) const;
74     virtual uintt       Get_AlphabeticalList(
75                             List_GlobalIds &    o_result,
76                             const char *        i_begin,
77                             const char *        i_end ) const;
78     virtual const CePilot &
79                         Ces() const;
80     virtual const DefPilot &
81                         Defs() const;
82     virtual const TypePilot &
83                         Types() const;
84     virtual const loc::LocationPilot &
85                         Locations() const;
86     virtual CePilot &   Ces();
87     virtual DefPilot &  Defs();
88     virtual TypePilot & Types();
89     virtual loc::LocationPilot &
90                         Locations();
91   private:
92     // Locals
93     void                Connect_AllTypes_2_TheirRelated_CodeEntites();
94 
95     // DATA
96     RepositoryCenter *  pRepositoryCenter;
97 
98     Dyn<CeAdmin>        pCes;
99     Dyn<TypeAdmin>      pTypes;
100     Dyn<DefAdmin>       pDefs;
101     Dyn<loc::LocationPilot>
102                         pLocations;
103 };
104 
105 
106 
107 
108 }   //  namespace cpp
109 }   //  namespace ary
110 #endif
111