xref: /aoo4110/main/autodoc/inc/ary/idl/ip_type.hxx (revision b1cdbd2c)
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_IDL_IP_TYPE_HXX
25 #define ARY_IDL_IP_TYPE_HXX
26 
27 // USED SERVICES
28 #include <ary/idl/i_types4idl.hxx>
29 
30 
31 
32 
33 namespace ary
34 {
35     class QualifiedName;
36 
37 namespace idl
38 {
39     class Type;
40     class ExplicitNameRoom;
41 
42 
43 /** Access point to all {->Type}s in IDL.
44 */
45 class TypePilot
46 {
47   public:
48     // LIFECYCLE
~TypePilot()49     virtual             ~TypePilot() {}
50 
51     // OPERATIONS
52     virtual const Type &
53                         CheckIn_Type(
54                             QualifiedName &     i_rFullName,
55                             uintt               i_nSequenceCount,
56                             Ce_id               i_nModuleOfOccurrence,
57                             const std::vector<Type_id> *
58                                                 i_templateParameters ) = 0;
59     // INQUIRY
60     virtual const Type &
61                         Find_Type(
62                             Type_id             i_nType ) const = 0;
63     virtual String      Search_LocalNameOf(
64                             Type_id             i_nType ) const = 0;
65     virtual Ce_id       Search_CeRelatedTo(
66                             Type_id             i_nType ) const = 0;
67     virtual const ExplicitNameRoom &
68                         Find_XNameRoom(
69                             Type_id             i_nType ) const = 0;
70     virtual bool        IsBuiltInOrRelated(
71                             const Type &        i_rType ) const = 0;
72 };
73 
74 
75 
76 
77 }   // namespace idl
78 }   // namespace ary
79 #endif
80