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 ARY_ARYGROUP_HXX 25 #define ARY_ARYGROUP_HXX 26 // KORR_DEPRECATED_3.0 27 28 29 // USED SERVICES 30 // BASE CLASSES 31 // OTHER 32 #include <ary/types.hxx> 33 34 35 namespace ary 36 { 37 namespace cpp 38 { 39 class CppEntity; 40 } 41 42 class Slot; 43 44 namespace group 45 { 46 typedef std::vector< SlotAccessId > SlotList; 47 } 48 } 49 50 51 52 53 namespace ary 54 { 55 56 57 58 class AryGroup 59 { 60 public: 61 // LIFECYCLE ~AryGroup()62 virtual ~AryGroup() {} 63 64 // INQUIRY 65 Gid Id_Group() const; 66 const cpp::CppEntity & 67 RE_Group() const; 68 const group::SlotList & 69 Slots() const; 70 DYN Slot * Create_Slot( 71 SlotAccessId i_nSlot ) const; 72 73 74 private: 75 virtual Gid inq_Id_Group() const = 0; 76 virtual const cpp::CppEntity & 77 inq_RE_Group() const = 0; 78 virtual const group::SlotList & 79 inq_Slots() const = 0; 80 virtual DYN Slot * inq_Create_Slot( 81 SlotAccessId i_nSlot ) const = 0; 82 }; 83 84 85 86 // IMPLEMENTATION 87 inline Gid Id_Group() const88AryGroup::Id_Group() const 89 { return inq_Id_Group(); } 90 inline const cpp::CppEntity & RE_Group() const91AryGroup::RE_Group() const 92 { return inq_RE_Group(); } 93 inline const group::SlotList & Slots() const94AryGroup::Slots() const 95 { return inq_Slots(); } 96 inline DYN Slot * Create_Slot(SlotAccessId i_nSlot) const97AryGroup::Create_Slot( SlotAccessId i_nSlot ) const 98 { return inq_Create_Slot(i_nSlot); } 99 100 101 102 } // namespace ary 103 #endif 104