1*1c78a5d6SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*1c78a5d6SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*1c78a5d6SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*1c78a5d6SAndrew Rist * distributed with this work for additional information 6*1c78a5d6SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*1c78a5d6SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*1c78a5d6SAndrew Rist * "License"); you may not use this file except in compliance 9*1c78a5d6SAndrew Rist * with the License. You may obtain a copy of the License at 10*1c78a5d6SAndrew Rist * 11*1c78a5d6SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*1c78a5d6SAndrew Rist * 13*1c78a5d6SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*1c78a5d6SAndrew Rist * software distributed under the License is distributed on an 15*1c78a5d6SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*1c78a5d6SAndrew Rist * KIND, either express or implied. See the License for the 17*1c78a5d6SAndrew Rist * specific language governing permissions and limitations 18*1c78a5d6SAndrew Rist * under the License. 19*1c78a5d6SAndrew Rist * 20*1c78a5d6SAndrew Rist *************************************************************/ 21*1c78a5d6SAndrew Rist 22*1c78a5d6SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef ARY_CPP_C_SLNTRY_HXX 25cdf0e10cSrcweir #define ARY_CPP_C_SLNTRY_HXX 26cdf0e10cSrcweir // KORR_DEPRECATED_3.0 27cdf0e10cSrcweir 28cdf0e10cSrcweir // USED SERVICES 29cdf0e10cSrcweir #include <ary/cpp/c_types4cpp.hxx> 30cdf0e10cSrcweir #include <ary/namesort.hxx> 31cdf0e10cSrcweir 32cdf0e10cSrcweir 33cdf0e10cSrcweir namespace ary 34cdf0e10cSrcweir { 35cdf0e10cSrcweir namespace cpp 36cdf0e10cSrcweir { 37cdf0e10cSrcweir class Namespace; 38cdf0e10cSrcweir 39cdf0e10cSrcweir 40cdf0e10cSrcweir 41cdf0e10cSrcweir typedef Namespace * NamespacePtr; 42cdf0e10cSrcweir struct Less_NamespacePtr 43cdf0e10cSrcweir { 44cdf0e10cSrcweir bool operator()( /// @return true if (i_p1->Name() < i_p2->Name()) . 45cdf0e10cSrcweir const NamespacePtr& i_p1, 46cdf0e10cSrcweir const NamespacePtr& i_p2 ); 47cdf0e10cSrcweir }; 48cdf0e10cSrcweir 49cdf0e10cSrcweir 50cdf0e10cSrcweir 51cdf0e10cSrcweir 52cdf0e10cSrcweir struct S_Classes_Base 53cdf0e10cSrcweir { 54cdf0e10cSrcweir Type_id nId; 55cdf0e10cSrcweir E_Protection eProtection; 56cdf0e10cSrcweir E_Virtuality eVirtuality; 57cdf0e10cSrcweir String sComment; 58cdf0e10cSrcweir S_Classes_Baseary::cpp::S_Classes_Base59cdf0e10cSrcweir S_Classes_Base() 60cdf0e10cSrcweir : nId(0), 61cdf0e10cSrcweir eProtection(PROTECT_global), 62cdf0e10cSrcweir eVirtuality(VIRTUAL_none) 63cdf0e10cSrcweir // sComment 64cdf0e10cSrcweir { } 65cdf0e10cSrcweir }; 66cdf0e10cSrcweir 67cdf0e10cSrcweir struct S_TplParam 68cdf0e10cSrcweir { 69cdf0e10cSrcweir String sName; 70cdf0e10cSrcweir Type_id nId; 71cdf0e10cSrcweir S_TplParamary::cpp::S_TplParam72cdf0e10cSrcweir S_TplParam( 73cdf0e10cSrcweir String i_sName, 74cdf0e10cSrcweir Type_id i_nId ) 75cdf0e10cSrcweir : sName(i_sName), nId(i_nId) {} Nameary::cpp::S_TplParam76cdf0e10cSrcweir const String & Name() const { return sName; } 77cdf0e10cSrcweir }; 78cdf0e10cSrcweir 79cdf0e10cSrcweir 80cdf0e10cSrcweir struct S_LocalCe 81cdf0e10cSrcweir { 82cdf0e10cSrcweir String sLocalName; 83cdf0e10cSrcweir Ce_id nId; 84cdf0e10cSrcweir S_LocalCeary::cpp::S_LocalCe85cdf0e10cSrcweir S_LocalCe() : nId(0) {} S_LocalCeary::cpp::S_LocalCe86cdf0e10cSrcweir S_LocalCe( 87cdf0e10cSrcweir const String & i_sLocalName, 88cdf0e10cSrcweir Cid i_nId ) 89cdf0e10cSrcweir : sLocalName(i_sLocalName), nId(i_nId) {} operator <ary::cpp::S_LocalCe90cdf0e10cSrcweir bool operator<( 91cdf0e10cSrcweir const S_LocalCe & i_rCe ) const 92cdf0e10cSrcweir { return LesserName()(sLocalName,i_rCe.sLocalName); } 93cdf0e10cSrcweir }; 94cdf0e10cSrcweir 95cdf0e10cSrcweir typedef std::vector< S_LocalCe > List_LocalCe; 96cdf0e10cSrcweir 97cdf0e10cSrcweir 98cdf0e10cSrcweir typedef std::map<String, NamespacePtr> Map_NamespacePtr; 99cdf0e10cSrcweir typedef std::vector< S_Classes_Base > List_Bases; 100cdf0e10cSrcweir typedef std::vector< S_TplParam > List_TplParam; 101cdf0e10cSrcweir 102cdf0e10cSrcweir 103cdf0e10cSrcweir 104cdf0e10cSrcweir } // namespace cpp 105cdf0e10cSrcweir } // namespace ary 106cdf0e10cSrcweir #endif 107