xref: /trunk/main/autodoc/inc/ary/cpp/c_gate.hxx (revision 1c78a5d6)
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_GATE_HXX
25 #define ARY_CPP_C_GATE_HXX
26 
27 
28 // USED SERVICES
29 	// BASE CLASSES
30 	// OTHER
31 #include <ary/cpp/c_types4cpp.hxx>
32 
33 
34 
35 namespace autodoc
36 {
37     class Options;
38 }
39 namespace ary
40 {
41     class Entity;
42 
43 namespace cpp
44 {
45     class CodeEntity;
46     class CppEntity;
47     class CePilot;
48     class DefPilot;
49     class TypePilot;
50 }
51 namespace loc
52 {
53     class LocationPilot;
54 }
55 }
56 
57 
58 
59 
60 
61 namespace ary
62 {
63 namespace cpp
64 {
65 
66 
67 
68 /** Acess to all stored objcts in the repository, which are
69     relevant to C++.
70 */
71 class Gate
72 {
73   public:
74     // LIFECYCLE
75 	virtual             ~Gate() {}
76 
77 
78     // OPERATIONS
79     virtual void        Calculate_AllSecondaryInformation() = 0;
80 //                            const ::autodoc::Options &
81 //                                                i_options ) = 0;
82 
83     // INQUIRY
84     virtual const String &
85                         RepositoryTitle() const = 0;
86 	virtual const CodeEntity *
87 	                    Search_RelatedCe(
88 							Type_id		        i_type ) const = 0;
89     virtual const ::ary::cpp::CppEntity *
90                         Search_Entity(
91                             GlobalId            i_id ) const = 0;
92     virtual uintt       Get_AlphabeticalList(
93                             List_GlobalIds &    o_result,
94                             const char *        i_begin,
95                             const char *        i_end ) const = 0;
96     virtual const CePilot &
97                         Ces() const = 0;
98     virtual const DefPilot &
99                         Defs() const = 0;
100     virtual const TypePilot &
101                         Types() const = 0;
102     virtual const loc::LocationPilot &
103                         Locations() const = 0;
104 
105     // ACCESS
106     virtual CePilot &   Ces() = 0;
107     virtual DefPilot &  Defs() = 0;
108     virtual TypePilot & Types() = 0;
109     virtual loc::LocationPilot &
110                         Locations() = 0;
111 };
112 
113 
114 
115 }   // namespace cpp
116 }   // namespace ary
117 #endif
118