Changeset 1147
- Timestamp:
- 04/10/08 21:20:28 (1 month ago)
- Files:
-
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.h (modified) (10 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.inl (modified) (5 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerSField.h (modified) (7 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerSField.inl (modified) (14 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGPointerSField.h (copied) (copied from trunk/Source/System/FieldContainer/Fields/PointerFields/OSGWeakPointerSField.h) (10 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGPointerSField.inl (added)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGUnrecordedPointerSField.h (modified) (9 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGUnrecordedPointerSField.inl (modified) (4 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGWeakPointerSField.h (modified) (7 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGWeakPointerSField.inl (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.h
r1146 r1147 1 /*---------------------------------------------------------------------------*\ 2 * OpenSG * 3 * * 4 * * 5 * Copyright (C) 2008 by the OpenSG Forum * 6 * * 7 * www.opensg.org * 8 * * 9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de * 10 * * 11 \*---------------------------------------------------------------------------*/ 12 /*---------------------------------------------------------------------------*\ 13 * License * 14 * * 15 * This library is free software; you can redistribute it and/or modify it * 16 * under the terms of the GNU Library General Public License as published * 17 * by the Free Software Foundation, version 2. * 18 * * 19 * This library is distributed in the hope that it will be useful, but * 20 * WITHOUT ANY WARRANTY; without even the implied warranty of * 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 22 * Library General Public License for more details. * 23 * * 24 * You should have received a copy of the GNU Library General Public * 25 * License along with this library; if not, write to the Free Software * 26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 27 * * 28 \*---------------------------------------------------------------------------*/ 29 /*---------------------------------------------------------------------------*\ 30 * Changes * 31 * * 32 * * 33 * * 34 * * 35 * * 36 * * 37 \*---------------------------------------------------------------------------*/ 1 38 2 39 #ifndef _OSGCHILDPOINTERSFIELD_H_ … … 7 44 #endif 8 45 9 #include "OSGConfig.h"10 46 #include "OSGChildPointerSFieldBase.h" 11 47 … … 18 54 OSG_BEGIN_NAMESPACE 19 55 20 // forward declarations21 template <class ObjectTypeT, Int32 NamespaceI>22 class ChildPointerSField;23 24 /*-------------------------------------------------------------------------*/25 /* ChildSFieldReferenceProxy<ObjectTypeT> */26 /*-------------------------------------------------------------------------*/27 28 template <class ObjectTypeT>29 class ChildSFieldReferenceProxy30 {31 /*========================== PUBLIC =================================*/32 public:33 /*---------------------------------------------------------------------*/34 /*! \name Public Types */35 /*! \{ */36 37 typedef ObjectTypeT ObjectType;38 39 typedef ChildSFieldReferenceProxy Self;40 41 typedef ChildPointerSField<ObjectTypeT, 0> SFieldType;42 // typedef ChildFieldConfig <ObjectTypeT, 0> FieldConfig;43 typedef typename SFieldType::AccessHandler AccessHandler;44 45 // store types46 typedef typename SFieldType::StoredType StoredType;47 48 // std library types49 // typedef typename FieldConfig::ValueType value_type;50 typedef ObjectTypeT * value_type;51 52 /*! \} */53 /*---------------------------------------------------------------------*/54 /*! \name Constructors */55 /*! \{ */56 57 ChildSFieldReferenceProxy(StoredType * const pValue,58 SFieldType * pField );59 ChildSFieldReferenceProxy(Self const &source );60 61 /*! \} */62 /*---------------------------------------------------------------------*/63 /*! \name Destructor */64 /*! \{ */65 66 ~ChildSFieldReferenceProxy(void);67 68 /*! \} */69 /*---------------------------------------------------------------------*/70 /*! \name Operators */71 /*! \{ */72 73 operator value_type(void) const;74 value_type operator-> (void) const;75 76 void operator=(value_type newValue);77 78 /*! \} */79 /*========================== PRIVATE ================================*/80 private:81 StoredType *_pValue;82 SFieldType *_pField;83 };84 85 56 /*---------------------------------------------------------------------------*/ 86 57 /* ChildPointerSField<FieldConfigT> */ … … 91 62 class ChildPointerSField : public ChildPointerSFieldBase<NamespaceI> 92 63 { 64 93 65 /*========================== PUBLIC =================================*/ 66 94 67 public: 68 95 69 /*---------------------------------------------------------------------*/ 96 70 /*! \name Public Types */ … … 103 77 NamespaceI > Self; 104 78 105 // typedef ChildFieldConfig <ObjectTypeT,106 // NamespaceI > FieldConfig;107 79 108 80 typedef ObjectTypeT * ValueType; … … 110 82 typedef ObjectTypeT * value_type; 111 83 112 // typedef typename FieldConfig::ValueType ValueType;113 // typedef typename FieldConfig::ArgumentType ArgumentType;114 // typedef typename FieldConfig::ValueType value_type;115 84 116 85 typedef ValueType *pointer; 117 86 typedef ArgumentType *const_pointer; 118 87 119 // typedef typename FieldConfig::PtrType pointer;120 // typedef typename FieldConfig::ConstPtrType const_pointer;121 122 // typedef typename FieldConfig::SFieldRefType reference;123 // typedef typename FieldConfig::SFieldConstRefType const_reference;124 125 typedef ChildSFieldReferenceProxy<ObjectType> reference;126 88 typedef ValueType const &const_reference; 127 89 … … 130 92 typedef FieldTraits <ValueType, 131 93 NamespaceI > SFieldTraits; 94 132 95 typedef FieldDescription<SFieldTraits, 133 96 FieldType::SingleField, 134 97 UnrecordedRefCountPolicy, 135 98 FieldType::ChildPtrField> Description; 136 137 // handles 138 // typedef EditPointerSFieldHandle<Self> EditHandle; 139 // typedef typename EditPointerSFieldHandle<Self>::Ptr EditHandlePtr; 140 141 // typedef GetPointerSFieldHandle <Self> GetHandle; 142 // typedef typename GetPointerSFieldHandle <Self>::Ptr GetHandlePtr; 143 144 // handles for dynamic fields -- XXX TODO 145 // typedef EditPointerSFieldHandle<Self> DynamicEditHandle; 146 // typedef typename EditPointerSFieldHandle<Self>::Ptr DynamicEditHandlePtr; 147 148 // typedef GetPointerSFieldHandle <Self> DynamicGetHandle; 149 // typedef typename GetPointerSFieldHandle <Self>::Ptr DynamicGetHandlePtr; 150 99 protected: 100 151 101 /*! \} */ 152 102 /*---------------------------------------------------------------------*/ … … 185 135 /*! \{ */ 186 136 187 reference editValue(void );188 137 const_reference getValue (void ) const; 189 138 … … 200 149 /*! \} */ 201 150 /*========================= PROTECTED ===============================*/ 151 202 152 protected: 153 203 154 /*---------------------------------------------------------------------*/ 204 155 /*! \name Members */ … … 209 160 /*! \} */ 210 161 /*========================== PRIVATE ================================*/ 162 211 163 private: 164 212 165 }; 213 166 trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.inl
r1135 r1147 1 1 /*---------------------------------------------------------------------------*\ 2 * OpenSG * 3 * * 4 * * 5 * Copyright (C) 2008 by the OpenSG Forum * 6 * * 7 * www.opensg.org * 8 * * 9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de * 10 * * 11 \*---------------------------------------------------------------------------*/ 12 /*---------------------------------------------------------------------------*\ 13 * License * 14 * * 15 * This library is free software; you can redistribute it and/or modify it * 16 * under the terms of the GNU Library General Public License as published * 17 * by the Free Software Foundation, version 2. * 18 * * 19 * This library is distributed in the hope that it will be useful, but * 20 * WITHOUT ANY WARRANTY; without even the implied warranty of * 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 22 * Library General Public License for more details. * 23 * * 24 * You should have received a copy of the GNU Library General Public * 25 * License along with this library; if not, write to the Free Software * 26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 27 * * 28 \*---------------------------------------------------------------------------*/ 29 /*---------------------------------------------------------------------------*\ 30 * Changes * 31 * * 32 * * 33 * * 34 * * 35 * * 36 * * 37 \*---------------------------------------------------------------------------*/ 2 38 3 39 #ifdef OSG_DOC_FILES_IN_MODULE … … 10 46 11 47 /*-------------------------------------------------------------------------*/ 12 /* ChildSFieldReferenceProxy<ObjectTypeT> */ 48 /* ChildPointerSField<ObjectTypeT, */ 49 /* NamespaceI > */ 13 50 /*-------------------------------------------------------------------------*/ 51 52 /*-------------------------------------------------------------------------*/ 53 /* Class Type */ 54 55 template <class ObjectTypeT, Int32 NamespaceI> inline 56 FieldType const &ChildPointerSField<ObjectTypeT, 57 NamespaceI >::getClassType(void) 58 { 59 return _fieldType; 60 } 14 61 15 62 /*-------------------------------------------------------------------------*/ 16 63 /* Constructors */ 17 64 18 template <class ObjectTypeT> 19 inline 20 ChildSFieldReferenceProxy<ObjectTypeT>::ChildSFieldReferenceProxy( 21 StoredType * const value, SFieldType *pField) 22 23 : _pValue(value ), 24 _pField(pField) 65 template <class ObjectTypeT, Int32 NamespaceI> inline 66 ChildPointerSField<ObjectTypeT, 67 NamespaceI >::ChildPointerSField(void) : 68 Inherited() 25 69 { 26 70 // nothing to do 27 71 } 28 72 29 template <class ObjectTypeT> 30 ChildSFieldReferenceProxy<ObjectTypeT>::ChildSFieldReferenceProxy( 31 Self const &source) 32 33 : _pValue(source._pValue), 34 _pField(source._pField) 73 template <class ObjectTypeT, Int32 NamespaceI> inline 74 ChildPointerSField<ObjectTypeT, 75 NamespaceI >::ChildPointerSField(Self const &source) : 76 Inherited(source) 77 { 78 // nothing to do 79 } 80 81 template <class ObjectTypeT, Int32 NamespaceI> inline 82 ChildPointerSField<ObjectTypeT, 83 NamespaceI >::ChildPointerSField(ValueType value) : 84 Inherited(value) 35 85 { 36 86 // nothing to do … … 40 90 /* Destructor */ 41 91 42 template <class ObjectTypeT> 43 inline 44 ChildSFieldReferenceProxy<ObjectTypeT>::~ChildSFieldReferenceProxy(void) 45 { 46 // nothing to do 47 } 48 49 /*-------------------------------------------------------------------------*/ 50 /* Operators */ 51 52 template <class ObjectTypeT> 53 inline 54 ChildSFieldReferenceProxy<ObjectTypeT>::operator value_type(void) const 55 { 56 return AccessHandler::validate(*_pValue); 57 } 58 59 template <class ObjectTypeT> 60 inline typename ChildSFieldReferenceProxy<ObjectTypeT>::value_type 61 ChildSFieldReferenceProxy<ObjectTypeT>::operator->(void) const 62 { 63 return AccessHandler::validate(*_pValue); 64 } 65 66 template <class ObjectTypeT> 67 inline void 68 ChildSFieldReferenceProxy<ObjectTypeT>::operator=(value_type newValue) 69 { 70 AccessHandler::onReplace(_pField, *_pValue, newValue); 71 72 *_pValue = newValue; 73 } 74 75 /*-------------------------------------------------------------------------*/ 76 /* ChildPointerSField<ObjectTypeT, */ 77 /* NamespaceI > */ 78 /*-------------------------------------------------------------------------*/ 79 80 /*-------------------------------------------------------------------------*/ 81 /* Class Type */ 82 83 template <class ObjectTypeT, Int32 NamespaceI> 84 inline FieldType const & 85 ChildPointerSField<ObjectTypeT, 86 NamespaceI >::getClassType(void) 87 { 88 return _fieldType; 89 } 90 91 /*-------------------------------------------------------------------------*/ 92 /* Constructors */ 93 94 template <class ObjectTypeT, Int32 NamespaceI> 95 inline 96 ChildPointerSField<ObjectTypeT, 97 NamespaceI >::ChildPointerSField(void) 98 : Inherited() 99 { 100 // nothing to do 101 } 102 103 template <class ObjectTypeT, Int32 NamespaceI> 104 inline 105 ChildPointerSField<ObjectTypeT, 106 NamespaceI >::ChildPointerSField(Self const &source) 107 : Inherited(source) 108 { 109 // nothing to do 110 } 111 112 template <class ObjectTypeT, Int32 NamespaceI> 113 inline 114 ChildPointerSField<ObjectTypeT, 115 NamespaceI >::ChildPointerSField(ValueType value) 116 : Inherited(value) 117 { 118 // nothing to do 119 } 120 121 /*-------------------------------------------------------------------------*/ 122 /* Destructor */ 123 124 template <class ObjectTypeT, Int32 NamespaceI> 125 inline 126 ChildPointerSField<ObjectTypeT, 127 NamespaceI >::~ChildPointerSField(void) 92 template <class ObjectTypeT, Int32 NamespaceI> inline 93 ChildPointerSField<ObjectTypeT, 94 NamespaceI >::~ChildPointerSField(void) 128 95 { 129 96 } … … 132 99 /* Access */ 133 100 134 template <class ObjectTypeT, Int32 NamespaceI> 135 inlinetypename ChildPointerSField<ObjectTypeT,136 NamespaceI >::reference101 template <class ObjectTypeT, Int32 NamespaceI> inline 102 typename ChildPointerSField<ObjectTypeT, 103 NamespaceI >::const_reference 137 104 ChildPointerSField<ObjectTypeT, 138 NamespaceI >::editValue(void) 139 { 140 return reference(&this->editRawStore(), this); 141 } 142 143 template <class ObjectTypeT, Int32 NamespaceI> 144 inline typename ChildPointerSField<ObjectTypeT, 145 NamespaceI >::const_reference 146 ChildPointerSField<ObjectTypeT, 147 NamespaceI >::getValue(void) const 105 NamespaceI >::getValue(void) const 148 106 { 149 107 return reinterpret_cast<const_reference>(this->getRawStore()); 150 108 } 151 109 152 template <class ObjectTypeT, Int32 NamespaceI> 153 inline void 154 ChildPointerSField<ObjectTypeT, 155 NamespaceI >::setValue(ValueType value) 110 template <class ObjectTypeT, Int32 NamespaceI> inline 111 void ChildPointerSField<ObjectTypeT, 112 NamespaceI >::setValue(ValueType value) 156 113 { 157 114 this->ptrStoreSet(value); 158 115 } 159 116 160 template <class ObjectTypeT, Int32 NamespaceI> 161 inline void 162 ChildPointerSField<ObjectTypeT, 163 NamespaceI >::setValue(Self const &source) 117 template <class ObjectTypeT, Int32 NamespaceI> inline 118 void ChildPointerSField<ObjectTypeT, 119 NamespaceI >::setValue(Self const &source) 164 120 { 165 121 this->ptrStoreSet(source.ptrStoreGet()); … … 179 135 /* Assignment */ 180 136 181 template <class ObjectTypeT, Int32 NamespaceI> 182 inline void 183 ChildPointerSField<ObjectTypeT, 184 NamespaceI >::operator =(Self const &other) 137 template <class ObjectTypeT, Int32 NamespaceI> inline 138 void ChildPointerSField<ObjectTypeT, 139 NamespaceI >::operator =(Self const &other) 185 140 { 186 141 this->ptrStoreSet(other.ptrStoreGet()); trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerSField.h
r1146 r1147 1 /*---------------------------------------------------------------------------*\ 2 * OpenSG * 3 * * 4 * * 5 * Copyright (C) 2008 by the OpenSG Forum * 6 * * 7 * www.opensg.org * 8 * * 9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de * 10 * * 11 \*---------------------------------------------------------------------------*/ 12 /*---------------------------------------------------------------------------*\ 13 * License * 14 * * 15 * This library is free software; you can redistribute it and/or modify it * 16 * under the terms of the GNU Library General Public License as published * 17 * by the Free Software Foundation, version 2. * 18 * * 19 * This library is distributed in the hope that it will be useful, but * 20 * WITHOUT ANY WARRANTY; without even the implied warranty of * 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 22 * Library General Public License for more details. * 23 * * 24 * You should have received a copy of the GNU Library General Public * 25 * License along with this library; if not, write to the Free Software * 26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 27 * * 28 \*---------------------------------------------------------------------------*/ 29 /*---------------------------------------------------------------------------*\ 30 * Changes * 31 * * 32 * * 33 * * 34 * * 35 * * 36 * * 37 \*---------------------------------------------------------------------------*/ 1 38 2 39 #ifndef _OSGPARENTPOINTERSFIELD_H_ … … 7 44 #endif 8 45 9 #include "OSGConfig.h"10 46 #include "OSGPointerSFieldCommon.h" 11 47 #include "OSGPointerAccessHandler.h" … … 19 55 OSG_BEGIN_NAMESPACE 20 56 21 // forward declarations22 template <class ObjectTypeT, Int32 NamespaceI>23 class ParentPointerSField;24 25 /*---------------------------------------------------------------------------*/26 /* ParentSFieldConstReferenceProxy<ObjectTypeT> */27 /*---------------------------------------------------------------------------*/28 29 template <class ObjectTypeT>30 class ParentSFieldConstReferenceProxy31 {32 /*========================== PUBLIC =================================*/33 public:34 /*---------------------------------------------------------------------*/35 /*! \name Public Types */36 /*! \{ */37 38 typedef ObjectTypeT ObjectType;39 40 typedef ParentSFieldConstReferenceProxy Self;41 42 typedef ParentPointerSField<ObjectTypeT, 0> SFieldType;43 // typedef ParentFieldConfig <ObjectTypeT, 0> FieldConfig;44 typedef typename SFieldType::AccessHandler AccessHandler;45 46 typedef ObjectTypeT * ValueType;47 typedef ObjectTypeT * value_type;48 // typedef typename FieldConfig::ValueType ValueType;49 // typedef typename FieldConfig::ValueType value_type;50 51 // store types52 typedef typename SFieldType::StoredType StoredType;53 typedef typename SFieldType::IdStoredType IdStoredType;54 55 /*! \} */56 /*---------------------------------------------------------------------*/57 /*! \name Constructors */58 /*! \{ */59 60 ParentSFieldConstReferenceProxy(61 StoredType const * const pPtrValue,62 IdStoredType const * const pIdValue );63 ParentSFieldConstReferenceProxy(Self const &source);64 65 /*! \} */66 /*---------------------------------------------------------------------*/67 /*! \name Destructor */68 /*! \{ */69 70 ~ParentSFieldConstReferenceProxy(void);71 72 /*! \} */73 /*---------------------------------------------------------------------*/74 /*! \name Operators */75 /*! \{ */76 77 operator value_type(void) const;78 value_type operator-> (void) const;79 80 value_type getPtr(void) const;81 IdStoredType getId (void) const;82 83 /*! \} */84 /*========================== PRIVATE ================================*/85 private:86 StoredType const *_pPtrValue;87 IdStoredType const *_pIdValue;88 };89 90 57 /*---------------------------------------------------------------------------*/ 91 58 /* ParentPointerSField<ObjectTypeT, */ … … 95 62 template <class ObjectTypeT, 96 63 Int32 NamespaceI = 0> 97 class ParentPointerSField 98 :public PointerSFieldCommon<NoRefCountAccessHandler, NamespaceI>64 class ParentPointerSField : 65 public PointerSFieldCommon<NoRefCountAccessHandler, NamespaceI> 99 66 { 100 67 /*========================== PUBLIC =================================*/ 68 101 69 public: 70 102 71 /*---------------------------------------------------------------------*/ 103 72 /*! \name Public Types */ … … 111 80 NamespaceI > Self; 112 81 113 // typedef ParentFieldConfig <ObjectTypeT,114 // NamespaceI > FieldConfig;115 116 82 typedef ObjectTypeT * ValueType; 117 83 typedef ObjectTypeT * const ArgumentType; 118 84 typedef ObjectTypeT * value_type; 119 85 120 // typedef typename FieldConfig::ValueType ValueType;121 // typedef typename FieldConfig::ArgumentType ArgumentType;122 // typedef typename FieldConfig::ValueType value_type;123 124 // typedef typename FieldConfig::ConstPtrType const_pointer;125 // typedef typename FieldConfig::SFieldConstRefType const_reference;126 127 86 typedef ArgumentType *const_pointer; 128 typedef ParentSFieldConstReferenceProxy<ObjectType>const_reference;87 typedef ValueType const &const_reference; 129 88 130 89 typedef UInt16 IdStoredType; … … 140 99 NoRefCountPolicy, 141 100 FieldType::ParentPtrField > Description; 101 protected: 142 102 143 103 // handles … … 160 120 /*! \{ */ 161 121 162 static FieldType::Cardinality const fieldCard = FieldType ::SingleField;122 static FieldType::Cardinality const fieldCard = FieldType::SingleField; 163 123 static FieldType::Class const Class = FieldType::ParentPtrField; 164 124 trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerSField.inl
r1145 r1147 1 1 /*---------------------------------------------------------------------------*\ 2 * OpenSG * 3 * * 4 * * 5 * Copyright (C) 2008 by the OpenSG Forum * 6 * * 7 * www.opensg.org * 8 * * 9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de * 10 * * 11 \*---------------------------------------------------------------------------*/ 12 /*---------------------------------------------------------------------------*\ 13 * License * 14 * * 15 * This library is free software; you can redistribute it and/or modify it * 16 * under the terms of the GNU Library General Public License as published * 17 * by the Free Software Foundation, version 2. * 18 * * 19 * This library is distributed in the hope that it will be useful, but * 20 * WITHOUT ANY WARRANTY; without even the implied warranty of * 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 22 * Library General Public License for more details. * 23 * * 24 * You should have received a copy of the GNU Library General Public * 25 * License along with this library; if not, write to the Free Software * 26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 27 * * 28 \*---------------------------------------------------------------------------*/ 29 /*---------------------------------------------------------------------------*\ 30 * Changes * 31 * * 32 * * 33 * * 34 * * 35 * * 36 * * 37 \*---------------------------------------------------------------------------*/ 2 38 3 39 #ifdef OSG_DOC_FILES_IN_MODULE … … 10 46 11 47 /*-------------------------------------------------------------------------*/ 12 /* ParentSFieldConstReferenceProxy<ObjectTypeT> */13 /*-------------------------------------------------------------------------*/14 15 /*-------------------------------------------------------------------------*/16 /* Constructors */17 18 template <class ObjectTypeT>19 inline20 ParentSFieldConstReferenceProxy<ObjectTypeT>::ParentSFieldConstReferenceProxy(21 StoredType const * const pPtrValue,22 IdStoredType const * const pIdValue )23 24 : _pPtrValue(pPtrValue),25 _pIdValue (pIdValue )26 {27 // nothing to do28 }29 30 template <class ObjectTypeT>31 inline32 ParentSFieldConstReferenceProxy<ObjectTypeT>::ParentSFieldConstReferenceProxy(33 Self const &source)34 35 : _pPtrValue(source._pPtrValue),36 _pIdValue (source._pIdValue )37 {38 // nothing to do39 }40 41 /*-------------------------------------------------------------------------*/42 /* Destructor */43 44 template <class ObjectTypeT>45 inline46 ParentSFieldConstReferenceProxy<ObjectTypeT>::~ParentSFieldConstReferenceProxy(47 void)48 {49 // nothing to do50 }51 52 /*-------------------------------------------------------------------------*/53 /* Operators */54 55 template <class ObjectTypeT>56 inline57 ParentSFieldConstReferenceProxy<ObjectTypeT>::operator value_type(58 void) const59 {60 return AccessHandler::validate(*_pPtrValue);61 }62 63 template <class ObjectTypeT>64 inline t
