10 #ifndef KERNEL_SMARTREF_H
11 #define KERNEL_SMARTREF_H 1
96 m_target =
const_cast<TYPE*
>(pObject);
159 const std::type_info*
type()
const {
160 return &
typeid(TYPE);
170 const TYPE*
target()
const;
258 friend StreamBuffer& operator<< (StreamBuffer& _s, const SmartRef<TYPE>& ptr) {
259 return ptr.writeRef(_s);
278 template <
class TYPE>
inline
280 if ( 0 == m_target ) {
281 m_target =
dynamic_cast<const TYPE*
>(m_base.accessData(m_target));
283 return const_cast<TYPE*
>(m_target);
287 template <
class TYPE>
inline
289 if ( 0 == m_target ) {
290 m_target =
dynamic_cast<const TYPE*
>(m_base.accessData(m_target));
296 template <
class TYPE>
inline
298 m_base.writeObject(m_target, s);
303 template <
class TYPE>
inline
305 m_target =
dynamic_cast<TYPE*
>( m_base.readObject(m_target, s) );
310 template <
class TYPE>
inline
312 const TYPE* obj = ref;
317 template <
class TYPE>
inline
319 const TYPE* obj = ref;
324 template <
class TYPE>
inline
326 const TYPE* obj = ref;
331 template <
class TYPE>
inline
333 const TYPE* obj = ref;
337 #endif // KERNEL_SMARTREF_H