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