Bump for 3.6-28
[LibreOffice.git] / autodoc / source / display / idl / hi_main.cxx
bloba15eca8bec61bbe185deecbbc031c27141f41585
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 #include <precomp.h>
30 #include "hi_main.hxx"
33 // NOT FULLY DEFINED SERVICES
34 #include <algorithm>
35 #include <cosv/ploc.hxx>
36 #include <cosv/file.hxx>
37 #include <ary/idl/i_ce.hxx>
38 #include <ary/idl/ik_ce.hxx>
39 #include <ary/idl/ik_enum.hxx>
40 #include <ary/idl/ik_typedef.hxx>
41 #include <ary/idl/ik_interface.hxx>
42 #include <ary/idl/ik_struct.hxx>
43 #include <ary/idl/ik_exception.hxx>
44 #include <ary/idl/i_constant.hxx>
45 #include <ary/idl/i_constgroup.hxx>
46 #include <ary/idl/i_enum.hxx>
47 #include <ary/idl/i_singleton.hxx>
48 #include <ary/idl/i_sisingleton.hxx>
49 #include <ary/idl/i_exception.hxx>
50 #include <ary/idl/i_interface.hxx>
51 #include <ary/idl/i_service.hxx>
52 #include <ary/idl/i_siservice.hxx>
53 #include <ary/idl/i_struct.hxx>
54 #include <ary/idl/i_typedef.hxx>
55 #include <ary/idl/i_module.hxx>
56 #include <cfrstd.hxx>
57 #include <toolkit/htmlfile.hxx>
58 #include <toolkit/out_position.hxx>
59 #include <toolkit/out_tree.hxx>
60 #include "hfi_constgroup.hxx"
61 #include "hfi_enum.hxx"
62 #include "hfi_globalindex.hxx"
63 #include "hfi_interface.hxx"
64 #include "hfi_module.hxx"
65 #include "hfi_struct.hxx"
66 #include "hfi_service.hxx"
67 #include "hfi_singleton.hxx"
68 #include "hfi_siservice.hxx"
69 #include "hfi_typedef.hxx"
70 #include "hfi_xrefpage.hxx"
71 #include "hi_env.hxx"
72 #include "hi_linkhelper.hxx"
75 using ::ary::idl::Ce_id;
76 using ::ary::idl::Type_id;
77 using ::ary::idl::ifc_ce::Dyn_CeIterator;
81 extern const String C_sCssFilename_Idl("idl.css");
83 namespace
86 /** @resp
87 Inits (constructor) and creates (destructor) the current
88 html documentation file ( MainDisplay_Idl.pMyFile ).
90 class Guard_CurFile
92 public:
93 Guard_CurFile( /// For CodeEntities
94 DocuFile_Html & io_client,
95 HtmlEnvironment_Idl &
96 io_env,
97 const ary::idl::CodeEntity &
98 i_ce,
99 const String & i_titlePrefix );
100 Guard_CurFile( /// For Use pages
101 DocuFile_Html & io_client,
102 HtmlEnvironment_Idl &
103 io_env,
104 const String & i_fileName,
105 const String & i_titlePrefix );
106 Guard_CurFile( /// For Modules
107 DocuFile_Html & io_client,
108 HtmlEnvironment_Idl &
109 io_env,
110 const ary::idl::CodeEntity &
111 i_ce );
112 Guard_CurFile( /// For Indices
113 DocuFile_Html & io_client,
114 HtmlEnvironment_Idl &
115 io_env,
116 char i_letter );
117 ~Guard_CurFile();
118 private:
119 DocuFile_Html & rClient;
120 HtmlEnvironment_Idl &
121 rEnv;
125 /** @resp
126 Sets and releases the current factory pointer
127 ( MainDisplay_Idl.pCurFactory ).
129 class Guard_CurFactoryPtr
131 public:
132 Guard_CurFactoryPtr(
133 HtmlFactory_Idl *& io_client,
134 HtmlFactory_Idl & i_factory )
135 : rpClient(io_client)
136 { rpClient = &i_factory; }
138 ~Guard_CurFactoryPtr()
139 { rpClient = 0; }
141 private:
142 HtmlFactory_Idl *& rpClient;
147 Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
148 HtmlEnvironment_Idl & io_env,
149 const ary::idl::CodeEntity & i_ce,
150 const String & i_titlePrefix )
151 : rClient(io_client),
152 rEnv(io_env)
153 { // For Ces
154 StreamLock sl(300);
155 io_env.Set_CurFile( sl() << i_ce.LocalName()
156 << ".html"
157 << c_str );
158 StreamLock aCurFilePath(700);
159 io_env.Get_CurFilePath(aCurFilePath());
161 rClient.EmptyBody();
162 csv::ploc::Path
163 aLocation(aCurFilePath().c_str());
164 rClient.SetLocation(aLocation);
165 sl().reset();
166 rClient.SetTitle( sl() << i_titlePrefix
167 << " "
168 << i_ce.LocalName()
169 << c_str );
170 sl().reset();
171 rClient.SetRelativeCssPath(
172 sl() << io_env.CurPosition().LinkToRoot()
173 << C_sCssFilename_Idl
174 << c_str );
176 io_env.Set_CurPageCe(&i_ce);
179 Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
180 HtmlEnvironment_Idl & io_env,
181 const String & i_fileName,
182 const String & i_titlePrefix )
183 : rClient(io_client),
184 rEnv(io_env)
185 { // For Use pages
186 StreamLock sl(300);
187 io_env.Set_CurFile( sl() << i_fileName
188 << ".html"
189 << c_str );
190 StreamLock aCurFilePath(700);
191 io_env.Get_CurFilePath(aCurFilePath());
192 csv::ploc::Path
193 aLocation(aCurFilePath().c_str());
195 rClient.EmptyBody();
196 rClient.SetLocation(aLocation);
197 sl().reset();
198 rClient.SetTitle( sl() << i_titlePrefix << " " << i_fileName << c_str );
199 sl().reset();
200 rClient.SetRelativeCssPath(
201 sl() << io_env.CurPosition().LinkToRoot()
202 << C_sCssFilename_Idl
203 << c_str );
205 io_env.Set_CurPageCe(0);
208 Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
209 HtmlEnvironment_Idl & io_env,
210 const ary::idl::CodeEntity & i_ce )
211 : rClient(io_client),
212 rEnv(io_env)
213 { // For Modules
214 io_env.Set_CurFile( output::ModuleFileName() );
215 StreamLock aCurFilePath(700);
216 io_env.Get_CurFilePath(aCurFilePath());
217 csv::ploc::Path
218 aLocation(aCurFilePath().c_str());
220 rClient.EmptyBody();
221 rClient.SetLocation(aLocation);
222 StreamLock sl(300);
223 rClient.SetTitle( sl() << "Module " << io_env.CurPosition().Name() << c_str );
224 sl().reset();
225 rClient.SetRelativeCssPath(
226 sl() << io_env.CurPosition().LinkToRoot()
227 << C_sCssFilename_Idl
228 << c_str );
230 io_env.Set_CurPageCe(&i_ce);
233 Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
234 HtmlEnvironment_Idl & io_env,
235 char i_letter )
236 : rClient(io_client),
237 rEnv(io_env)
238 { // For Index pages
239 StreamLock sl(300);
240 io_env.Set_CurFile( sl() << "index-"
241 << ( i_letter != '_'
242 ? int(i_letter)-'a'+1
243 : 27 )
244 << ".html"
245 << c_str );
246 StreamLock aCurFilePath(700);
247 io_env.Get_CurFilePath(aCurFilePath());
248 csv::ploc::Path
249 aLocation(aCurFilePath().c_str());
251 rClient.EmptyBody();
252 rClient.SetLocation(aLocation);
253 sl().reset();
254 rClient.SetTitle( sl() << "Global Index "
255 << ( i_letter != '_'
256 ? char(i_letter-'a'+'A')
257 : '_' )
258 << c_str );
259 sl().reset();
260 rClient.SetRelativeCssPath(
261 sl() << "../"
262 << C_sCssFilename_Idl
263 << c_str );
266 Guard_CurFile::~Guard_CurFile()
268 rClient.CreateFile();
269 rEnv.Set_CurPageCe(0);
273 } // anonymous namespace
278 MainDisplay_Idl::MainDisplay_Idl( HtmlEnvironment_Idl & io_rEnv )
279 : pEnv(&io_rEnv),
280 pMyFile(new DocuFile_Html),
281 pCurFactory(0)
283 // pMyFile->SetStyle( Env().Layout().CssStyle() );
284 pMyFile->SetCopyright( Env().Layout().CopyrightText() );
287 MainDisplay_Idl::~MainDisplay_Idl()
292 void
293 MainDisplay_Idl::WriteGlobalIndices()
295 for ( const char * pLetter = "abcdefghijklmnopqrstuvwxyz_X"; *pLetter != 'X'; ++pLetter )
297 Guard_CurFile gFile( *pMyFile, Env(), *pLetter );
299 HF_IdlGlobalIndex aFactory( *pEnv, pMyFile->Body() );
300 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
302 aFactory.Produce_Page( ary::idl::alphabetical_index::E_Letter(*pLetter) );
303 } // end for
307 void
308 MainDisplay_Idl::do_Process( const ary::idl::Module & i_ce )
310 Guard_CurFile gFile( *pMyFile,
311 Env(),
312 i_ce );
313 HF_IdlModule aFactory( *pEnv, pMyFile->Body() );
314 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
316 aFactory.Produce_byData(i_ce);
319 void
320 MainDisplay_Idl::do_Process( const ary::idl::Interface & i_ce )
322 do_InterfaceDescr(i_ce);
323 do_Interface2s(i_ce);
326 void
327 MainDisplay_Idl::do_Process( const ary::idl::Service & i_ce )
329 do_ServiceDescr(i_ce);
330 do_Service2s(i_ce);
333 void
334 MainDisplay_Idl::do_Process( const ary::idl::SglIfcService & i_ce )
336 do_SglIfcServiceDescr(i_ce);
339 void
340 MainDisplay_Idl::do_Process( const ary::idl::Struct & i_ce )
342 do_StructDescr(i_ce);
343 do_Struct2s(i_ce);
346 void
347 MainDisplay_Idl::do_Process( const ary::idl::Exception & i_ce )
349 do_ExceptionDescr(i_ce);
350 do_Exception2s(i_ce);
353 void
354 MainDisplay_Idl::do_Process( const ary::idl::Enum & i_ce )
356 do_EnumDescr(i_ce);
357 do_Enum2s(i_ce);
360 void
361 MainDisplay_Idl::do_Process( const ary::idl::Typedef & i_ce )
363 do_TypedefDescr(i_ce);
364 do_Typedef2s(i_ce);
367 void
368 MainDisplay_Idl::do_Process( const ary::idl::ConstantsGroup & i_ce )
370 Guard_CurFile gFile( *pMyFile,
371 Env(),
372 i_ce,
373 "Constants' Group" );
374 HF_IdlConstGroup aFactory( *pEnv, pMyFile->Body() );
375 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
377 aFactory.Produce_byData(i_ce);
380 void
381 MainDisplay_Idl::do_Process( const ary::idl::Singleton & i_ce )
383 Guard_CurFile gFile( *pMyFile,
384 Env(),
385 i_ce,
386 "Singleton" );
387 HF_IdlSingleton aFactory( *pEnv, pMyFile->Body() );
388 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
390 aFactory.Produce_byData_ServiceBased(i_ce);
393 void
394 MainDisplay_Idl::do_Process( const ary::idl::SglIfcSingleton & i_ce )
396 Guard_CurFile gFile( *pMyFile,
397 Env(),
398 i_ce,
399 "Singleton" );
400 HF_IdlSingleton aFactory( *pEnv, pMyFile->Body() );
401 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
403 aFactory.Produce_byData_InterfaceBased(i_ce);
406 void
407 MainDisplay_Idl::do_InterfaceDescr( const ary::idl::CodeEntity & i_ce )
409 Guard_CurFile gFile( *pMyFile,
410 Env(),
411 i_ce,
412 "Interface" );
413 HF_IdlInterface aInterface( *pEnv, pMyFile->Body() );
414 Guard_CurFactoryPtr gFactory(pCurFactory,aInterface);
416 aInterface.Produce_byData(i_ce);
419 void
420 MainDisplay_Idl::do_ServiceDescr( const ary::idl::CodeEntity & i_ce )
422 Guard_CurFile gFile( *pMyFile,
423 Env(),
424 i_ce,
425 "Service" );
426 HF_IdlService aFactory( *pEnv, pMyFile->Body() );
427 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
429 aFactory.Produce_byData(i_ce);
432 void
433 MainDisplay_Idl::do_SglIfcServiceDescr( const ary::idl::CodeEntity & i_ce )
435 Guard_CurFile gFile( *pMyFile,
436 Env(),
437 i_ce,
438 "Service" );
439 HF_IdlSglIfcService aFactory( *pEnv, pMyFile->Body() );
440 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
442 aFactory.Produce_byData(i_ce);
445 void
446 MainDisplay_Idl::do_StructDescr( const ary::idl::CodeEntity & i_ce )
448 Guard_CurFile gFile( *pMyFile,
449 Env(),
450 i_ce,
451 "Struct" );
452 HF_IdlStruct aFactory( *pEnv, pMyFile->Body(), false );
453 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
455 aFactory.Produce_byData(i_ce);
458 void
459 MainDisplay_Idl::do_ExceptionDescr( const ary::idl::CodeEntity & i_ce )
461 Guard_CurFile gFile( *pMyFile,
462 Env(),
463 i_ce,
464 "Exception" );
465 HF_IdlStruct aFactory( *pEnv, pMyFile->Body(), true );
466 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
468 aFactory.Produce_byData(i_ce);
471 void
472 MainDisplay_Idl::do_EnumDescr( const ary::idl::CodeEntity & i_ce )
474 Guard_CurFile gFile( *pMyFile,
475 Env(),
476 i_ce,
477 "Enum" );
478 HF_IdlEnum aFactory( *pEnv, pMyFile->Body() );
479 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
481 aFactory.Produce_byData(i_ce);
484 void
485 MainDisplay_Idl::do_TypedefDescr( const ary::idl::CodeEntity & i_ce )
487 Guard_CurFile gFile( *pMyFile,
488 Env(),
489 i_ce,
490 "Typedef" );
491 HF_IdlTypedef aFactory( *pEnv, pMyFile->Body() );
492 Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
494 aFactory.Produce_byData(i_ce);
497 void
498 MainDisplay_Idl::do_Interface2s( const ary::idl::CodeEntity & i_ce )
500 StreamLock sl(100);
501 String sUsesFileName(
502 sl()
503 << i_ce.LocalName()
504 << Env().Linker().XrefsSuffix()
505 << c_str );
506 Guard_CurFile gFile( *pMyFile,
507 Env(),
508 sUsesFileName,
509 "Uses of Interface" );
510 HF_IdlXrefs aUses( *pEnv,
511 pMyFile->Body(),
512 C_sCePrefix_Interface,
513 i_ce );
516 aUses.Produce_Tree(
517 "Derived Interfaces",
518 "#Deriveds",
519 i_ce,
520 &ary::idl::ifc_interface::xref::Get_Derivations );
522 Dyn_CeIterator pXrefList;
524 ary::idl::ifc_interface::xref::Get_SynonymTypedefs(pXrefList,i_ce);
525 aUses.Produce_List(
526 "Synonym Typedefs",
527 "#Synonyms",
528 *pXrefList );
529 ary::idl::ifc_interface::xref::Get_ExportingServices(pXrefList,i_ce);
530 aUses.Produce_List(
531 "Services which Support this Interface",
532 "#SupportingServices",
533 *pXrefList );
534 ary::idl::ifc_interface::xref::Get_ExportingSingletons(pXrefList,i_ce);
535 aUses.Produce_List(
536 "Singletons which Support this Interface",
537 "#SupportingSingletons",
538 *pXrefList );
539 ary::idl::ifc_interface::xref::Get_AsReturns(pXrefList,i_ce);
540 aUses.Produce_List(
541 "Uses as Return Type",
542 "#Returns",
543 *pXrefList );
544 ary::idl::ifc_interface::xref::Get_AsParameters(pXrefList,i_ce);
545 aUses.Produce_List(
546 "Uses as Parameter",
547 "#Parameters",
548 *pXrefList );
549 ary::idl::ifc_interface::xref::Get_AsDataTypes(pXrefList,i_ce);
550 aUses.Produce_List(
551 "Uses as Data Type",
552 "#DataTypes",
553 *pXrefList );
554 aUses.Write_ManualLinks(i_ce);
557 void
558 MainDisplay_Idl::do_Service2s( const ary::idl::CodeEntity & i_ce )
560 StreamLock sl(100);
561 String sUsesFileName(
562 sl()
563 << i_ce.LocalName()
564 << Env().Linker().XrefsSuffix()
565 << c_str );
566 Guard_CurFile gFile( *pMyFile,
567 Env(),
568 sUsesFileName,
569 "Uses of Service" );
570 HF_IdlXrefs aUses( *pEnv,
571 pMyFile->Body(),
572 C_sCePrefix_Service,
573 i_ce );
574 Dyn_CeIterator pXrefList;
575 ary::idl::ifc_service::xref::Get_IncludingServices(pXrefList,i_ce);
576 aUses.Produce_List(
577 "Services which Include this Service",
578 "#IncludingServices",
579 *pXrefList );
581 ary::idl::ifc_service::xref::Get_InstantiatingSingletons(pXrefList,i_ce);
582 aUses.Produce_List(
583 "Singletons which Instantiate this Service",
584 "#Singletons",
585 *pXrefList );
586 aUses.Write_ManualLinks(i_ce);
589 void
590 MainDisplay_Idl::do_Struct2s( const ary::idl::CodeEntity & i_ce )
592 StreamLock sl(100);
593 String sUsesFileName(
594 sl()
595 << i_ce.LocalName()
596 << Env().Linker().XrefsSuffix()
597 << c_str );
598 Guard_CurFile gFile( *pMyFile,
599 Env(),
600 sUsesFileName,
601 "Uses of Struct" );
602 HF_IdlXrefs aUses( *pEnv,
603 pMyFile->Body(),
604 C_sCePrefix_Struct,
605 i_ce );
607 aUses.Produce_Tree(
608 "Derived Structs",
609 "#Deriveds",
610 i_ce,
611 &ary::idl::ifc_struct::xref::Get_Derivations );
613 Dyn_CeIterator pXrefList;
615 ary::idl::ifc_struct::xref::Get_SynonymTypedefs(pXrefList,i_ce);
616 aUses.Produce_List(
617 "Synonym Typedefs",
618 "#Synonyms",
619 *pXrefList );
620 ary::idl::ifc_struct::xref::Get_AsReturns(pXrefList,i_ce);
621 aUses.Produce_List(
622 "Uses as Return Type",
623 "#Returns",
624 *pXrefList );
625 ary::idl::ifc_struct::xref::Get_AsParameters(pXrefList,i_ce);
626 aUses.Produce_List(
627 "Uses as Parameter",
628 "#Parameters",
629 *pXrefList );
630 ary::idl::ifc_struct::xref::Get_AsDataTypes(pXrefList,i_ce);
631 aUses.Produce_List(
632 "Uses as Data Type",
633 "#DataTypes",
634 *pXrefList );
635 aUses.Write_ManualLinks(i_ce);
638 void
639 MainDisplay_Idl::do_Exception2s( const ary::idl::CodeEntity & i_ce )
641 StreamLock sl(100);
642 String sUsesFileName(
643 sl()
644 << i_ce.LocalName()
645 << Env().Linker().XrefsSuffix()
646 << c_str );
647 Guard_CurFile gFile( *pMyFile,
648 Env(),
649 sUsesFileName,
650 "Uses of Exception" );
651 HF_IdlXrefs aUses( *pEnv,
652 pMyFile->Body(),
653 C_sCePrefix_Exception,
654 i_ce );
656 aUses.Produce_Tree(
657 "Derived Exceptions",
658 "#Deriveds",
659 i_ce,
660 &ary::idl::ifc_exception::xref::Get_Derivations );
662 Dyn_CeIterator pXrefList;
664 ary::idl::ifc_exception::xref::Get_RaisingFunctions(pXrefList,i_ce);
665 aUses.Produce_List(
666 "Raising Functions",
667 "#Raisers",
668 *pXrefList );
669 aUses.Write_ManualLinks(i_ce);
672 void
673 MainDisplay_Idl::do_Enum2s( const ary::idl::CodeEntity & i_ce )
675 StreamLock sl(100);
676 String sUsesFileName(
677 sl()
678 << i_ce.LocalName()
679 << Env().Linker().XrefsSuffix()
680 << c_str );
681 Guard_CurFile gFile( *pMyFile,
682 Env(),
683 sUsesFileName,
684 "Uses of Enum" );
685 HF_IdlXrefs aUses( *pEnv,
686 pMyFile->Body(),
687 C_sCePrefix_Enum,
688 i_ce );
689 Dyn_CeIterator pXrefList;
690 ary::idl::ifc_enum::xref::Get_SynonymTypedefs(pXrefList,i_ce);
691 aUses.Produce_List(
692 "Synonym Typedefs",
693 "#Synonyms",
694 *pXrefList );
695 ary::idl::ifc_enum::xref::Get_AsReturns(pXrefList,i_ce);
696 aUses.Produce_List(
697 "Uses as Return Type",
698 "#Returns",
699 *pXrefList );
700 ary::idl::ifc_enum::xref::Get_AsParameters(pXrefList,i_ce);
701 aUses.Produce_List(
702 "Uses as Parameter",
703 "#Parameters",
704 *pXrefList );
705 ary::idl::ifc_enum::xref::Get_AsDataTypes(pXrefList,i_ce);
706 aUses.Produce_List(
707 "Uses as Data Type",
708 "#DataTypes",
709 *pXrefList );
710 aUses.Write_ManualLinks(i_ce);
713 void
714 MainDisplay_Idl::do_Typedef2s( const ary::idl::CodeEntity & i_ce )
716 StreamLock sl(100);
717 String sUsesFileName(
718 sl() << i_ce.LocalName()
719 << Env().Linker().XrefsSuffix()
720 << c_str );
721 Guard_CurFile gFile( *pMyFile,
722 Env(),
723 sUsesFileName,
724 "Uses of Typedef" );
725 HF_IdlXrefs aUses( *pEnv,
726 pMyFile->Body(),
727 C_sCePrefix_Typedef,
728 i_ce );
729 Dyn_CeIterator pXrefList;
730 ary::idl::ifc_typedef::xref::Get_SynonymTypedefs(pXrefList,i_ce);
731 aUses.Produce_List(
732 "Synonym Typedefs",
733 "#Synonyms",
734 *pXrefList );
735 ary::idl::ifc_typedef::xref::Get_AsReturns(pXrefList,i_ce);
736 aUses.Produce_List(
737 "Uses as Return Type",
738 "#Returns",
739 *pXrefList );
740 ary::idl::ifc_typedef::xref::Get_AsParameters(pXrefList,i_ce);
741 aUses.Produce_List(
742 "Uses as Parameter",
743 "#Parameters",
744 *pXrefList );
745 ary::idl::ifc_typedef::xref::Get_AsDataTypes(pXrefList,i_ce);
746 aUses.Produce_List(
747 "Uses as Data Type",
748 "#DataTypes",
749 *pXrefList );
750 aUses.Write_ManualLinks(i_ce);
753 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */