summaryrefslogtreecommitdiff
path: root/TAO/tao/Objref_VarOut_T.inl
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2007-09-20 07:13:20 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2007-09-20 07:13:20 +0000
commit4737d360f196880a4806a993a7ff056bf550b7ab (patch)
treee6e8dc03304cbff54b3be478b4645509bac013fe /TAO/tao/Objref_VarOut_T.inl
parentd354df569a0c5b54406abb1b2f74a0e48d28d0a9 (diff)
downloadATCD-4737d360f196880a4806a993a7ff056bf550b7ab.tar.gz
Thu Sep 20 07:12:15 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO/tao/Objref_VarOut_T.inl')
-rw-r--r--TAO/tao/Objref_VarOut_T.inl178
1 files changed, 178 insertions, 0 deletions
diff --git a/TAO/tao/Objref_VarOut_T.inl b/TAO/tao/Objref_VarOut_T.inl
new file mode 100644
index 00000000000..4f9f172af6e
--- /dev/null
+++ b/TAO/tao/Objref_VarOut_T.inl
@@ -0,0 +1,178 @@
+// -*- C++ -*-
+//
+// $Id$
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE
+template <typename T>
+TAO_Objref_Var_T<T>::TAO_Objref_Var_T (void)
+ : ptr_ (TAO::Objref_Traits<T>::nil ())
+{
+}
+
+ACE_INLINE
+template <typename T>
+TAO_Objref_Var_T<T>::~TAO_Objref_Var_T (void)
+{
+ TAO::Objref_Traits<T>::release (this->ptr_);
+}
+
+ACE_INLINE
+template <typename T>
+T *
+TAO_Objref_Var_T<T>::operator-> (void) const
+{
+ return this->ptr_;
+}
+
+ACE_INLINE
+template <typename T>
+TAO_Objref_Var_T<T>::operator T * const & () const
+{
+ return this->ptr_;
+}
+
+ACE_INLINE
+template <typename T>
+TAO_Objref_Var_T<T>::operator T *& ()
+{
+ return this->ptr_;
+}
+
+ACE_INLINE
+template <typename T>
+T *
+TAO_Objref_Var_T<T>::in (void) const
+{
+ return this->ptr_;
+}
+
+ACE_INLINE
+template <typename T>
+T *&
+TAO_Objref_Var_T<T>::inout (void)
+{
+ return this->ptr_;
+}
+
+ACE_INLINE
+template <typename T>
+T *&
+TAO_Objref_Var_T<T>::out (void)
+{
+ TAO::Objref_Traits<T>::release (this->ptr_);
+ this->ptr_ = TAO::Objref_Traits<T>::nil ();
+ return this->ptr_;
+}
+
+ACE_INLINE
+template <typename T>
+T *
+TAO_Objref_Var_T<T>::_retn (void)
+{
+ T * val = this->ptr_;
+ this->ptr_ = TAO::Objref_Traits<T>::nil ();
+ return val;
+}
+
+ACE_INLINE
+template <typename T>
+T *
+TAO_Objref_Var_T<T>::ptr (void) const
+{
+ return this->ptr_;
+}
+
+ACE_INLINE
+template <typename T>
+void
+TAO_Objref_Var_T<T>::free (void)
+{
+ TAO::Objref_Traits<T>::release (this->ptr_);
+}
+
+ACE_INLINE
+template <typename T>
+void
+TAO_Objref_Var_T<T>::reset (T * p)
+{
+ TAO::Objref_Traits<T>::release (this->ptr_);
+ this->ptr_ = p;
+}
+
+// ******************************************************
+
+ACE_INLINE
+template <typename T>
+TAO_Objref_Out_T<T>::TAO_Objref_Out_T (T *& p)
+ : ptr_ (p)
+{
+ this->ptr_ = TAO::Objref_Traits<T>::nil ();
+}
+
+ACE_INLINE
+template <typename T>
+TAO_Objref_Out_T<T>::TAO_Objref_Out_T (
+ TAO_Objref_Var_T<T> & p
+ )
+ : ptr_ (p.out ())
+{
+ TAO::Objref_Traits<T>::release (this->ptr_);
+ this->ptr_ = TAO::Objref_Traits<T>::nil ();
+}
+
+ACE_INLINE
+template <typename T>
+TAO_Objref_Out_T<T>::TAO_Objref_Out_T (
+ const TAO_Objref_Out_T<T> & p
+ )
+ : ptr_ (p.ptr_)
+{
+}
+
+ACE_INLINE
+template <typename T>
+TAO_Objref_Out_T<T> &
+TAO_Objref_Out_T<T>::operator= (
+ const TAO_Objref_Out_T<T> & p
+ )
+{
+ this->ptr_ = p.ptr_;
+ return *this;
+}
+
+ACE_INLINE
+template <typename T>
+TAO_Objref_Out_T<T> &
+TAO_Objref_Out_T<T>::operator= (T * p)
+{
+ this->ptr_ = p;
+ return *this;
+}
+
+ACE_INLINE
+template <typename T>
+T *&
+TAO_Objref_Out_T<T>::ptr (void)
+{
+ return this->ptr_;
+}
+
+ACE_INLINE
+template <typename T>
+TAO_Objref_Out_T<T>::operator T *& ()
+{
+ return this->ptr_;
+}
+
+ACE_INLINE
+template <typename T>
+T *
+TAO_Objref_Out_T<T>::operator-> (void)
+{
+ return this->ptr_;
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+