diff options
Diffstat (limited to 'TAO/tao/principa.cpp')
-rw-r--r-- | TAO/tao/principa.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/TAO/tao/principa.cpp b/TAO/tao/principa.cpp new file mode 100644 index 00000000000..6d41fa07744 --- /dev/null +++ b/TAO/tao/principa.cpp @@ -0,0 +1,50 @@ +// @ (#)principa.cpp 1.4 95/11/04 +// Copyright 1994-1995 by Sun Microsystems Inc. +// All Rights Reserved +// +// ORB: Principal identifier pseudo-objref + +#include "tao/corba.h" + +void +CORBA::release (CORBA::Principal_ptr principal) +{ + if (principal) + principal->Release (); +} + +CORBA::Boolean +CORBA::is_nil (CORBA::Principal_ptr principal) +{ + return (CORBA::Boolean) (principal == 0); +} + +CORBA_Principal::CORBA_Principal (void) +{ +} + +CORBA_Principal::~CORBA_Principal (void) +{ + assert (refcount_ == 0); + + if (id.buffer) + delete [] id.buffer; +} + +CORBA::ULong +CORBA_Principal::AddRef (void) +{ + return ++refcount_; +} + +CORBA::ULong +CORBA_Principal::Release (void) +{ + { + if (--refcount_ != 0) + return refcount_; + } + + delete this; + return 0; +} |