1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef ADC_DISPLAY_HI_LINKHELPER_HXX 25 #define ADC_DISPLAY_HI_LINKHELPER_HXX 26 27 28 // USED SERVICES 29 // BASE CLASSES 30 // COMPONENTS 31 // PARAMETERS 32 #include "hi_ary.hxx" 33 #include "hi_env.hxx" 34 #include <toolkit/out_position.hxx> 35 #include <toolkit/out_tree.hxx> 36 37 38 class LinkHelper 39 { 40 public: 41 typedef ary::idl::CodeEntity CE; 42 typedef output::Position OutPosition; 43 44 LinkHelper( 45 HtmlEnvironment_Idl & 46 io_rEnv ) 47 : rEnv(io_rEnv) {} 48 49 OutPosition PositionOf_CurModule() const 50 { return OutPosition( rEnv.CurPosition(), 51 output::ModuleFileName()); } 52 53 OutPosition PositionOf_CurXRefs( 54 const String & i_ceName) const; 55 OutPosition PositionOf_Index() const 56 { OutPosition ret1 = rEnv.OutputTree().IndexRoot(); 57 return OutPosition( ret1, String(output::IndexFile_A()) ); } 58 59 60 const ary::idl::Module * 61 Search_CurModule() const; 62 const ary::idl::Module * 63 Search_Module( 64 output::Node & i_node ) const; 65 66 const CE * Search_CeFromType( 67 ary::idl::Type_id i_type ) const; 68 69 void Get_Link2Position( 70 StreamStr & o_link, 71 OutPosition & i_pos ) const 72 { rEnv.CurPosition().Get_LinkTo(o_link, i_pos); } 73 74 void Get_Link2Member( 75 StreamStr & o_link, 76 OutPosition & i_ownerPos, 77 const String & i_memberName ) const 78 { Get_Link2Position(o_link, i_ownerPos); 79 o_link << "#" << i_memberName; } 80 const String & XrefsSuffix() const; 81 82 private: 83 // DATA 84 HtmlEnvironment_Idl & rEnv; 85 }; 86 87 inline const ary::idl::CodeEntity * 88 LinkHelper::Search_CeFromType( ary::idl::Type_id i_type ) const 89 { 90 ary::idl::Ce_id nCe = rEnv.Data().CeFromType(i_type); 91 if (nCe.IsValid()) 92 return &rEnv.Data().Find_Ce(nCe); 93 return 0; 94 } 95 96 97 98 String nameChainLinker( 99 const char * i_levelName ); 100 101 102 #endif 103