Updated logging to include the class/method so that it is more obvious where these...
[ACE_TAO.git] / TAO / tao / Object_Reference_Traits_Base_T.h
blob74b1f4dd490de9427da5fe4c413393b4eef035ad
1 #ifndef object_reference_traits_base_hpp
2 #define object_reference_traits_base_hpp
3 /**
4 * @file
6 * @brief Base class for the object reference traits.
8 * @author Carlos O'Ryan
9 */
11 #include "tao/Objref_VarOut_T.h"
13 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
15 namespace TAO
17 namespace details
20 template<typename object_t, typename object_t_var>
21 struct object_reference_traits_base
23 typedef object_t object_type;
24 typedef object_type * value_type;
25 typedef object_type const * const_value_type;
26 typedef object_t_var object_type_var;
28 inline static void release(object_type * object)
30 TAO::Objref_Traits<object_type>::release(object);
33 inline static object_type * duplicate(object_type * object)
35 return TAO::Objref_Traits<object_type>::duplicate(object);
38 inline static object_type * nil()
40 return TAO::Objref_Traits<object_type>::nil();
43 inline static object_type * default_initializer()
45 return nil();
49 } // namespace details
50 } // namespace TAO
52 TAO_END_VERSIONED_NAMESPACE_DECL
54 #endif // object_reference_traits_base_hpp