1*d291ea28SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*d291ea28SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*d291ea28SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*d291ea28SAndrew Rist  * distributed with this work for additional information
6*d291ea28SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*d291ea28SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*d291ea28SAndrew Rist  * "License"); you may not use this file except in compliance
9*d291ea28SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*d291ea28SAndrew Rist  *
11*d291ea28SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*d291ea28SAndrew Rist  *
13*d291ea28SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*d291ea28SAndrew Rist  * software distributed under the License is distributed on an
15*d291ea28SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*d291ea28SAndrew Rist  * KIND, either express or implied.  See the License for the
17*d291ea28SAndrew Rist  * specific language governing permissions and limitations
18*d291ea28SAndrew Rist  * under the License.
19*d291ea28SAndrew Rist  *
20*d291ea28SAndrew Rist  *************************************************************/
21cdf0e10cSrcweir 
22cdf0e10cSrcweir #include <precomp.h>
23cdf0e10cSrcweir #include "hi_main.hxx"
24cdf0e10cSrcweir 
25cdf0e10cSrcweir 
26cdf0e10cSrcweir // NOT FULLY DEFINED SERVICES
27cdf0e10cSrcweir #include <algorithm>
28cdf0e10cSrcweir #include <cosv/ploc.hxx>
29cdf0e10cSrcweir #include <cosv/file.hxx>
30cdf0e10cSrcweir #include <ary/idl/i_ce.hxx>
31cdf0e10cSrcweir #include <ary/idl/ik_ce.hxx>
32cdf0e10cSrcweir #include <ary/idl/ik_enum.hxx>
33cdf0e10cSrcweir #include <ary/idl/ik_typedef.hxx>
34cdf0e10cSrcweir #include <ary/idl/ik_interface.hxx>
35cdf0e10cSrcweir #include <ary/idl/ik_struct.hxx>
36cdf0e10cSrcweir #include <ary/idl/ik_exception.hxx>
37cdf0e10cSrcweir #include <ary/idl/i_constant.hxx>
38cdf0e10cSrcweir #include <ary/idl/i_constgroup.hxx>
39cdf0e10cSrcweir #include <ary/idl/i_enum.hxx>
40cdf0e10cSrcweir #include <ary/idl/i_singleton.hxx>
41cdf0e10cSrcweir #include <ary/idl/i_sisingleton.hxx>
42cdf0e10cSrcweir #include <ary/idl/i_exception.hxx>
43cdf0e10cSrcweir #include <ary/idl/i_interface.hxx>
44cdf0e10cSrcweir #include <ary/idl/i_service.hxx>
45cdf0e10cSrcweir #include <ary/idl/i_siservice.hxx>
46cdf0e10cSrcweir #include <ary/idl/i_struct.hxx>
47cdf0e10cSrcweir #include <ary/idl/i_typedef.hxx>
48cdf0e10cSrcweir #include <ary/idl/i_module.hxx>
49cdf0e10cSrcweir #include <cfrstd.hxx>
50cdf0e10cSrcweir #include <toolkit/htmlfile.hxx>
51cdf0e10cSrcweir #include <toolkit/out_position.hxx>
52cdf0e10cSrcweir #include <toolkit/out_tree.hxx>
53cdf0e10cSrcweir #include "hfi_constgroup.hxx"
54cdf0e10cSrcweir #include "hfi_enum.hxx"
55cdf0e10cSrcweir #include "hfi_globalindex.hxx"
56cdf0e10cSrcweir #include "hfi_interface.hxx"
57cdf0e10cSrcweir #include "hfi_module.hxx"
58cdf0e10cSrcweir #include "hfi_struct.hxx"
59cdf0e10cSrcweir #include "hfi_service.hxx"
60cdf0e10cSrcweir #include "hfi_singleton.hxx"
61cdf0e10cSrcweir #include "hfi_siservice.hxx"
62cdf0e10cSrcweir #include "hfi_typedef.hxx"
63cdf0e10cSrcweir #include "hfi_xrefpage.hxx"
64cdf0e10cSrcweir #include "hi_env.hxx"
65cdf0e10cSrcweir #include "hi_linkhelper.hxx"
66cdf0e10cSrcweir 
67cdf0e10cSrcweir 
68cdf0e10cSrcweir using       ::ary::idl::Ce_id;
69cdf0e10cSrcweir using       ::ary::idl::Type_id;
70cdf0e10cSrcweir using       ::ary::idl::ifc_ce::Dyn_CeIterator;
71cdf0e10cSrcweir 
72cdf0e10cSrcweir 
73cdf0e10cSrcweir 
74cdf0e10cSrcweir extern const String C_sCssFilename_Idl("idl.css");
75cdf0e10cSrcweir 
76cdf0e10cSrcweir /*
77cdf0e10cSrcweir typedef     ::ary::Dyn_StdConstIterator< ::ary::idl::CommentedRelation>
78cdf0e10cSrcweir             Dyn_ComRefIterator;
79cdf0e10cSrcweir namespace   read_module     = ::ary::idl::ifc_module;
80cdf0e10cSrcweir namespace   read_interface  = ::ary::idl::ifc_interface;
81cdf0e10cSrcweir namespace   read_service    = ::ary::idl::ifc_service;
82cdf0e10cSrcweir namespace   read_struct     = ::ary::idl::ifc_struct;
83cdf0e10cSrcweir namespace   read_exception  = ::ary::idl::ifc_exception;
84cdf0e10cSrcweir namespace   read_enum       = ::ary::idl::ifc_enum;
85cdf0e10cSrcweir namespace   read_typedef    = ::ary::idl::ifc_typedef;
86cdf0e10cSrcweir namespace   read_constgroup = ::ary::idl::ifc_constantsgroup;
87cdf0e10cSrcweir */
88cdf0e10cSrcweir 
89cdf0e10cSrcweir namespace
90cdf0e10cSrcweir {
91cdf0e10cSrcweir 
92cdf0e10cSrcweir /** @resp
93cdf0e10cSrcweir     Inits (constructor) and creates (destructor) the current
94cdf0e10cSrcweir     html documentation file ( MainDisplay_Idl.pMyFile ).
95cdf0e10cSrcweir */
96cdf0e10cSrcweir class Guard_CurFile
97cdf0e10cSrcweir {
98cdf0e10cSrcweir   public:
99cdf0e10cSrcweir                         Guard_CurFile(          /// For CodeEntities
100cdf0e10cSrcweir                             DocuFile_Html &     io_client,
101cdf0e10cSrcweir                             HtmlEnvironment_Idl &
102cdf0e10cSrcweir                                                 io_env,
103cdf0e10cSrcweir                             const ary::idl::CodeEntity &
104cdf0e10cSrcweir                                                 i_ce,
105cdf0e10cSrcweir                             const String &      i_titlePrefix );
106cdf0e10cSrcweir                         Guard_CurFile(          /// For Use pages
107cdf0e10cSrcweir                             DocuFile_Html &     io_client,
108cdf0e10cSrcweir                             HtmlEnvironment_Idl &
109cdf0e10cSrcweir                                                 io_env,
110cdf0e10cSrcweir                             const String &      i_fileName,
111cdf0e10cSrcweir                             const String &      i_titlePrefix );
112cdf0e10cSrcweir                         Guard_CurFile(          /// For Modules
113cdf0e10cSrcweir                             DocuFile_Html &     io_client,
114cdf0e10cSrcweir                             HtmlEnvironment_Idl &
115cdf0e10cSrcweir                                                 io_env,
116cdf0e10cSrcweir                             const ary::idl::CodeEntity &
117cdf0e10cSrcweir                                                 i_ce );
118cdf0e10cSrcweir                         Guard_CurFile(          /// For Indices
119cdf0e10cSrcweir                             DocuFile_Html &     io_client,
120cdf0e10cSrcweir                             HtmlEnvironment_Idl &
121cdf0e10cSrcweir                                                 io_env,
122cdf0e10cSrcweir                             char                i_letter );
123cdf0e10cSrcweir                         ~Guard_CurFile();
124cdf0e10cSrcweir   private:
125cdf0e10cSrcweir     DocuFile_Html &     rClient;
126cdf0e10cSrcweir     HtmlEnvironment_Idl &
127cdf0e10cSrcweir                         rEnv;
128cdf0e10cSrcweir 
129cdf0e10cSrcweir };
130cdf0e10cSrcweir 
131cdf0e10cSrcweir /** @resp
132cdf0e10cSrcweir     Sets and releases the current factory pointer
133cdf0e10cSrcweir     ( MainDisplay_Idl.pCurFactory ).
134cdf0e10cSrcweir */
135cdf0e10cSrcweir class Guard_CurFactoryPtr
136cdf0e10cSrcweir {
137cdf0e10cSrcweir   public:
Guard_CurFactoryPtr(HtmlFactory_Idl * & io_client,HtmlFactory_Idl & i_factory)138cdf0e10cSrcweir                         Guard_CurFactoryPtr(
139cdf0e10cSrcweir                             HtmlFactory_Idl *&  io_client,
140cdf0e10cSrcweir                             HtmlFactory_Idl &   i_factory )
141cdf0e10cSrcweir                             :   rpClient(io_client)
142cdf0e10cSrcweir                         { rpClient = &i_factory; }
143cdf0e10cSrcweir 
~Guard_CurFactoryPtr()144cdf0e10cSrcweir                         ~Guard_CurFactoryPtr()
145cdf0e10cSrcweir                         { rpClient = 0; }
146cdf0e10cSrcweir 
147cdf0e10cSrcweir   private:
148cdf0e10cSrcweir     HtmlFactory_Idl *&  rpClient;
149cdf0e10cSrcweir 
150cdf0e10cSrcweir };
151cdf0e10cSrcweir 
152cdf0e10cSrcweir 
Guard_CurFile(DocuFile_Html & io_client,HtmlEnvironment_Idl & io_env,const ary::idl::CodeEntity & i_ce,const String & i_titlePrefix)153cdf0e10cSrcweir Guard_CurFile::Guard_CurFile( DocuFile_Html &               io_client,
154cdf0e10cSrcweir                               HtmlEnvironment_Idl &         io_env,
155cdf0e10cSrcweir                               const ary::idl::CodeEntity &  i_ce,
156cdf0e10cSrcweir                               const String &                i_titlePrefix )
157cdf0e10cSrcweir     :   rClient(io_client),
158cdf0e10cSrcweir         rEnv(io_env)
159cdf0e10cSrcweir {   // For Ces
160cdf0e10cSrcweir     StreamLock sl(300);
161cdf0e10cSrcweir     io_env.Set_CurFile( sl()    << i_ce.LocalName()
162cdf0e10cSrcweir                                 << ".html"
163cdf0e10cSrcweir                                 << c_str );
164cdf0e10cSrcweir     StreamLock aCurFilePath(700);
165cdf0e10cSrcweir     io_env.Get_CurFilePath(aCurFilePath());
166cdf0e10cSrcweir 
167cdf0e10cSrcweir     rClient.EmptyBody();
168cdf0e10cSrcweir     csv::ploc::Path
169cdf0e10cSrcweir         aLocation(aCurFilePath().c_str());
170cdf0e10cSrcweir     rClient.SetLocation(aLocation);
171cdf0e10cSrcweir     sl().reset();
172cdf0e10cSrcweir     rClient.SetTitle( sl()  << i_titlePrefix
173cdf0e10cSrcweir                             << " "
174cdf0e10cSrcweir                             << i_ce.LocalName()
175cdf0e10cSrcweir                             << c_str );
176cdf0e10cSrcweir     sl().reset();
177cdf0e10cSrcweir     rClient.SetRelativeCssPath(
178cdf0e10cSrcweir                       sl()  << io_env.CurPosition().LinkToRoot()
179cdf0e10cSrcweir                             << C_sCssFilename_Idl
180cdf0e10cSrcweir                             << c_str );
181cdf0e10cSrcweir 
182cdf0e10cSrcweir     io_env.Set_CurPageCe(&i_ce);
183cdf0e10cSrcweir }
184cdf0e10cSrcweir 
Guard_CurFile(DocuFile_Html & io_client,HtmlEnvironment_Idl & io_env,const String & i_fileName,const String & i_titlePrefix)185cdf0e10cSrcweir Guard_CurFile::Guard_CurFile( DocuFile_Html &       io_client,
186cdf0e10cSrcweir                               HtmlEnvironment_Idl & io_env,
187cdf0e10cSrcweir                               const String &        i_fileName,
188cdf0e10cSrcweir                               const String &        i_titlePrefix )
189cdf0e10cSrcweir     :   rClient(io_client),
190cdf0e10cSrcweir         rEnv(io_env)
191cdf0e10cSrcweir {   // For Use pages
192cdf0e10cSrcweir     StreamLock sl(300);
193cdf0e10cSrcweir     io_env.Set_CurFile( sl()    << i_fileName
194cdf0e10cSrcweir                                 << ".html"
195cdf0e10cSrcweir                                 << c_str );
196cdf0e10cSrcweir     StreamLock aCurFilePath(700);
197cdf0e10cSrcweir     io_env.Get_CurFilePath(aCurFilePath());
198cdf0e10cSrcweir     csv::ploc::Path
199cdf0e10cSrcweir         aLocation(aCurFilePath().c_str());
200cdf0e10cSrcweir 
201cdf0e10cSrcweir     rClient.EmptyBody();
202cdf0e10cSrcweir     rClient.SetLocation(aLocation);
203cdf0e10cSrcweir     sl().reset();
204cdf0e10cSrcweir     rClient.SetTitle( sl() << i_titlePrefix << " " << i_fileName << c_str );
205cdf0e10cSrcweir     sl().reset();
206cdf0e10cSrcweir     rClient.SetRelativeCssPath(
207cdf0e10cSrcweir                       sl()  << io_env.CurPosition().LinkToRoot()
208cdf0e10cSrcweir                             << C_sCssFilename_Idl
209cdf0e10cSrcweir                             << c_str );
210cdf0e10cSrcweir 
211cdf0e10cSrcweir     io_env.Set_CurPageCe(0);
212cdf0e10cSrcweir }
213cdf0e10cSrcweir 
Guard_CurFile(DocuFile_Html & io_client,HtmlEnvironment_Idl & io_env,const ary::idl::CodeEntity & i_ce)214cdf0e10cSrcweir Guard_CurFile::Guard_CurFile( DocuFile_Html &               io_client,
215cdf0e10cSrcweir                               HtmlEnvironment_Idl &         io_env,
216cdf0e10cSrcweir                               const ary::idl::CodeEntity &  i_ce )
217cdf0e10cSrcweir     :   rClient(io_client),
218cdf0e10cSrcweir         rEnv(io_env)
219cdf0e10cSrcweir {   // For Modules
220cdf0e10cSrcweir     io_env.Set_CurFile( output::ModuleFileName() );
221cdf0e10cSrcweir     StreamLock aCurFilePath(700);
222cdf0e10cSrcweir     io_env.Get_CurFilePath(aCurFilePath());
223cdf0e10cSrcweir     csv::ploc::Path
224cdf0e10cSrcweir         aLocation(aCurFilePath().c_str());
225cdf0e10cSrcweir 
226cdf0e10cSrcweir     rClient.EmptyBody();
227cdf0e10cSrcweir     rClient.SetLocation(aLocation);
228cdf0e10cSrcweir     StreamLock sl(300);
229cdf0e10cSrcweir     rClient.SetTitle( sl() << "Module " << io_env.CurPosition().Name() << c_str );
230cdf0e10cSrcweir     sl().reset();
231cdf0e10cSrcweir     rClient.SetRelativeCssPath(
232cdf0e10cSrcweir                       sl()  << io_env.CurPosition().LinkToRoot()
233cdf0e10cSrcweir                             << C_sCssFilename_Idl
234cdf0e10cSrcweir                             << c_str );
235cdf0e10cSrcweir 
236cdf0e10cSrcweir     io_env.Set_CurPageCe(&i_ce);
237cdf0e10cSrcweir }
238cdf0e10cSrcweir 
Guard_CurFile(DocuFile_Html & io_client,HtmlEnvironment_Idl & io_env,char i_letter)239cdf0e10cSrcweir Guard_CurFile::Guard_CurFile( DocuFile_Html &       io_client,
240cdf0e10cSrcweir                               HtmlEnvironment_Idl & io_env,
241cdf0e10cSrcweir                               char                  i_letter )
242cdf0e10cSrcweir     :   rClient(io_client),
243cdf0e10cSrcweir         rEnv(io_env)
244cdf0e10cSrcweir {   // For Index pages
245cdf0e10cSrcweir     StreamLock sl(300);
246cdf0e10cSrcweir     io_env.Set_CurFile( sl()    << "index-"
247cdf0e10cSrcweir                                 << ( i_letter != '_'
248cdf0e10cSrcweir                                         ?   int(i_letter)-'a'+1
249cdf0e10cSrcweir                                         :   27 )
250cdf0e10cSrcweir                                 << ".html"
251cdf0e10cSrcweir                                 << c_str );
252cdf0e10cSrcweir     StreamLock aCurFilePath(700);
253cdf0e10cSrcweir     io_env.Get_CurFilePath(aCurFilePath());
254cdf0e10cSrcweir     csv::ploc::Path
255cdf0e10cSrcweir         aLocation(aCurFilePath().c_str());
256cdf0e10cSrcweir 
257cdf0e10cSrcweir     rClient.EmptyBody();
258cdf0e10cSrcweir     rClient.SetLocation(aLocation);
259cdf0e10cSrcweir     sl().reset();
260cdf0e10cSrcweir     rClient.SetTitle( sl() << "Global Index "
261cdf0e10cSrcweir                            << ( i_letter != '_'
262cdf0e10cSrcweir                                     ?   char(i_letter-'a'+'A')
263cdf0e10cSrcweir                                     :   '_' )
264cdf0e10cSrcweir                            << c_str );
265cdf0e10cSrcweir     sl().reset();
266cdf0e10cSrcweir     rClient.SetRelativeCssPath(
267cdf0e10cSrcweir                       sl()  << "../"
268cdf0e10cSrcweir                             << C_sCssFilename_Idl
269cdf0e10cSrcweir                             << c_str );
270cdf0e10cSrcweir }
271cdf0e10cSrcweir 
~Guard_CurFile()272cdf0e10cSrcweir Guard_CurFile::~Guard_CurFile()
273cdf0e10cSrcweir {
274cdf0e10cSrcweir     rClient.CreateFile();
275cdf0e10cSrcweir     rEnv.Set_CurPageCe(0);
276cdf0e10cSrcweir }
277cdf0e10cSrcweir 
278cdf0e10cSrcweir 
279cdf0e10cSrcweir }   // anonymous namespace
280cdf0e10cSrcweir 
281cdf0e10cSrcweir 
282cdf0e10cSrcweir 
283cdf0e10cSrcweir 
MainDisplay_Idl(HtmlEnvironment_Idl & io_rEnv)284cdf0e10cSrcweir MainDisplay_Idl::MainDisplay_Idl( HtmlEnvironment_Idl & io_rEnv )
285cdf0e10cSrcweir     :   pEnv(&io_rEnv),
286cdf0e10cSrcweir         pMyFile(new DocuFile_Html),
287cdf0e10cSrcweir         pCurFactory(0)
288cdf0e10cSrcweir {
289cdf0e10cSrcweir //  pMyFile->SetStyle( Env().Layout().CssStyle() );
290cdf0e10cSrcweir     pMyFile->SetCopyright( Env().Layout().CopyrightText() );
291cdf0e10cSrcweir }
292cdf0e10cSrcweir 
~MainDisplay_Idl()293cdf0e10cSrcweir MainDisplay_Idl::~MainDisplay_Idl()
294cdf0e10cSrcweir {
295cdf0e10cSrcweir }
296cdf0e10cSrcweir 
297cdf0e10cSrcweir 
298cdf0e10cSrcweir void
WriteGlobalIndices()299cdf0e10cSrcweir MainDisplay_Idl::WriteGlobalIndices()
300cdf0e10cSrcweir {
301cdf0e10cSrcweir     for ( const char * pLetter = "abcdefghijklmnopqrstuvwxyz_X"; *pLetter != 'X'; ++pLetter )
302cdf0e10cSrcweir     {
303cdf0e10cSrcweir         Guard_CurFile       gFile( *pMyFile, Env(), *pLetter );
304cdf0e10cSrcweir 
305cdf0e10cSrcweir         HF_IdlGlobalIndex   aFactory( *pEnv, pMyFile->Body() );
306cdf0e10cSrcweir         Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
307cdf0e10cSrcweir 
308cdf0e10cSrcweir         aFactory.Produce_Page( ary::idl::alphabetical_index::E_Letter(*pLetter) );
309cdf0e10cSrcweir     }	// end for
310cdf0e10cSrcweir }
311cdf0e10cSrcweir 
312cdf0e10cSrcweir 
313cdf0e10cSrcweir void
do_Process(const ary::idl::Module & i_ce)314cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::Module & i_ce )
315cdf0e10cSrcweir {
316cdf0e10cSrcweir     Guard_CurFile    gFile( *pMyFile,
317cdf0e10cSrcweir                             Env(),
318cdf0e10cSrcweir                             i_ce );
319cdf0e10cSrcweir     HF_IdlModule     aFactory( *pEnv, pMyFile->Body() );
320cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
321cdf0e10cSrcweir 
322cdf0e10cSrcweir     aFactory.Produce_byData(i_ce);
323cdf0e10cSrcweir }
324cdf0e10cSrcweir 
325cdf0e10cSrcweir void
do_Process(const ary::idl::Interface & i_ce)326cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::Interface & i_ce )
327cdf0e10cSrcweir {
328cdf0e10cSrcweir     do_InterfaceDescr(i_ce);
329cdf0e10cSrcweir     do_Interface2s(i_ce);
330cdf0e10cSrcweir }
331cdf0e10cSrcweir 
332cdf0e10cSrcweir void
do_Process(const ary::idl::Service & i_ce)333cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::Service & i_ce )
334cdf0e10cSrcweir {
335cdf0e10cSrcweir     do_ServiceDescr(i_ce);
336cdf0e10cSrcweir     do_Service2s(i_ce);
337cdf0e10cSrcweir }
338cdf0e10cSrcweir 
339cdf0e10cSrcweir void
do_Process(const ary::idl::SglIfcService & i_ce)340cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::SglIfcService & i_ce )
341cdf0e10cSrcweir {
342cdf0e10cSrcweir     do_SglIfcServiceDescr(i_ce);
343cdf0e10cSrcweir }
344cdf0e10cSrcweir 
345cdf0e10cSrcweir void
do_Process(const ary::idl::Struct & i_ce)346cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::Struct & i_ce )
347cdf0e10cSrcweir {
348cdf0e10cSrcweir     do_StructDescr(i_ce);
349cdf0e10cSrcweir     do_Struct2s(i_ce);
350cdf0e10cSrcweir }
351cdf0e10cSrcweir 
352cdf0e10cSrcweir void
do_Process(const ary::idl::Exception & i_ce)353cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::Exception & i_ce )
354cdf0e10cSrcweir {
355cdf0e10cSrcweir     do_ExceptionDescr(i_ce);
356cdf0e10cSrcweir     do_Exception2s(i_ce);
357cdf0e10cSrcweir }
358cdf0e10cSrcweir 
359cdf0e10cSrcweir void
do_Process(const ary::idl::Enum & i_ce)360cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::Enum & i_ce )
361cdf0e10cSrcweir {
362cdf0e10cSrcweir     do_EnumDescr(i_ce);
363cdf0e10cSrcweir     do_Enum2s(i_ce);
364cdf0e10cSrcweir }
365cdf0e10cSrcweir 
366cdf0e10cSrcweir void
do_Process(const ary::idl::Typedef & i_ce)367cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::Typedef & i_ce )
368cdf0e10cSrcweir {
369cdf0e10cSrcweir     do_TypedefDescr(i_ce);
370cdf0e10cSrcweir     do_Typedef2s(i_ce);
371cdf0e10cSrcweir }
372cdf0e10cSrcweir 
373cdf0e10cSrcweir void
do_Process(const ary::idl::ConstantsGroup & i_ce)374cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::ConstantsGroup & i_ce )
375cdf0e10cSrcweir {
376cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
377cdf0e10cSrcweir                                Env(),
378cdf0e10cSrcweir                                i_ce,
379cdf0e10cSrcweir                                "Constants' Group" );
380cdf0e10cSrcweir     HF_IdlConstGroup    aFactory( *pEnv, pMyFile->Body() );
381cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
382cdf0e10cSrcweir 
383cdf0e10cSrcweir     aFactory.Produce_byData(i_ce);
384cdf0e10cSrcweir }
385cdf0e10cSrcweir 
386cdf0e10cSrcweir void
do_Process(const ary::idl::Singleton & i_ce)387cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::Singleton & i_ce )
388cdf0e10cSrcweir {
389cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
390cdf0e10cSrcweir                                Env(),
391cdf0e10cSrcweir                                i_ce,
392cdf0e10cSrcweir                                "Singleton" );
393cdf0e10cSrcweir     HF_IdlSingleton     aFactory( *pEnv, pMyFile->Body() );
394cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
395cdf0e10cSrcweir 
396cdf0e10cSrcweir     aFactory.Produce_byData_ServiceBased(i_ce);
397cdf0e10cSrcweir }
398cdf0e10cSrcweir 
399cdf0e10cSrcweir void
do_Process(const ary::idl::SglIfcSingleton & i_ce)400cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::SglIfcSingleton & i_ce )
401cdf0e10cSrcweir {
402cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
403cdf0e10cSrcweir                                Env(),
404cdf0e10cSrcweir                                i_ce,
405cdf0e10cSrcweir                                "Singleton" );
406cdf0e10cSrcweir     HF_IdlSingleton     aFactory( *pEnv, pMyFile->Body() );
407cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
408cdf0e10cSrcweir 
409cdf0e10cSrcweir     aFactory.Produce_byData_InterfaceBased(i_ce);
410cdf0e10cSrcweir }
411cdf0e10cSrcweir 
412cdf0e10cSrcweir void
do_InterfaceDescr(const ary::idl::CodeEntity & i_ce)413cdf0e10cSrcweir MainDisplay_Idl::do_InterfaceDescr( const ary::idl::CodeEntity & i_ce )
414cdf0e10cSrcweir {
415cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
416cdf0e10cSrcweir                                Env(),
417cdf0e10cSrcweir                                i_ce,
418cdf0e10cSrcweir                                "Interface" );
419cdf0e10cSrcweir     HF_IdlInterface     aInterface( *pEnv, pMyFile->Body() );
420cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aInterface);
421cdf0e10cSrcweir 
422cdf0e10cSrcweir     aInterface.Produce_byData(i_ce);
423cdf0e10cSrcweir }
424cdf0e10cSrcweir 
425cdf0e10cSrcweir void
do_ServiceDescr(const ary::idl::CodeEntity & i_ce)426cdf0e10cSrcweir MainDisplay_Idl::do_ServiceDescr( const ary::idl::CodeEntity & i_ce )
427cdf0e10cSrcweir {
428cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
429cdf0e10cSrcweir                                Env(),
430cdf0e10cSrcweir                                i_ce,
431cdf0e10cSrcweir                                "Service" );
432cdf0e10cSrcweir     HF_IdlService       aFactory( *pEnv, pMyFile->Body() );
433cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
434cdf0e10cSrcweir 
435cdf0e10cSrcweir     aFactory.Produce_byData(i_ce);
436cdf0e10cSrcweir }
437cdf0e10cSrcweir 
438cdf0e10cSrcweir void
do_SglIfcServiceDescr(const ary::idl::CodeEntity & i_ce)439cdf0e10cSrcweir MainDisplay_Idl::do_SglIfcServiceDescr( const ary::idl::CodeEntity & i_ce )
440cdf0e10cSrcweir {
441cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
442cdf0e10cSrcweir                                Env(),
443cdf0e10cSrcweir                                i_ce,
444cdf0e10cSrcweir                                "Service" );
445cdf0e10cSrcweir     HF_IdlSglIfcService aFactory( *pEnv, pMyFile->Body() );
446cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
447cdf0e10cSrcweir 
448cdf0e10cSrcweir     aFactory.Produce_byData(i_ce);
449cdf0e10cSrcweir }
450cdf0e10cSrcweir 
451cdf0e10cSrcweir void
do_StructDescr(const ary::idl::CodeEntity & i_ce)452cdf0e10cSrcweir MainDisplay_Idl::do_StructDescr( const ary::idl::CodeEntity & i_ce )
453cdf0e10cSrcweir {
454cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
455cdf0e10cSrcweir                                Env(),
456cdf0e10cSrcweir                                i_ce,
457cdf0e10cSrcweir                                "Struct" );
458cdf0e10cSrcweir     HF_IdlStruct        aFactory( *pEnv, pMyFile->Body(), false );
459cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
460cdf0e10cSrcweir 
461cdf0e10cSrcweir     aFactory.Produce_byData(i_ce);
462cdf0e10cSrcweir }
463cdf0e10cSrcweir 
464cdf0e10cSrcweir void
do_ExceptionDescr(const ary::idl::CodeEntity & i_ce)465cdf0e10cSrcweir MainDisplay_Idl::do_ExceptionDescr( const ary::idl::CodeEntity & i_ce )
466cdf0e10cSrcweir {
467cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
468cdf0e10cSrcweir                                Env(),
469cdf0e10cSrcweir                                i_ce,
470cdf0e10cSrcweir                                "Exception" );
471cdf0e10cSrcweir     HF_IdlStruct        aFactory( *pEnv, pMyFile->Body(), true );
472cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
473cdf0e10cSrcweir 
474cdf0e10cSrcweir     aFactory.Produce_byData(i_ce);
475cdf0e10cSrcweir }
476cdf0e10cSrcweir 
477cdf0e10cSrcweir void
do_EnumDescr(const ary::idl::CodeEntity & i_ce)478cdf0e10cSrcweir MainDisplay_Idl::do_EnumDescr( const ary::idl::CodeEntity & i_ce )
479cdf0e10cSrcweir {
480cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
481cdf0e10cSrcweir                                Env(),
482cdf0e10cSrcweir                                i_ce,
483cdf0e10cSrcweir                                "Enum" );
484cdf0e10cSrcweir     HF_IdlEnum        aFactory( *pEnv, pMyFile->Body() );
485cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
486cdf0e10cSrcweir 
487cdf0e10cSrcweir     aFactory.Produce_byData(i_ce);
488cdf0e10cSrcweir }
489cdf0e10cSrcweir 
490cdf0e10cSrcweir void
do_TypedefDescr(const ary::idl::CodeEntity & i_ce)491cdf0e10cSrcweir MainDisplay_Idl::do_TypedefDescr( const ary::idl::CodeEntity & i_ce )
492cdf0e10cSrcweir {
493cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
494cdf0e10cSrcweir                                Env(),
495cdf0e10cSrcweir                                i_ce,
496cdf0e10cSrcweir                                "Typedef" );
497cdf0e10cSrcweir     HF_IdlTypedef       aFactory( *pEnv, pMyFile->Body() );
498cdf0e10cSrcweir     Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
499cdf0e10cSrcweir 
500cdf0e10cSrcweir     aFactory.Produce_byData(i_ce);
501cdf0e10cSrcweir }
502cdf0e10cSrcweir 
503cdf0e10cSrcweir void
do_Interface2s(const ary::idl::CodeEntity & i_ce)504cdf0e10cSrcweir MainDisplay_Idl::do_Interface2s( const ary::idl::CodeEntity & i_ce )
505cdf0e10cSrcweir {
506cdf0e10cSrcweir     StreamLock sl(100);
507cdf0e10cSrcweir     String sUsesFileName(
508cdf0e10cSrcweir                 sl()
509cdf0e10cSrcweir                     << i_ce.LocalName()
510cdf0e10cSrcweir                     << Env().Linker().XrefsSuffix()
511cdf0e10cSrcweir                     << c_str );
512cdf0e10cSrcweir     Guard_CurFile       gFile( *pMyFile,
513cdf0e10cSrcweir                                Env(),
514cdf0e10cSrcweir                                sUsesFileName,
515cdf0e10cSrcweir                                "Uses of Interface" );
516cdf0e10cSrcweir     HF_IdlXrefs         aUses( *pEnv,
517cdf0e10cSrcweir                                pMyFile->Body(),
518cdf0e10cSrcweir                                C_sCePrefix_Interface,
519cdf0e10cSrcweir                                i_ce );
520cdf0e10cSrcweir 
521cdf0e10cSrcweir 
522cdf0e10cSrcweir     aUses.Produce_Tree(
523cdf0e10cSrcweir         "Derived Interfaces",
524cdf0e10cSrcweir         "#Deriveds",
525cdf0e10cSrcweir         i_ce,
526cdf0e10cSrcweir         &ary::idl::ifc_interface::xref::Get_Derivations );
527cdf0e10cSrcweir 
528cdf0e10cSrcweir     Dyn_CeIterator  pXrefList;
529cdf0e10cSrcweir 
530cdf0e10cSrcweir     ary::idl::ifc_interface::xref::Get_SynonymTypedefs(pXrefList,i_ce);
531cdf0e10cSrcweir     aUses.Produce_List(
532cdf0e10cSrcweir         "Synonym Typedefs",
533cdf0e10cSrcweir         "#Synonyms",
534cdf0e10cSrcweir         *pXrefList );
535cdf0e10cSrcweir     ary::idl::ifc_interface::xref::Get_ExportingServices(pXrefList,i_ce);
536cdf0e10cSrcweir     aUses.Produce_List(
537cdf0e10cSrcweir         "Services which Support this Interface",
538cdf0e10cSrcweir         "#SupportingServices",
539cdf0e10cSrcweir         *pXrefList );
540cdf0e10cSrcweir     ary::idl::ifc_interface::xref::Get_ExportingSingletons(pXrefList,i_ce);
541cdf0e10cSrcweir     aUses.Produce_List(
542cdf0e10cSrcweir         "Singletons which Support this Interface",
543cdf0e10cSrcweir         "#SupportingSingletons",
544cdf0e10cSrcweir         *pXrefList );
545cdf0e10cSrcweir     ary::idl::ifc_interface::xref::Get_AsReturns(pXrefList,i_ce);
546cdf0e10cSrcweir     aUses.Produce_List(
547cdf0e10cSrcweir         "Uses as Return Type",
548cdf0e10cSrcweir         "#Returns",
549cdf0e10cSrcweir         *pXrefList );
550cdf0e10cSrcweir     ary::idl::ifc_interface::xref::Get_AsParameters(pXrefList,i_ce);
551cdf0e10cSrcweir     aUses.Produce_List(
552cdf0e10cSrcweir         "Uses as Parameter",
553cdf0e10cSrcweir         "#Parameters",
554cdf0e10cSrcweir         *pXrefList );
555cdf0e10cSrcweir     ary::idl::ifc_interface::xref::Get_AsDataTypes(pXrefList,i_ce);
556cdf0e10cSrcweir     aUses.Produce_List(
557cdf0e10cSrcweir         "Uses as Data Type",
558cdf0e10cSrcweir         "#DataTypes",
559cdf0e10cSrcweir         *pXrefList );
560cdf0e10cSrcweir     aUses.Write_ManualLinks(i_ce);
561cdf0e10cSrcweir }
562cdf0e10cSrcweir 
563cdf0e10cSrcweir void
do_Service2s(const ary::idl::CodeEntity & i_ce)564cdf0e10cSrcweir MainDisplay_Idl::do_Service2s( const ary::idl::CodeEntity & i_ce )
565cdf0e10cSrcweir {
566cdf0e10cSrcweir     StreamLock sl(100);
567cdf0e10cSrcweir     String sUsesFileName(
568cdf0e10cSrcweir                 sl()
569cdf0e10cSrcweir                     << i_ce.LocalName()
570cdf0e10cSrcweir                     << Env().Linker().XrefsSuffix()
571cdf0e10cSrcweir                     << c_str );
572cdf0e10cSrcweir     Guard_CurFile   gFile(  *pMyFile,
573cdf0e10cSrcweir                             Env(),
574cdf0e10cSrcweir                             sUsesFileName,
575cdf0e10cSrcweir                             "Uses of Service" );
576cdf0e10cSrcweir     HF_IdlXrefs     aUses(  *pEnv,
577cdf0e10cSrcweir                             pMyFile->Body(),
578cdf0e10cSrcweir                             C_sCePrefix_Service,
579cdf0e10cSrcweir                             i_ce );
580cdf0e10cSrcweir     Dyn_CeIterator  pXrefList;
581cdf0e10cSrcweir     ary::idl::ifc_service::xref::Get_IncludingServices(pXrefList,i_ce);
582cdf0e10cSrcweir     aUses.Produce_List(
583cdf0e10cSrcweir         "Services which Include this Service",
584cdf0e10cSrcweir         "#IncludingServices",
585cdf0e10cSrcweir         *pXrefList );
586cdf0e10cSrcweir 
587cdf0e10cSrcweir     ary::idl::ifc_service::xref::Get_InstantiatingSingletons(pXrefList,i_ce);
588cdf0e10cSrcweir     aUses.Produce_List(
589cdf0e10cSrcweir         "Singletons which Instantiate this Service",
590cdf0e10cSrcweir         "#Singletons",
591cdf0e10cSrcweir         *pXrefList );
592cdf0e10cSrcweir     aUses.Write_ManualLinks(i_ce);
593cdf0e10cSrcweir }
594cdf0e10cSrcweir 
595cdf0e10cSrcweir void
do_Struct2s(const ary::idl::CodeEntity & i_ce)596cdf0e10cSrcweir MainDisplay_Idl::do_Struct2s( const ary::idl::CodeEntity & i_ce )
597cdf0e10cSrcweir {
598cdf0e10cSrcweir     StreamLock sl(100);
599cdf0e10cSrcweir     String sUsesFileName(
600cdf0e10cSrcweir                 sl()
601cdf0e10cSrcweir                     << i_ce.LocalName()
602cdf0e10cSrcweir                     << Env().Linker().XrefsSuffix()
603cdf0e10cSrcweir                     << c_str );
604cdf0e10cSrcweir     Guard_CurFile   gFile(  *pMyFile,
605cdf0e10cSrcweir                             Env(),
606cdf0e10cSrcweir                             sUsesFileName,
607cdf0e10cSrcweir                             "Uses of Struct" );
608cdf0e10cSrcweir     HF_IdlXrefs     aUses(  *pEnv,
609cdf0e10cSrcweir                             pMyFile->Body(),
610cdf0e10cSrcweir                             C_sCePrefix_Struct,
611cdf0e10cSrcweir                             i_ce );
612cdf0e10cSrcweir 
613cdf0e10cSrcweir     aUses.Produce_Tree(
614cdf0e10cSrcweir         "Derived Structs",
615cdf0e10cSrcweir         "#Deriveds",
616cdf0e10cSrcweir         i_ce,
617cdf0e10cSrcweir         &ary::idl::ifc_struct::xref::Get_Derivations );
618cdf0e10cSrcweir 
619cdf0e10cSrcweir     Dyn_CeIterator  pXrefList;
620cdf0e10cSrcweir 
621cdf0e10cSrcweir     ary::idl::ifc_struct::xref::Get_SynonymTypedefs(pXrefList,i_ce);
622cdf0e10cSrcweir     aUses.Produce_List(
623cdf0e10cSrcweir         "Synonym Typedefs",
624cdf0e10cSrcweir         "#Synonyms",
625cdf0e10cSrcweir         *pXrefList );
626cdf0e10cSrcweir     ary::idl::ifc_struct::xref::Get_AsReturns(pXrefList,i_ce);
627cdf0e10cSrcweir     aUses.Produce_List(
628cdf0e10cSrcweir         "Uses as Return Type",
629cdf0e10cSrcweir         "#Returns",
630cdf0e10cSrcweir         *pXrefList );
631cdf0e10cSrcweir     ary::idl::ifc_struct::xref::Get_AsParameters(pXrefList,i_ce);
632cdf0e10cSrcweir     aUses.Produce_List(
633cdf0e10cSrcweir         "Uses as Parameter",
634cdf0e10cSrcweir         "#Parameters",
635cdf0e10cSrcweir         *pXrefList );
636cdf0e10cSrcweir     ary::idl::ifc_struct::xref::Get_AsDataTypes(pXrefList,i_ce);
637cdf0e10cSrcweir     aUses.Produce_List(
638cdf0e10cSrcweir         "Uses as Data Type",
639cdf0e10cSrcweir         "#DataTypes",
640cdf0e10cSrcweir         *pXrefList );
641cdf0e10cSrcweir     aUses.Write_ManualLinks(i_ce);
642cdf0e10cSrcweir }
643cdf0e10cSrcweir 
644cdf0e10cSrcweir void
do_Exception2s(const ary::idl::CodeEntity & i_ce)645cdf0e10cSrcweir MainDisplay_Idl::do_Exception2s( const ary::idl::CodeEntity & i_ce )
646cdf0e10cSrcweir {
647cdf0e10cSrcweir     StreamLock sl(100);
648cdf0e10cSrcweir     String sUsesFileName(
649cdf0e10cSrcweir                 sl()
650cdf0e10cSrcweir                     << i_ce.LocalName()
651cdf0e10cSrcweir                     << Env().Linker().XrefsSuffix()
652cdf0e10cSrcweir                     << c_str );
653cdf0e10cSrcweir     Guard_CurFile   gFile(  *pMyFile,
654cdf0e10cSrcweir                             Env(),
655cdf0e10cSrcweir                             sUsesFileName,
656cdf0e10cSrcweir                             "Uses of Exception" );
657cdf0e10cSrcweir     HF_IdlXrefs     aUses(  *pEnv,
658cdf0e10cSrcweir                             pMyFile->Body(),
659cdf0e10cSrcweir                             C_sCePrefix_Exception,
660cdf0e10cSrcweir                             i_ce );
661cdf0e10cSrcweir 
662cdf0e10cSrcweir     aUses.Produce_Tree(
663cdf0e10cSrcweir         "Derived Exceptions",
664cdf0e10cSrcweir         "#Deriveds",
665cdf0e10cSrcweir         i_ce,
666cdf0e10cSrcweir         &ary::idl::ifc_exception::xref::Get_Derivations );
667cdf0e10cSrcweir 
668cdf0e10cSrcweir     Dyn_CeIterator  pXrefList;
669cdf0e10cSrcweir 
670cdf0e10cSrcweir     ary::idl::ifc_exception::xref::Get_RaisingFunctions(pXrefList,i_ce);
671cdf0e10cSrcweir     aUses.Produce_List(
672cdf0e10cSrcweir         "Raising Functions",
673cdf0e10cSrcweir         "#Raisers",
674cdf0e10cSrcweir         *pXrefList );
675cdf0e10cSrcweir     aUses.Write_ManualLinks(i_ce);
676cdf0e10cSrcweir }
677cdf0e10cSrcweir 
678cdf0e10cSrcweir void
do_Enum2s(const ary::idl::CodeEntity & i_ce)679cdf0e10cSrcweir MainDisplay_Idl::do_Enum2s( const ary::idl::CodeEntity & i_ce )
680cdf0e10cSrcweir {
681cdf0e10cSrcweir     StreamLock sl(100);
682cdf0e10cSrcweir     String sUsesFileName(
683cdf0e10cSrcweir                 sl()
684cdf0e10cSrcweir                     << i_ce.LocalName()
685cdf0e10cSrcweir                     << Env().Linker().XrefsSuffix()
686cdf0e10cSrcweir                     << c_str );
687cdf0e10cSrcweir     Guard_CurFile   gFile(  *pMyFile,
688cdf0e10cSrcweir                             Env(),
689cdf0e10cSrcweir                             sUsesFileName,
690cdf0e10cSrcweir                             "Uses of Enum" );
691cdf0e10cSrcweir     HF_IdlXrefs     aUses(  *pEnv,
692cdf0e10cSrcweir                             pMyFile->Body(),
693cdf0e10cSrcweir                             C_sCePrefix_Enum,
694cdf0e10cSrcweir                             i_ce );
695cdf0e10cSrcweir     Dyn_CeIterator  pXrefList;
696cdf0e10cSrcweir     ary::idl::ifc_enum::xref::Get_SynonymTypedefs(pXrefList,i_ce);
697cdf0e10cSrcweir     aUses.Produce_List(
698cdf0e10cSrcweir         "Synonym Typedefs",
699cdf0e10cSrcweir         "#Synonyms",
700cdf0e10cSrcweir         *pXrefList );
701cdf0e10cSrcweir     ary::idl::ifc_enum::xref::Get_AsReturns(pXrefList,i_ce);
702cdf0e10cSrcweir     aUses.Produce_List(
703cdf0e10cSrcweir         "Uses as Return Type",
704cdf0e10cSrcweir         "#Returns",
705cdf0e10cSrcweir         *pXrefList );
706cdf0e10cSrcweir     ary::idl::ifc_enum::xref::Get_AsParameters(pXrefList,i_ce);
707cdf0e10cSrcweir     aUses.Produce_List(
708cdf0e10cSrcweir         "Uses as Parameter",
709cdf0e10cSrcweir         "#Parameters",
710cdf0e10cSrcweir         *pXrefList );
711cdf0e10cSrcweir     ary::idl::ifc_enum::xref::Get_AsDataTypes(pXrefList,i_ce);
712cdf0e10cSrcweir     aUses.Produce_List(
713cdf0e10cSrcweir         "Uses as Data Type",
714cdf0e10cSrcweir         "#DataTypes",
715cdf0e10cSrcweir         *pXrefList );
716cdf0e10cSrcweir     aUses.Write_ManualLinks(i_ce);
717cdf0e10cSrcweir }
718cdf0e10cSrcweir 
719cdf0e10cSrcweir void
do_Typedef2s(const ary::idl::CodeEntity & i_ce)720cdf0e10cSrcweir MainDisplay_Idl::do_Typedef2s( const ary::idl::CodeEntity & i_ce )
721cdf0e10cSrcweir {
722cdf0e10cSrcweir     StreamLock sl(100);
723cdf0e10cSrcweir     String sUsesFileName(
724cdf0e10cSrcweir                sl() << i_ce.LocalName()
725cdf0e10cSrcweir                     << Env().Linker().XrefsSuffix()
726cdf0e10cSrcweir                     << c_str );
727cdf0e10cSrcweir     Guard_CurFile   gFile(  *pMyFile,
728cdf0e10cSrcweir                             Env(),
729cdf0e10cSrcweir                             sUsesFileName,
730cdf0e10cSrcweir                             "Uses of Typedef" );
731cdf0e10cSrcweir     HF_IdlXrefs     aUses(  *pEnv,
732cdf0e10cSrcweir                             pMyFile->Body(),
733cdf0e10cSrcweir                             C_sCePrefix_Typedef,
734cdf0e10cSrcweir                             i_ce );
735cdf0e10cSrcweir     Dyn_CeIterator  pXrefList;
736cdf0e10cSrcweir     ary::idl::ifc_typedef::xref::Get_SynonymTypedefs(pXrefList,i_ce);
737cdf0e10cSrcweir     aUses.Produce_List(
738cdf0e10cSrcweir         "Synonym Typedefs",
739cdf0e10cSrcweir         "#Synonyms",
740cdf0e10cSrcweir         *pXrefList );
741cdf0e10cSrcweir     ary::idl::ifc_typedef::xref::Get_AsReturns(pXrefList,i_ce);
742cdf0e10cSrcweir     aUses.Produce_List(
743cdf0e10cSrcweir         "Uses as Return Type",
744cdf0e10cSrcweir         "#Returns",
745cdf0e10cSrcweir         *pXrefList );
746cdf0e10cSrcweir     ary::idl::ifc_typedef::xref::Get_AsParameters(pXrefList,i_ce);
747cdf0e10cSrcweir     aUses.Produce_List(
748cdf0e10cSrcweir         "Uses as Parameter",
749cdf0e10cSrcweir         "#Parameters",
750cdf0e10cSrcweir         *pXrefList );
751cdf0e10cSrcweir     ary::idl::ifc_typedef::xref::Get_AsDataTypes(pXrefList,i_ce);
752cdf0e10cSrcweir     aUses.Produce_List(
753cdf0e10cSrcweir         "Uses as Data Type",
754cdf0e10cSrcweir         "#DataTypes",
755cdf0e10cSrcweir         *pXrefList );
756cdf0e10cSrcweir     aUses.Write_ManualLinks(i_ce);
757cdf0e10cSrcweir }
758cdf0e10cSrcweir 
759