00001 // -*- C++ -*- 00002 // 00003 // $Id: Principal.inl 73791 2006-07-27 20:54:56Z wotte $ 00004 00005 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00006 00007 ACE_INLINE 00008 CORBA::Boolean 00009 CORBA::is_nil (CORBA::Principal_ptr principal) 00010 { 00011 return principal == 0; 00012 } 00013 00014 ACE_INLINE 00015 unsigned long 00016 CORBA::Principal::_decr_refcnt (void) 00017 { 00018 unsigned long new_count = --this->refcount_; 00019 00020 if (new_count == 0) 00021 delete this; 00022 00023 return new_count; 00024 } 00025 00026 ACE_INLINE 00027 void 00028 CORBA::release (CORBA::Principal_ptr principal) 00029 { 00030 if (principal) 00031 { 00032 principal->_decr_refcnt (); 00033 } 00034 } 00035 00036 ACE_INLINE 00037 unsigned long 00038 CORBA::Principal::_incr_refcnt (void) 00039 { 00040 return ++this->refcount_; 00041 } 00042 00043 00044 ACE_INLINE 00045 CORBA::Principal * 00046 CORBA::Principal::_duplicate (CORBA::Principal * x) 00047 { 00048 if (x != 0) 00049 { 00050 x->_incr_refcnt (); 00051 } 00052 00053 return x; 00054 } 00055 00056 00057 ACE_INLINE 00058 CORBA::Principal * 00059 CORBA::Principal::_nil (void) 00060 { 00061 return 0; 00062 } 00063 00064 TAO_END_VERSIONED_NAMESPACE_DECL