Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / orbsvcs / performance-tests / RTEvent / lib / Servant_var.inl
blobd8a0f9a33d2fb95ca8d42ba1c0411ddb98ab0467
1 /**
2  * @file Servant_var.inl
3  *
4  * @author Jody Hagins <jody@atdesk.com>
5  * @author Carlos O'Ryan <coryan@uci.edu>
6  */
8 #include <algorithm>
10 template<class SERVANT> ACE_INLINE SERVANT *
11 Servant_var<SERVANT>::duplicate (SERVANT *servant)
13   if (servant != 0)
14     servant->_add_ref ();
15   return servant;
18 template<class SERVANT> ACE_INLINE
19 Servant_var<SERVANT>::Servant_var (SERVANT *s)
20   : ptr_ (s)
24 template<class SERVANT> ACE_INLINE
25 Servant_var<SERVANT>::Servant_var (const Servant_var<SERVANT> &rhs)
26   : ptr_ (Servant_var<SERVANT>::duplicate (rhs.ptr_))
30 template<class SERVANT> ACE_INLINE Servant_var<SERVANT>&
31 Servant_var<SERVANT>::operator= (const Servant_var<SERVANT> &rhs)
33   Servant_var<SERVANT> tmp (rhs);
34   std::swap (this->ptr_, tmp.ptr_);
35   return *this;
38 template<class SERVANT> ACE_INLINE Servant_var<SERVANT>&
39 Servant_var<SERVANT>::operator= (SERVANT *rhs)
41   Servant_var<SERVANT> tmp (rhs);
42   std::swap (this->ptr_, tmp.ptr_);
43   return *this;
46 template<class SERVANT> ACE_INLINE SERVANT*
47 Servant_var<SERVANT>::operator-> ()
49   return this->ptr_;
52 template<class SERVANT> ACE_INLINE const SERVANT*
53 Servant_var<SERVANT>::operator-> () const
55   return this->ptr_;
58 template<class SERVANT> ACE_INLINE
59 Servant_var<SERVANT>::operator SERVANT *()
61   return this->ptr_;
64 template<class SERVANT> ACE_INLINE
65 Servant_var<SERVANT>::operator const SERVANT * () const
67   return this->ptr_;
70 template<class SERVANT> ACE_INLINE SERVANT *
71 Servant_var<SERVANT>::in () const
73   return this->ptr_;
76 template<class SERVANT> ACE_INLINE SERVANT *&
77 Servant_var<SERVANT>::out ()
79   Servant_var<SERVANT> tmp;
80   std::swap (tmp.ptr_, this->ptr_);
82   return this->ptr_;
85 template<class SERVANT> ACE_INLINE SERVANT *&
86 Servant_var<SERVANT>::inout ()
88   return this->ptr_;