Object_Argument_T.cpp

Go to the documentation of this file.
00001 // $Id: Object_Argument_T.cpp 74007 2006-08-14 12:50:21Z elliott_c $
00002 
00003 #ifndef TAO_OBJECT_ARGUMENT_T_CPP
00004 #define TAO_OBJECT_ARGUMENT_T_CPP
00005 
00006 #include "tao/Object_Argument_T.h"
00007 
00008 #if !defined (__ACE_INLINE__)
00009 #include "tao/Object_Argument_T.inl"
00010 #endif /* __ACE_INLINE__ */
00011 
00012 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00013 
00014 template<typename S_ptr,
00015          class Insert_Policy>
00016 CORBA::Boolean
00017 TAO::In_Object_Argument_T<S_ptr,Insert_Policy>::marshal (TAO_OutputCDR &cdr)
00018 {
00019   return cdr << this->x_;
00020 }
00021 
00022 #if TAO_HAS_INTERCEPTORS == 1
00023 
00024 template<typename S_ptr,
00025          class Insert_Policy>
00026 void
00027 TAO::In_Object_Argument_T<S_ptr,Insert_Policy>::interceptor_value (CORBA::Any *any) const
00028 {
00029   Insert_Policy::any_insert (any, this->x_);
00030 }
00031 
00032 #endif /* TAO_HAS_INTERCEPTORS */
00033 
00034 template<typename S_ptr>
00035 void
00036 TAO::In_Object_Argument_Cloner_T<S_ptr>::duplicate (S_ptr objref)
00037 {
00038   if (objref)
00039     {
00040       objref->_add_ref ();
00041     }
00042 }
00043 
00044 template<typename S_ptr>
00045 void
00046 TAO::In_Object_Argument_Cloner_T<S_ptr>::release (S_ptr objref)
00047 {
00048   if (objref)
00049     {
00050       objref->_remove_ref ();
00051     }
00052 }
00053 
00054 template<typename S_ptr,
00055          class Insert_Policy>
00056 TAO::In_Object_Clonable_Argument_T<S_ptr,Insert_Policy>::~In_Object_Clonable_Argument_T (void)
00057 {
00058   if (this->is_clone_)
00059     {
00060       In_Object_Argument_Cloner_T<S_ptr>::release (this->x_);
00061     }
00062 }
00063 
00064 template<typename S_ptr,
00065          class Insert_Policy>
00066 TAO::Argument*
00067 TAO::In_Object_Clonable_Argument_T<S_ptr,Insert_Policy>::clone (void)
00068 {
00069   In_Object_Argument_Cloner_T<S_ptr>::duplicate (this->x_);
00070 
00071   In_Object_Clonable_Argument_T<S_ptr,Insert_Policy>* clone_arg
00072     = new In_Object_Clonable_Argument_T<S_ptr,Insert_Policy> (this->x_);
00073   clone_arg->is_clone_ = true;
00074   return clone_arg;
00075 }
00076 
00077 // ===========================================================
00078 
00079 template<typename S_ptr,
00080          typename S_traits,
00081          class Insert_Policy>
00082 CORBA::Boolean
00083 TAO::Inout_Object_Argument_T<S_ptr,S_traits,Insert_Policy>::marshal (TAO_OutputCDR &cdr)
00084 {
00085   return cdr << this->x_;
00086 }
00087 
00088 template<typename S_ptr,
00089          typename S_traits,
00090          class Insert_Policy>
00091 CORBA::Boolean
00092 TAO::Inout_Object_Argument_T<S_ptr,S_traits,Insert_Policy>::demarshal (TAO_InputCDR & cdr)
00093 {
00094   S_traits::release (this->x_);
00095   return cdr >> this->x_;
00096 }
00097 
00098 #if TAO_HAS_INTERCEPTORS == 1
00099 
00100 template<typename S_ptr,
00101          typename S_traits,
00102          class Insert_Policy>
00103 void
00104 TAO::Inout_Object_Argument_T<S_ptr,S_traits,Insert_Policy>::interceptor_value (
00105     CORBA::Any *any) const
00106 {
00107   Insert_Policy::any_insert (any, this->x_);
00108 }
00109 
00110 #endif /* TAO_HAS_INTERCEPTORS */
00111 
00112 // ==============================================================
00113 
00114 template<typename S_ptr,
00115          typename S_out,
00116          class Insert_Policy>
00117 CORBA::Boolean
00118 TAO::Out_Object_Argument_T<S_ptr,S_out,Insert_Policy>::demarshal (TAO_InputCDR & cdr)
00119 {
00120   return cdr >> this->x_;
00121 }
00122 
00123 #if TAO_HAS_INTERCEPTORS == 1
00124 
00125 template<typename S_ptr,
00126          typename S_out,
00127          class Insert_Policy>
00128 void
00129 TAO::Out_Object_Argument_T<S_ptr,S_out,Insert_Policy>::interceptor_value (
00130     CORBA::Any *any) const
00131 {
00132   Insert_Policy::any_insert (any, this->x_);
00133 }
00134 
00135 #endif /* TAO_HAS_INTERCEPTORS */
00136 
00137 // ============================================================
00138 
00139 template<typename S_ptr,
00140          typename S_var,
00141          class Insert_Policy>
00142 CORBA::Boolean
00143 TAO::Ret_Object_Argument_T<S_ptr,S_var,Insert_Policy>::demarshal (TAO_InputCDR & cdr)
00144 {
00145   return cdr >> this->x_.out ();
00146 }
00147 
00148 #if TAO_HAS_INTERCEPTORS == 1
00149 
00150 template<typename S_ptr,
00151          typename S_var,
00152          class Insert_Policy>
00153 void
00154 TAO::Ret_Object_Argument_T<S_ptr,S_var,Insert_Policy>::interceptor_value (
00155     CORBA::Any *any) const
00156 {
00157   Insert_Policy::any_insert (any, this->x_.in ());
00158 }
00159 
00160 #endif /* TAO_HAS_INTERCEPTORS */
00161 
00162 TAO_END_VERSIONED_NAMESPACE_DECL
00163 
00164 #endif /* TAO_OBJECT_ARGUMENT_T_CPP */

Generated on Tue Feb 2 17:37:52 2010 for TAO by  doxygen 1.4.7