Bump for 3.6-28
[LibreOffice.git] / autodoc / source / ary / idl / ia_ce.hxx
blobaad50cfe05f25e8a3256c113f171c22164e2a23b
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
29 #ifndef ARY_IDL_IA_CE_HXX
30 #define ARY_IDL_IA_CE_HXX
33 // USED SERVICES
34 // BASE CLASSES
35 #include <ary/idl/ip_ce.hxx>
36 // COMPONENTS
37 // PARAMETERS
40 namespace ary
42 namespace idl
45 class Ce_Storage;
46 class TypeAdmin;
49 /** @resp
50 Implements ::ary::idl::CePilot. Provides the access logic for all
51 IDL code entities.
53 @collab Ce_Storage
54 @collab TypeAdmin
56 @see CodeEntity
58 class CeAdmin : public CePilot
60 public:
61 // LIFECYCLE
62 CeAdmin(
63 NameLookup & io_rNameDictionary,
64 TypeAdmin & io_rTypePilot );
65 virtual ~CeAdmin();
67 // OPERATIONS
69 // INQUIRY
70 const Ce_Storage & Storage() const;
72 // ACCESS
73 Ce_Storage & Storage();
75 // INHERITED
76 // Interface ::ary::idl::CePilot:
77 virtual Module & CheckIn_Module(
78 Ce_id i_nParentId,
79 const String & i_sName );
80 virtual Service & Store_Service(
81 Ce_id i_nOwner,
82 const String & i_sName );
83 virtual SglIfcService &
84 Store_SglIfcService(
85 Ce_id i_nOwner,
86 const String & i_sName,
87 Type_id i_nBaseInterface );
88 virtual Interface & Store_Interface(
89 Ce_id i_nOwner,
90 const String & i_sName,
91 Type_id i_nBase );
92 virtual Struct & Store_Struct(
93 Ce_id i_nOwner,
94 const String & i_sName,
95 Type_id i_nBase,
96 const String & i_sTemplateParam );
97 virtual Exception & Store_Exception(
98 Ce_id i_nOwner,
99 const String & i_sName,
100 Type_id i_nBase );
101 virtual Enum & Store_Enum(
102 Ce_id i_nOwner,
103 const String & i_sName );
104 virtual Typedef & Store_Typedef(
105 Ce_id i_nOwner,
106 const String & i_sName,
107 Type_id i_nDefiningType );
108 virtual ConstantsGroup &
109 Store_ConstantsGroup(
110 Ce_id i_nOwner,
111 const String & i_sName );
112 virtual Singleton & Store_Singleton(
113 Ce_id i_nOwner,
114 const String & i_sName );
115 virtual SglIfcSingleton &
116 Store_SglIfcSingleton(
117 Ce_id i_nOwner,
118 const String & i_sName,
119 Type_id i_nBaseInterface );
121 virtual Constant & Store_Constant(
122 Ce_id i_nOwner,
123 const String & i_sName,
124 Type_id i_nType,
125 const String & i_sValue );
126 virtual Property & Store_Property(
127 Ce_id i_nOwner,
128 const String & i_sName,
129 Type_id i_nType,
130 Property::Stereotypes
131 i_stereotypes );
132 virtual Function & Store_Function(
133 Ce_id i_nOwner,
134 const String & i_sName,
135 Type_id i_nReturnType,
136 bool i_bOneWay );
137 virtual Function & Store_ServiceConstructor(
138 Ce_id i_nOwner,
139 const String & i_sName );
140 virtual StructElement &
141 Store_StructMember(
142 Ce_id i_nOwner,
143 const String & i_sName,
144 Type_id i_nType );
145 virtual StructElement &
146 Store_ExceptionMember(
147 Ce_id i_nOwner,
148 const String & i_sName,
149 Type_id i_nType );
150 virtual EnumValue & Store_EnumValue(
151 Ce_id i_nOwner,
152 const String & i_sName,
153 const String & i_sValue );
154 virtual Attribute & Store_Attribute(
155 Ce_id i_nOwner,
156 const String & i_sName,
157 Type_id i_nType,
158 bool i_bReadOnly,
159 bool i_bBound );
161 virtual const Module &
162 GlobalNamespace() const;
163 virtual const CodeEntity &
164 Find_Ce(
165 Ce_id i_nId ) const;
166 virtual const Module &
167 Find_Module(
168 Ce_id i_nId ) const;
169 virtual const Module *
170 Search_Module(
171 Ce_id i_nId ) const;
172 virtual const Function &
173 Find_Function(
174 Ce_id i_nId ) const;
175 virtual const Property &
176 Find_Property(
177 Ce_id i_nId ) const;
178 virtual const EnumValue &
179 Find_EnumValue(
180 Ce_id i_nId ) const;
181 virtual const Constant &
182 Find_Constant(
183 Ce_id i_nId ) const;
184 virtual const StructElement &
185 Find_StructElement(
186 Ce_id i_nId ) const;
187 virtual void Get_Text(
188 StringVector & o_module,
189 String & o_ce,
190 String & o_member,
191 const CodeEntity & i_ce ) const;
192 virtual const NameLookup &
193 NameDictionary() const;
194 virtual void Get_AlphabeticalIndex(
195 std::vector<Ce_id> &
196 o_rResult,
197 alphabetical_index::E_Letter
198 i_cLetter) const;
199 // ACCESS
200 virtual Module & GlobalNamespace();
201 virtual CodeEntity &
202 Find_Ce(
203 Ce_id i_nId );
204 private:
205 // Locals
206 Module & lhf_Access_Module(
207 Ce_id i_nId );
208 void lhf_Put2Storage_and_AssignId(
209 CodeEntity & pass_io_rCe );
210 void lhf_Store_NewEntity(
211 DYN CodeEntity & pass_io_rCe,
212 Module & i_rOwner );
213 void lhf_Store_NewEntity(
214 DYN CodeEntity & pass_io_rCe,
215 Ce_id i_nOwnerModule );
216 void get_ModuleText(
217 StringVector & o_module,
218 const CodeEntity & i_ce ) const;
219 Struct & lhf_Store_TplStruct(
220 Ce_id i_nOwner,
221 const String & i_sName,
222 Type_id i_nBase,
223 const String & i_sTemplateParam );
225 const Ce_Storage & my_Storage() const;
226 Ce_Storage & my_Storage();
227 NameLookup & my_NameDictionary() { return *pNameDictionary; }
229 // DATA
230 Dyn<Ce_Storage> pStorage; /// @inv pStorage != 0;
231 Module * pGlobalNamespace;
232 NameLookup * pNameDictionary;
233 TypeAdmin * pTypePilot;
237 // IMPLEMENTATION
238 inline const Ce_Storage &
239 CeAdmin::Storage() const
241 return *pStorage;
244 inline Ce_Storage &
245 CeAdmin::Storage()
247 return *pStorage;
252 } // namespace idl
253 } // namespace ary
254 #endif
256 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */