00001 #ifndef object_reference_traits_base_hpp
00002 #define object_reference_traits_base_hpp
00003
00004
00005
00006
00007
00008
00009
00010
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 }
00052 }
00053
00054 TAO_END_VERSIONED_NAMESPACE_DECL
00055
00056 #endif // object_reference_traits_base_hpp