00001 #ifndef object_reference_traits_base_hpp 00002 #define object_reference_traits_base_hpp 00003 /** 00004 * @file 00005 * 00006 * @brief Base class for the object reference traits. 00007 * 00008 * $Id: Object_Reference_Traits_Base_T.h 72136 2006-04-19 09:10:19Z jwillemsen $ 00009 * 00010 * @author Carlos O'Ryan 00011 */ 00012 00013 #include "tao/Objref_VarOut_T.h" 00014 00015 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00016 00017 namespace TAO 00018 { 00019 namespace details 00020 { 00021 00022 template<typename object_t, typename object_t_var> 00023 struct object_reference_traits_base 00024 { 00025 typedef object_t object_type; 00026 typedef object_type * value_type; 00027 typedef object_type const * const_value_type; 00028 typedef object_t_var object_type_var; 00029 00030 inline static void release(object_type * object) 00031 { 00032 TAO::Objref_Traits<object_type>::release(object); 00033 } 00034 00035 inline static object_type * duplicate(object_type * object) 00036 { 00037 return TAO::Objref_Traits<object_type>::duplicate(object); 00038 } 00039 00040 inline static object_type * nil() 00041 { 00042 return TAO::Objref_Traits<object_type>::nil(); 00043 } 00044 00045 inline static object_type * default_initializer() 00046 { 00047 return nil(); 00048 } 00049 }; 00050 00051 } // namespace details 00052 } // namespace TAO 00053 00054 TAO_END_VERSIONED_NAMESPACE_DECL 00055 00056 #endif // object_reference_traits_base_hpp