Changeset 1148
- Timestamp:
- 04/10/08 21:21:08 (1 month ago)
- Files:
-
- trunk/Source/System/FieldContainer/Fields/Handle/OSGFieldContainerSFieldHandle.h (modified) (1 diff)
- trunk/Source/System/FieldContainer/Fields/Handle/OSGFieldContainerSFieldHandle.inl (modified) (1 diff)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildAccessHandler.h (modified) (2 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildAccessHandler.inl (modified) (10 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMFieldBase.h (modified) (1 diff)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMFieldBase.inl (modified) (1 diff)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.h (modified) (5 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.inl (modified) (5 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSFieldBase.h (modified) (3 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSFieldBase.inl (modified) (3 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerSField.h (modified) (8 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerSField.inl (modified) (5 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGPointerAccessHandler.inl (modified) (1 diff)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGPointerSField.h (modified) (7 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGPointerSField.inl (modified) (7 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGPointerSFieldBase.h (modified) (4 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGPointerSFieldBase.inl (modified) (1 diff)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGPointerSFieldCommon.h (modified) (6 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGPointerSFieldCommon.inl (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Source/System/FieldContainer/Fields/Handle/OSGFieldContainerSFieldHandle.h
r1131 r1148 204 204 /*========================== PUBLIC =================================*/ 205 205 206 typedef boost::function<void (typename FieldT::const_ reference)> SetMethod;206 typedef boost::function<void (typename FieldT::const_value)> SetMethod; 207 207 208 208 SetMethod _fSetMethod; trunk/Source/System/FieldContainer/Fields/Handle/OSGFieldContainerSFieldHandle.inl
r1131 r1148 339 339 void EditFCPtrSFieldHandle<FieldT>::setValue(FieldContainerPtrConstArg rhs) 340 340 { 341 typename FieldT::const_ reference pVal =342 dynamic_cast<typename FieldT::const_ reference>(rhs);341 typename FieldT::const_value pVal = 342 dynamic_cast<typename FieldT::const_value>(rhs); 343 343 344 344 if(rhs != NULL && pVal == NULL) trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildAccessHandler.h
r1143 r1148 62 62 class ChildPointerMFieldBase; 63 63 64 template < Int32 NamespaceI>64 template <typename AccessHandlerT, Int32 NamespaceI> 65 65 class ChildPointerSFieldBase; 66 66 … … 84 84 85 85 typedef ChildPointerMFieldBase <0> MFieldType; 86 typedef ChildPointerSFieldBase < 0> SFieldType;86 typedef ChildPointerSFieldBase <Self, 0> SFieldType; 87 87 88 88 /*! \} */ trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildAccessHandler.inl
r1143 r1148 109 109 dcastSField(pSField)->getChildFieldId (), 110 110 pObj, 111 dcastSField(pSField)->getParentField Id() );111 dcastSField(pSField)->getParentFieldPos () ); 112 112 } 113 113 } … … 125 125 dcastMField(pMField)->getChildFieldId (), 126 126 pObj, 127 dcastMField(pMField)->getParentField Id() );127 dcastMField(pMField)->getParentFieldPos () ); 128 128 } 129 129 } … … 138 138 unlinkParent(dcastSField(pSField)->getEnclosingObject(), 139 139 pObj, 140 dcastSField(pSField)->getParentField Id());140 dcastSField(pSField)->getParentFieldPos() ); 141 141 142 142 RefCountPolicyType::subRef(pObj/*, false*/); … … 153 153 unlinkParent(dcastMField(pMField)->getEnclosingObject(), 154 154 pObj, 155 dcastMField(pMField)->getParentField Id());155 dcastMField(pMField)->getParentFieldPos() ); 156 156 157 157 RefCountPolicyType::subRef(pObj/*, false*/); … … 171 171 unlinkParent(dcastSField(pSField)->getEnclosingObject(), 172 172 pOldObj, 173 dcastSField(pSField)->getParentField Id());173 dcastSField(pSField)->getParentFieldPos()); 174 174 175 175 RefCountPolicyType::subRef(pOldObj/*, false*/); … … 181 181 dcastSField(pSField)->getChildFieldId (), 182 182 pNewObj, 183 dcastSField(pSField)->getParentField Id());183 dcastSField(pSField)->getParentFieldPos ()); 184 184 } 185 185 } … … 197 197 unlinkParent(dcastMField(pMField)->getEnclosingObject(), 198 198 pOldObj, 199 dcastMField(pMField)->getParentField Id());199 dcastMField(pMField)->getParentFieldPos() ); 200 200 201 201 RefCountPolicyType::subRef(pOldObj/*, false*/); … … 207 207 dcastMField(pMField)->getChildFieldId (), 208 208 pNewObj, 209 dcastMField(pMField)->getParentField Id());209 dcastMField(pMField)->getParentFieldPos ()); 210 210 } 211 211 } … … 253 253 { 254 254 onSyncAdd(pSField, pNewObj); 255 onSyncSub(pSField, pOldObj); 255 256 if(pOldObj != NullFC) 257 { 258 Thread::getCurrentChangeList()->addDelayedSubRef< 259 RefCountPolicyT>(pOldObj); 260 } 261 262 // onSyncSub(pSField, pOldObj); 256 263 } 257 264 … … 263 270 { 264 271 onSyncAdd(pMField, pNewObj); 265 onSyncSub(pMField, pOldObj); 272 273 if(pOldObj != NullFC) 274 { 275 Thread::getCurrentChangeList()->addDelayedSubRef< 276 RefCountPolicyT>(pOldObj); 277 } 278 279 // onSyncSub(pMField, pOldObj); 266 280 } 267 281 trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMFieldBase.h
r1143 r1148 62 62 void setChildFieldId (UInt16 const childFieldId ); 63 63 64 UInt16 getParentField Id(void ) const;64 UInt16 getParentFieldPos(void ) const; 65 65 void setParentFieldId(UInt16 const parentFieldId); 66 66 trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMFieldBase.inl
r1122 r1148 89 89 template <Int32 NamespaceI> 90 90 inline UInt16 91 ChildPointerMFieldBase<NamespaceI>::getParentField Id(void) const91 ChildPointerMFieldBase<NamespaceI>::getParentFieldPos(void) const 92 92 { 93 93 return _parentFieldId; trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.h
r1147 r1148 58 58 /*---------------------------------------------------------------------------*/ 59 59 60 template <class ObjectTypeT, 61 Int32 NamespaceI = 0> 62 class ChildPointerSField : public ChildPointerSFieldBase<NamespaceI> 60 template <class ObjectTypeT, 61 typename RefCountPolicy, 62 Int32 NamespaceI = 0> 63 class ChildPointerSField : 64 public ChildPointerSFieldBase<ChildAccessHandler<RefCountPolicy>, 65 NamespaceI > 63 66 { 64 67 … … 71 74 /*! \{ */ 72 75 73 typedef ObjectTypeT ObjectType; 76 typedef ChildPointerSFieldBase< 77 ChildAccessHandler<RefCountPolicy>, 78 NamespaceI > Inherited; 74 79 75 typedef ChildPointerSFieldBase<NamespaceI > Inherited; 76 typedef ChildPointerSField <ObjectType, 77 NamespaceI > Self; 80 typedef ChildPointerSField Self; 78 81 82 typedef ObjectTypeT * value_type; 83 typedef ObjectTypeT * const const_value; 84 85 typedef value_type StoredType; 79 86 80 typedef ObjectTypeT * ValueType; 81 typedef ObjectTypeT * const ArgumentType; 82 typedef ObjectTypeT * value_type; 87 typedef FieldTraits <value_type, 88 NamespaceI > SFieldTraits; 83 89 84 85 typedef ValueType *pointer; 86 typedef ArgumentType *const_pointer; 90 typedef FieldDescription <SFieldTraits, 91 FieldType::SingleField, 92 UnrecordedRefCountPolicy, 93 FieldType::ChildPtrField> Description; 87 94 88 typedef ValueType const &const_reference; 89 90 typedef typename Inherited::StoredType StoredType; 91 92 typedef FieldTraits <ValueType, 93 NamespaceI > SFieldTraits; 95 typedef typename SFieldTraits::ParentType ParentT; 94 96 95 typedef FieldDescription<SFieldTraits, 96 FieldType::SingleField, 97 UnrecordedRefCountPolicy, 98 FieldType::ChildPtrField> Description; 99 protected: 97 typedef ObjectTypeT ObjectType; 100 98 101 99 /*! \} */ … … 118 116 /*! \name Constructors */ 119 117 /*! \{ */ 120 121 ChildPointerSField(void ); 122 ChildPointerSField(Self const &source); 123 explicit ChildPointerSField(ValueType value ); 124 118 119 ChildPointerSField(ParentT pParent, 120 UInt16 usParentFieldPos); 121 122 ChildPointerSField(const_value value, 123 ParentT pParent, 124 UInt16 usParentFieldPos); 125 125 126 /*! \} */ 126 127 /*---------------------------------------------------------------------*/ … … 135 136 /*! \{ */ 136 137 137 const_ reference getValue (void) const;138 const_value getValue ( void ) const; 138 139 139 void setValue (ValueTypevalue );140 void setValue (Self const&source);140 void setValue ( const_value value ); 141 void setValue (const Self &source); 141 142 143 /*! \} */ 144 /*---------------------------------------------------------------------*/ 145 /*! \name Binary IO */ 146 /*! \{ */ 147 148 void copyFromBin(BinaryDataHandler &pMem); 149 150 /*! \} */ 151 /*---------------------------------------------------------------------*/ 152 /*! \name MT Sync */ 153 /*! \{ */ 154 155 #ifdef OSG_MT_CPTR_ASPECT 156 void syncWith(Self &source); 157 #endif 158 142 159 /*! \} */ 143 160 /*---------------------------------------------------------------------*/ 144 161 /*! \name Assignment */ 145 162 /*! \{ */ 146 147 void operator = (Self const &source); 148 163 149 164 /*! \} */ 150 165 /*========================= PROTECTED ===============================*/ … … 163 178 private: 164 179 180 /*!\brief prohibit default function (move to 'public' if needed) */ 181 ChildPointerSField(const Self &source); 182 /*!\brief prohibit default function (move to 'public' if needed) */ 183 void operator = (const Self &source); 165 184 }; 166 185 trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.inl
r1147 r1148 53 53 /* Class Type */ 54 54 55 template <class ObjectTypeT, Int32 NamespaceI> inline55 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 56 56 FieldType const &ChildPointerSField<ObjectTypeT, 57 NamespaceI >::getClassType(void) 57 RefCountPolicy, 58 NamespaceI >::getClassType(void) 58 59 { 59 60 return _fieldType; … … 63 64 /* Constructors */ 64 65 65 template <class ObjectTypeT, Int32 NamespaceI> inline66 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 66 67 ChildPointerSField<ObjectTypeT, 67 NamespaceI >::ChildPointerSField(void) : 68 Inherited() 68 RefCountPolicy, 69 NamespaceI >::ChildPointerSField( 70 ParentT pParent, 71 UInt16 usParentFieldPos) : 72 Inherited(pParent, 73 usParentFieldPos) 69 74 { 70 // nothing to do71 75 } 72 76 73 template <class ObjectTypeT, Int32 NamespaceI> inline77 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 74 78 ChildPointerSField<ObjectTypeT, 75 NamespaceI >::ChildPointerSField(Self const &source) : 76 Inherited(source) 79 RefCountPolicy, 80 NamespaceI >::ChildPointerSField( 81 const_value value, 82 ParentT pParent, 83 UInt16 usParentFieldPos) : 84 Inherited(value, 85 pParent, 86 usParentFieldPos) 77 87 { 78 // nothing to do79 }80 81 template <class ObjectTypeT, Int32 NamespaceI> inline82 ChildPointerSField<ObjectTypeT,83 NamespaceI >::ChildPointerSField(ValueType value) :84 Inherited(value)85 {86 // nothing to do87 88 } 88 89 … … 90 91 /* Destructor */ 91 92 92 template <class ObjectTypeT, Int32 NamespaceI> inline93 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 93 94 ChildPointerSField<ObjectTypeT, 94 NamespaceI >::~ChildPointerSField(void) 95 RefCountPolicy, 96 NamespaceI >::~ChildPointerSField(void) 95 97 { 96 98 } … … 99 101 /* Access */ 100 102 101 template <class ObjectTypeT, Int32 NamespaceI> inline103 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 102 104 typename ChildPointerSField<ObjectTypeT, 103 NamespaceI >::const_reference 105 RefCountPolicy, 106 NamespaceI >::const_value 104 107 ChildPointerSField<ObjectTypeT, 105 NamespaceI >::getValue(void) const 108 RefCountPolicy, 109 NamespaceI >::getValue(void) const 106 110 { 107 return reinterpret_cast<const_reference>(this->getRawStore());111 return static_cast<const_value>(this->ptrStoreGet()); 108 112 } 109 113 110 template <class ObjectTypeT, Int32 NamespaceI> inline114 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 111 115 void ChildPointerSField<ObjectTypeT, 112 NamespaceI >::setValue(ValueType value) 116 RefCountPolicy, 117 NamespaceI >::setValue(const_value value) 113 118 { 114 119 this->ptrStoreSet(value); 115 120 } 116 121 117 template <class ObjectTypeT, Int32 NamespaceI> inline122 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 118 123 void ChildPointerSField<ObjectTypeT, 119 NamespaceI >::setValue(Self const &source) 124 RefCountPolicy, 125 NamespaceI >::setValue(const Self &source) 120 126 { 121 127 this->ptrStoreSet(source.ptrStoreGet()); 122 128 } 129 130 template <class ObjectTypeT, 131 typename RefCountPolicy, 132 Int32 NamespaceI > inline 133 void ChildPointerSField<ObjectTypeT, 134 RefCountPolicy, 135 NamespaceI >::copyFromBin(BinaryDataHandler &pMem) 136 { 137 Inherited::copyFromBin(pMem); 138 } 139 140 #ifdef OSG_MT_CPTR_ASPECT 141 template <class ObjectTypeT, 142 typename RefCountPolicy, 143 Int32 NamespaceI > inline 144 void ChildPointerSField<ObjectTypeT, 145 RefCountPolicy, 146 NamespaceI >::syncWith(Self &source) 147 { 148 Inherited::syncWith(source); 149 } 150 #endif 123 151 124 152 /*-------------------------------------------------------------------------*/ … … 135 163 /* Assignment */ 136 164 137 template <class ObjectTypeT, Int32 NamespaceI> inline138 void ChildPointerSField<ObjectTypeT,139 NamespaceI >::operator =(Self const &other)140 {141 this->ptrStoreSet(other.ptrStoreGet());142 }143 144 165 OSG_END_NAMESPACE trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSFieldBase.h
r1143 r1148 21 21 22 22 23 template <Int32 NamespaceI = 0> 23 template <typename AccessHandlerT, 24 Int32 NamespaceI = 0> 24 25 class ChildPointerSFieldBase 25 : public PointerSFieldCommon< UnrecChildAccessHandler, NamespaceI>26 : public PointerSFieldCommon<AccessHandlerT, NamespaceI> 26 27 { 27 28 /*========================== PUBLIC =================================*/ 29 28 30 public: 31 29 32 /*---------------------------------------------------------------------*/ 30 33 /*! \name Public Types */ 31 34 /*! \{ */ 32 35 33 typedef PointerSFieldCommon <UnrecChildAccessHandler,34 NamespaceI> Inherited;35 typedef ChildPointerSFieldBase Self;36 typedef PointerSFieldCommon <AccessHandlerT, 37 NamespaceI > Inherited; 38 typedef ChildPointerSFieldBase Self; 36 39 40 typedef const FieldContainerPtr const_value; 41 37 42 /*! \} */ 43 /*========================= PROTECTED ===============================*/ 44 45 protected: 46 38 47 /*---------------------------------------------------------------------*/ 39 48 /*! \name Constructors */ 40 49 /*! \{ */ 41 50 42 ChildPointerSFieldBase(void ); 43 ChildPointerSFieldBase(Self const &source); 44 explicit ChildPointerSFieldBase(FieldContainerPtrConst value ); 51 ChildPointerSFieldBase(const FieldContainerPtr pParent, 52 UInt16 usParentFieldPos); 53 54 ChildPointerSFieldBase( const_value value, 55 const FieldContainerPtr pParent, 56 UInt16 usParentFieldPos); 45 57 46 58 /*! \} */ … … 56 68 /*! \{ */ 57 69 58 FieldContainerPtr getEnclosingObject( void) const;59 void setEnclosingObject( FieldContainerPtrConst pObj);70 FieldContainerPtr getEnclosingObject( void ) const; 71 void setEnclosingObject(const FieldContainerPtr pObj ); 60 72 61 UInt16 getChildFieldId (void) const;62 void setChildFieldId (UInt16 const childFieldId);73 UInt16 getChildFieldId ( void ) const; 74 void setChildFieldId (const UInt16 childFieldId ); 63 75 64 UInt16 getParentFieldId(void) const;65 void setParentFieldId(UInt16 const parentFieldId);66 76 UInt16 getParentFieldPos ( void ) const; 77 void setParentFieldPos (const UInt16 usParentFieldPos); 78 67 79 /*! \} */ 68 /*========================= PROTECTED ===============================*/69 protected:70 80 /*---------------------------------------------------------------------*/ 71 81 /*! \name Members */ … … 74 84 FieldContainerPtr _pEnclosingObj; 75 85 UInt16 _childFieldId; 76 UInt16 _ parentFieldId;86 UInt16 _usParentFieldPos; 77 87 78 88 /*! \} */ 79 89 /*========================== PRIVATE ================================*/ 80 90 private: 91 92 template<typename RefCountPolicyT> 93 friend class ChildAccessHandler; 94 95 /*!\brief prohibit default function (move to 'public' if needed) */ 96 ChildPointerSFieldBase(const Self &source); 97 /*!\brief prohibit default function (move to 'public' if needed) */ 98 void operator = (const Self &source); 81 99 }; 82 100 trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSFieldBase.inl
r1122 r1148 11 11 /* Constructors */ 12 12 13 template <Int32 NamespaceI> 14 inline 15 ChildPointerSFieldBase<NamespaceI>::ChildPointerSFieldBase(void) 16 : Inherited ( ), 17 _pEnclosingObj(NULL), 18 _childFieldId (0 ), 19 _parentFieldId(0 ) 13 template <typename AccessHandlerT, Int32 NamespaceI> inline 14 ChildPointerSFieldBase<AccessHandlerT, 15 NamespaceI>::ChildPointerSFieldBase( 16 const FieldContainerPtr pParent, 17 UInt16 usParentFieldPos) : 18 Inherited ( ), 19 _pEnclosingObj (pParent ), 20 _childFieldId (0xFFFF ), 21 _usParentFieldPos(usParentFieldPos) 20 22 { 21 23 } 22 24 23 template <Int32 NamespaceI> 24 inline 25 ChildPointerSFieldBase<NamespaceI>::ChildPointerSFieldBase( 26 Self const &source) 27 : Inherited (source ), 28 _pEnclosingObj(source._pEnclosingObj), 29 _childFieldId (source._childFieldId ), 30 _parentFieldId(source._parentFieldId) 25 template <typename AccessHandlerT, Int32 NamespaceI> inline 26 ChildPointerSFieldBase<AccessHandlerT, 27 NamespaceI>::ChildPointerSFieldBase( 28 const_value value, 29 const FieldContainerPtr pParent, 30 UInt16 usParentFieldPos) : 31 Inherited ( ), 32 _pEnclosingObj (pParent ), 33 _childFieldId (0xFFFF ), 34 _usParentFieldPos(usParentFieldPos) 31 35 { 32 } 33 34 template <Int32 NamespaceI> 35 inline 36 ChildPointerSFieldBase<NamespaceI>::ChildPointerSFieldBase( 37 FieldContainerPtrConst value) 38 : Inherited (value), 39 _pEnclosingObj(NULL ), 40 _childFieldId (0 ), 41 _parentFieldId(0 ) 42 { 36 this->ptrStoreSet(value); 43 37 } 44 38 … … 46 40 /* Destructor */ 47 41 48 template < Int32 NamespaceI>49 inline 50 ChildPointerSFieldBase<NamespaceI>::~ChildPointerSFieldBase(void)42 template <typename AccessHandlerT, Int32 NamespaceI> inline 43 ChildPointerSFieldBase<AccessHandlerT, 44 NamespaceI >::~ChildPointerSFieldBase(void) 51 45 { 52 // nothing to do53 46 } 54 47 … … 56 49 /* Child Linking Information */ 57 50 58 template <Int32 NamespaceI> 59 inline FieldContainerPtr 60 ChildPointerSFieldBase<NamespaceI>::getEnclosingObject(void) const 51 template <typename AccessHandlerT, Int32 NamespaceI> inline 52 FieldContainerPtr 53 ChildPointerSFieldBase<AccessHandlerT, 54 NamespaceI >::getEnclosingObject(void) const 61 55 { 62 56 return _pEnclosingObj; 63 57 } 64 58 65 template <Int32 NamespaceI> 66 inline void 67 ChildPointerSFieldBase<NamespaceI>::setEnclosingObject( 68 FieldContainerPtrConst pObj) 59 template <typename AccessHandlerT, Int32 NamespaceI> inline 60 void ChildPointerSFieldBase<AccessHandlerT, NamespaceI>::setEnclosingObject( 61 const FieldContainerPtr pObj) 69 62 { 70 63 _pEnclosingObj = pObj; 71 64 } 72 65 73 template < Int32 NamespaceI>74 inline UInt16 75 ChildPointerSFieldBase<NamespaceI>::getChildFieldId(void) const66 template <typename AccessHandlerT, Int32 NamespaceI> inline 67 UInt16 ChildPointerSFieldBase<AccessHandlerT, 68 NamespaceI >::getChildFieldId(void) const 76 69 { 77 70 return _childFieldId; 78 71 } 79 72 80 template < Int32 NamespaceI>81 inline void 82 ChildPointerSFieldBase<NamespaceI>::setChildFieldId(83 UInt16 constchildFieldId)73 template <typename AccessHandlerT, Int32 NamespaceI> inline 74 void ChildPointerSFieldBase<AccessHandlerT, 75 NamespaceI >::setChildFieldId( 76 const UInt16 childFieldId) 84 77 { 85 78 _childFieldId = childFieldId; 86 79 } 87 80 88 template < Int32 NamespaceI>89 inline UInt16 90 ChildPointerSFieldBase<NamespaceI>::getParentFieldId(void) const81 template <typename AccessHandlerT, Int32 NamespaceI> inline 82 UInt16 ChildPointerSFieldBase<AccessHandlerT, 83 NamespaceI >::getParentFieldPos(void) const 91 84 { 92 return _ parentFieldId;85 return _usParentFieldPos; 93 86 } 94 87 95 template <Int32 NamespaceI> 96 inline void 97 ChildPointerSFieldBase<NamespaceI>::setParentFieldId( 98 UInt16 const parentFieldId) 88 template <typename AccessHandlerT, Int32 NamespaceI> inline 89 void ChildPointerSFieldBase<AccessHandlerT, NamespaceI>::setParentFieldPos( 90 const UInt16 usParentFieldPos) 99 91 { 100 _ parentFieldId = parentFieldId;92 _usParentFieldPos = usParentFieldPos; 101 93 } 102 94 trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerSField.h
r1147 r1148 60 60 /*---------------------------------------------------------------------------*/ 61 61 62 template <class ObjectTypeT, 63 Int32 NamespaceI = 0> 62 template <class ObjectTypeT, 63 typename RefCountPolicy, 64 Int32 NamespaceI = 0> 64 65 class ParentPointerSField : 65 public PointerSFieldCommon<NoRefCountAccessHandler, NamespaceI> 66 public PointerSFieldCommon<PointerAccessHandler<RefCountPolicy>, 67 NamespaceI > 66 68 { 67 69 /*========================== PUBLIC =================================*/ … … 72 74 /*! \name Public Types */ 73 75 /*! \{ */ 74 75 typedef ObjectTypeT ObjectType;76 76 77 typedef PointerSFieldCommon <NoRefCountAccessHandler, 78 NamespaceI > Inherited; 79 typedef ParentPointerSField <ObjectTypeT, 80 NamespaceI > Self; 77 typedef PointerSFieldCommon< 78 PointerAccessHandler<RefCountPolicy>, 79 NamespaceI > Inherited; 80 81 typedef ParentPointerSField Self; 81 82 82 typedef ObjectTypeT * ValueType; 83 typedef ObjectTypeT * const ArgumentType; 84 typedef ObjectTypeT * value_type; 85 86 typedef ArgumentType *const_pointer; 87 typedef ValueType const &const_reference; 88 89 typedef UInt16 IdStoredType; 90 typedef UInt16 &IdStoredTypeRef; 91 typedef UInt16 const &IdStoredTypeConstRef; 92 93 typedef FieldTraits<IdStoredType > IdBaseTraitsType; 94 95 typedef FieldTraits <ValueType, 96 NamespaceI > SFieldTraits; 97 typedef FieldDescription<SFieldTraits, 98 FieldType::SingleField, 99 NoRefCountPolicy, 100 FieldType::ParentPtrField > Description; 101 protected: 83 typedef ObjectTypeT * value_type; 84 typedef ObjectTypeT * const const_value; 85 86 87 typedef FieldTraits <UInt16 > PosSFieldTraits; 88 89 typedef FieldTraits <value_type, 90 NamespaceI > PtrSFieldTraits; 91 typedef PtrSFieldTraits SFieldTraits; 92 93 typedef FieldDescription <PtrSFieldTraits, 94 FieldType::SingleField, 95 NoRefCountPolicy, 96 FieldType::ParentPtrField> Description; 97 98 typedef ObjectTypeT ObjectType; 102 99 103 100 // handles … … 128 125 /*! \{ */ 129 126 130 static FieldType const&getClassType(void);127 static const FieldType &getClassType(void); 131 128 132 129 /*! \} */ … … 135 132 /*! \{ */ 136 133 137 ParentPointerSField(void ); 138 ParentPointerSField(Self const &other ); 139 ParentPointerSField(ValueType ptrValue, 140 IdStoredType idValue = 0x0000); 134 ParentPointerSField(const_value value, 135 UInt16 uiParentFieldPos = 0xFFFF); 141 136 142 137 /*! \} */ … … 149 144 /*! \} */ 150 145 /*---------------------------------------------------------------------*/ 146 /*! \name Access */ 147 /*! \{ */ 148 149 const_value getValue (void) const; 150 UInt16 getParentFieldPos(void) const; 151 152 /*! \} &nb
