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 10cdf0e10cSrcweir * 11*d291ea28SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 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. 19cdf0e10cSrcweir * 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: 138cdf0e10cSrcweir Guard_CurFactoryPtr( 139cdf0e10cSrcweir HtmlFactory_Idl *& io_client, 140cdf0e10cSrcweir HtmlFactory_Idl & i_factory ) 141cdf0e10cSrcweir : rpClient(io_client) 142cdf0e10cSrcweir { rpClient = &i_factory; } 143cdf0e10cSrcweir 144cdf0e10cSrcweir ~Guard_CurFactoryPtr() 145cdf0e10cSrcweir { rpClient = 0; } 146cdf0e10cSrcweir 147cdf0e10cSrcweir private: 148cdf0e10cSrcweir HtmlFactory_Idl *& rpClient; 149cdf0e10cSrcweir 150cdf0e10cSrcweir }; 151cdf0e10cSrcweir 152cdf0e10cSrcweir 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 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 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 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 272cdf0e10cSrcweir Guard_CurFile::~Guard_CurFile() 273cdf0e10cSrcweir { 274cdf0e10cSrcweir rClient.CreateFile(); 275cdf0e10cSrcweir rEnv.Set_CurPageCe(0); 276cdf0e10cSrcweir } 277cdf0e10cSrcweir 278cdf0e10cSrcweir 279cdf0e10cSrcweir } // anonymous namespace 280cdf0e10cSrcweir 281cdf0e10cSrcweir 282cdf0e10cSrcweir 283cdf0e10cSrcweir 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 293cdf0e10cSrcweir MainDisplay_Idl::~MainDisplay_Idl() 294cdf0e10cSrcweir { 295cdf0e10cSrcweir } 296cdf0e10cSrcweir 297cdf0e10cSrcweir 298cdf0e10cSrcweir void 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 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 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 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 340cdf0e10cSrcweir MainDisplay_Idl::do_Process( const ary::idl::SglIfcService & i_ce ) 341cdf0e10cSrcweir { 342cdf0e10cSrcweir do_SglIfcServiceDescr(i_ce); 343cdf0e10cSrcweir } 344cdf0e10cSrcweir 345cdf0e10cSrcweir void 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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