#include <Servant_var.h>
Collaboration diagram for PortableServer::Servant_var< T >:
Public Types | |
typedef T | servant_type |
Public Member Functions | |
Servant_var (T *p=0) | |
Constructor. Assumes ownership of p . | |
Servant_var (Servant_var< T > const &rhs) | |
Copy constructor. Adds reference to rhs . | |
Servant_var< T > & | operator= (Servant_var< T > const &rhs) |
Assignment operator. Adds reference to rhs . | |
~Servant_var (void) | |
Servant_var< T > & | operator= (T *p) |
Assignment operator. Assumes ownership of p . | |
T const * | operator-> () const |
Smart pointer operator-> provides access to the underlying object. | |
T * | operator-> () |
Smart pointer operator-> provides access to the underlying object. | |
T const & | operator * () const |
Dereference the underlying object. | |
T & | operator * () |
Dereference the underlying object. | |
operator void const * () const | |
T * | in () const |
As an IN parameter. | |
T *& | inout () |
As an INOUT parameter. | |
T *& | out () |
As an OUT parameter. | |
T * | _retn () |
void | swap (Servant_var< T > &rhs) |
Static Public Member Functions | |
static T * | _duplicate (T *) |
Increment the reference count and return the servant. | |
Private Attributes | |
T * | ptr_ |
typedef T PortableServer::Servant_var< T >::servant_type |
ACE_INLINE PortableServer::Servant_var< T >::Servant_var | ( | T * | p = 0 |
) |
Constructor. Assumes ownership of p
.
ACE_INLINE PortableServer::Servant_var< T >::Servant_var | ( | Servant_var< T > const & | rhs | ) |
Copy constructor. Adds reference to rhs
.
PortableServer::Servant_var< T >::~Servant_var | ( | void | ) |
This destructor doesn't throw exceptions.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL T * PortableServer::Servant_var< T >::_duplicate | ( | T * | ) | [static] |
Increment the reference count and return the servant.
It is safe to pass in a null pointer, the pointer is simply returned in that case.
ACE_INLINE T * PortableServer::Servant_var< T >::_retn | ( | ) |
Return a pointer to the underlying object, and this counted reference will no longer own the object.
ACE_INLINE T * PortableServer::Servant_var< T >::in | ( | ) | const |
As an IN parameter.
ACE_INLINE T *& PortableServer::Servant_var< T >::inout | ( | ) |
As an INOUT parameter.
ACE_INLINE T & PortableServer::Servant_var< T >::operator * | ( | ) |
Dereference the underlying object.
ACE_INLINE T const & PortableServer::Servant_var< T >::operator * | ( | ) | const |
Dereference the underlying object.
ACE_INLINE PortableServer::Servant_var< T >::operator void const * | ( | ) | const |
Return a void pointer to the underlying object. This allows it to be used in conditional code and tested against 0.
ACE_INLINE T * PortableServer::Servant_var< T >::operator-> | ( | ) |
Smart pointer operator-> provides access to the underlying object.
ACE_INLINE T const * PortableServer::Servant_var< T >::operator-> | ( | ) | const |
Smart pointer operator-> provides access to the underlying object.
@ Ciju: The below member templates was commented out because: 1. gcc 2.95 doesn't support them. 2. Sun cc 5.8 member templates support is buggy (Bug Id: 6463114).
Once these have been fixed a decision can be made regards uncommenting them. My own openion is that they shouldn't be used since making implicit constructors, member templates, you could potentially get an unwanted conversion where one was unwarranted.
ACE_INLINE PortableServer::Servant_var< T > & PortableServer::Servant_var< T >::operator= | ( | T * | p | ) |
Assignment operator. Assumes ownership of p
.
ACE_INLINE PortableServer::Servant_var< T > & PortableServer::Servant_var< T >::operator= | ( | Servant_var< T > const & | rhs | ) |
Assignment operator. Adds reference to rhs
.
ACE_INLINE T *& PortableServer::Servant_var< T >::out | ( | ) |
As an OUT parameter.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE void PortableServer::Servant_var< T >::swap | ( | Servant_var< T > & | rhs | ) |
Non-throwing swap operation. Often used to implement strong exception safety.
T* PortableServer::Servant_var< T >::ptr_ [private] |