diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-09-29 07:04:44 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-09-29 07:04:44 +0000 |
commit | 5d43c167364d5c3d763cc40f3358b5bd73f681f6 (patch) | |
tree | 3d573e4895d4442fb4629645ee97e4cfd7586152 /TAO/tao/PortableServer | |
parent | 83ce7e8cbc2c42cd668e1c310fe1c57aab32c5da (diff) | |
download | ATCD-5d43c167364d5c3d763cc40f3358b5bd73f681f6.tar.gz |
ChangeLogTag: Fri Sep 29 01:41:05 2000 Irfan Pyarali <irfan@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/PortableServer')
-rw-r--r-- | TAO/tao/PortableServer/Makefile | 1 | ||||
-rw-r--r-- | TAO/tao/PortableServer/Object_Adapter.h | 2 | ||||
-rw-r--r-- | TAO/tao/PortableServer/POA.h | 8 | ||||
-rw-r--r-- | TAO/tao/PortableServer/PortableServer.h | 2 | ||||
-rw-r--r-- | TAO/tao/PortableServer/PortableServer.pidl | 17 | ||||
-rw-r--r-- | TAO/tao/PortableServer/PortableServerC.cpp | 12 | ||||
-rw-r--r-- | TAO/tao/PortableServer/RTPortableServer.pidl | 65 | ||||
-rw-r--r-- | TAO/tao/PortableServer/RTPortableServerC.cpp | 117 | ||||
-rw-r--r-- | TAO/tao/PortableServer/RTPortableServerC.h | 240 | ||||
-rw-r--r-- | TAO/tao/PortableServer/RTPortableServerC.i | 191 | ||||
-rw-r--r-- | TAO/tao/PortableServer/TAO_PortableServer.dsp | 12 |
11 files changed, 657 insertions, 10 deletions
diff --git a/TAO/tao/PortableServer/Makefile b/TAO/tao/PortableServer/Makefile index a0a45a21b15..e661d761ffc 100644 --- a/TAO/tao/PortableServer/Makefile +++ b/TAO/tao/PortableServer/Makefile @@ -24,6 +24,7 @@ include $(TAO_ROOT)/rules.tao.GNU CPP_SRCS += \ PortableServer \ PortableServerC \ + RTPortableServerC \ POA \ Default_Acceptor_Filter \ Object_Adapter \ diff --git a/TAO/tao/PortableServer/Object_Adapter.h b/TAO/tao/PortableServer/Object_Adapter.h index f10f4ea8495..8326a088a02 100644 --- a/TAO/tao/PortableServer/Object_Adapter.h +++ b/TAO/tao/PortableServer/Object_Adapter.h @@ -27,7 +27,7 @@ #include "poa_macros.h" // Stubs -#include "PortableServerC.h" +#include "RTPortableServerC.h" // Servant #include "Servant_Base.h" diff --git a/TAO/tao/PortableServer/POA.h b/TAO/tao/PortableServer/POA.h index d800b2d2151..dfce44f0d91 100644 --- a/TAO/tao/PortableServer/POA.h +++ b/TAO/tao/PortableServer/POA.h @@ -393,8 +393,14 @@ protected: // Forward Declaration class ServerObject_i; +#if (TAO_HAS_RT_CORBA == 1) + typedef RTPortableServer::POA TAO_POA_Base; +#else + typedef PortableServer::POA TAO_POA_Base; +#endif /* TAO_HAS_RT_CORBA == 1 */ + class TAO_PortableServer_Export TAO_POA : - public PortableServer::POA, + public TAO_POA_Base, public TAO_Local_RefCounted_Object { public: diff --git a/TAO/tao/PortableServer/PortableServer.h b/TAO/tao/PortableServer/PortableServer.h index 68e8cea17ab..bf926cd9de0 100644 --- a/TAO/tao/PortableServer/PortableServer.h +++ b/TAO/tao/PortableServer/PortableServer.h @@ -48,7 +48,7 @@ TAO_Requires_POA_Initializer = TAO_POA_Initializer::init (); #endif /* ACE_HAS_BROKEN_STATIC_CONSTRUCTORS */ #define TAO_PORTABLESERVER_SAFE_INCLUDE -#include "PortableServerC.h" +#include "RTPortableServerC.h" #undef TAO_PORTABLESERVER_SAFE_INCLUDE #include "ace/post.h" diff --git a/TAO/tao/PortableServer/PortableServer.pidl b/TAO/tao/PortableServer/PortableServer.pidl index 0075c2c9c56..ec382f8c29c 100644 --- a/TAO/tao/PortableServer/PortableServer.pidl +++ b/TAO/tao/PortableServer/PortableServer.pidl @@ -23,18 +23,21 @@ // -Wb,post_include="ace/post.h" \ // PortableServer.pidl // -// After the file is generated a patch must be applied. The patch: +// After the file is generated a patch from the diffs directory must +// be applied. The patch: // // - Disables parts of the code under certain configurations. +// // - Eliminates cycles in the include dependencies. +// // - Removes the extra environment option for (a) incarnate (b) -// etherealize (c) preinvoke and (d) postinvoke -// - Adds non-idl components of PortableServer to the namespace. -// This includes (a) Servant (b) ServantBase (c) RefCountServantBase -// (d) Cookie (e) ObjectId_to_string (f) string_to_ObjectId (g) -// ObjectId_to_wstring (h) wstring_to_ObjectId (i) ServantBase_var -// (j) DynamicImplementation (k) LocalServantBase +// etherealize (c) preinvoke and (d) postinvoke // +// - Adds non-idl components of PortableServer to the namespace. +// This includes (a) Servant (b) ServantBase (c) RefCountServantBase +// (d) Cookie (e) ObjectId_to_string (f) string_to_ObjectId (g) +// ObjectId_to_wstring (h) wstring_to_ObjectId (i) ServantBase_var +// (j) DynamicImplementation (k) LocalServantBase // // ================================================================ diff --git a/TAO/tao/PortableServer/PortableServerC.cpp b/TAO/tao/PortableServer/PortableServerC.cpp index 3cd63f14acb..b46bc12e0ff 100644 --- a/TAO/tao/PortableServer/PortableServerC.cpp +++ b/TAO/tao/PortableServer/PortableServerC.cpp @@ -1096,6 +1096,7 @@ const char* PortableServer::POAManager::_interface_repository_id (void) const // default constructor PortableServer::POAManager::AdapterInactive::AdapterInactive (void) + : CORBA_UserException ("IDL:PortableServer/POAManager/AdapterInactive:1.0") { } @@ -1506,6 +1507,7 @@ PortableServer::POA::_duplicate (POA_ptr obj) // default constructor PortableServer::POA::AdapterAlreadyExists::AdapterAlreadyExists (void) + : CORBA_UserException ("IDL:PortableServer/POA/AdapterAlreadyExists:1.0") { } @@ -1571,6 +1573,7 @@ CORBA::Exception *PortableServer::POA::AdapterAlreadyExists::_alloc (void) // default constructor PortableServer::POA::AdapterNonExistent::AdapterNonExistent (void) + : CORBA_UserException ("IDL:PortableServer/POA/AdapterNonExistent:1.0") { } @@ -1636,6 +1639,7 @@ CORBA::Exception *PortableServer::POA::AdapterNonExistent::_alloc (void) // default constructor PortableServer::POA::InvalidPolicy::InvalidPolicy (void) + : CORBA_UserException ("IDL:PortableServer/POA/InvalidPolicy:1.0") { } @@ -1712,6 +1716,7 @@ PortableServer::POA::InvalidPolicy::InvalidPolicy ( // default constructor PortableServer::POA::NoServant::NoServant (void) + : CORBA_UserException ("IDL:PortableServer/POA/NoServant:1.0") { } @@ -1779,6 +1784,7 @@ CORBA::Exception *PortableServer::POA::NoServant::_alloc (void) // default constructor PortableServer::POA::ObjectAlreadyActive::ObjectAlreadyActive (void) + : CORBA_UserException ("IDL:PortableServer/POA/ObjectAlreadyActive:1.0") { } @@ -1844,6 +1850,7 @@ CORBA::Exception *PortableServer::POA::ObjectAlreadyActive::_alloc (void) // default constructor PortableServer::POA::ObjectNotActive::ObjectNotActive (void) + : CORBA_UserException ("IDL:PortableServer/POA/ObjectNotActive:1.0") { } @@ -1909,6 +1916,7 @@ CORBA::Exception *PortableServer::POA::ObjectNotActive::_alloc (void) // default constructor PortableServer::POA::ServantAlreadyActive::ServantAlreadyActive (void) + : CORBA_UserException ("IDL:PortableServer/POA/ServantAlreadyActive:1.0") { } @@ -1974,6 +1982,7 @@ CORBA::Exception *PortableServer::POA::ServantAlreadyActive::_alloc (void) // default constructor PortableServer::POA::ServantNotActive::ServantNotActive (void) + : CORBA_UserException ("IDL:PortableServer/POA/ServantNotActive:1.0") { } @@ -2039,6 +2048,7 @@ CORBA::Exception *PortableServer::POA::ServantNotActive::_alloc (void) // default constructor PortableServer::POA::WrongAdapter::WrongAdapter (void) + : CORBA_UserException ("IDL:PortableServer/POA/WrongAdapter:1.0") { } @@ -2104,6 +2114,7 @@ CORBA::Exception *PortableServer::POA::WrongAdapter::_alloc (void) // default constructor PortableServer::POA::WrongPolicy::WrongPolicy (void) + : CORBA_UserException ("IDL:PortableServer/POA/WrongPolicy:1.0") { } @@ -2237,6 +2248,7 @@ PortableServer::Current::_duplicate (Current_ptr obj) // default constructor PortableServer::Current::NoContext::NoContext (void) + : CORBA_UserException ("IDL:PortableServer/Current/NoContext:1.0") { } diff --git a/TAO/tao/PortableServer/RTPortableServer.pidl b/TAO/tao/PortableServer/RTPortableServer.pidl new file mode 100644 index 00000000000..6636df063b8 --- /dev/null +++ b/TAO/tao/PortableServer/RTPortableServer.pidl @@ -0,0 +1,65 @@ +// +// $Id$ +// +// ================================================================ +// +// = LIBRARY +// TAO +// +// = FILENAME +// RTPortableServer.pidl +// +// = DESCRIPTION +// +// This file was used to generate the code in RTPortableServerC.{h,i,cpp} +// +// The command used to generate code from this file is: +// +// tao_idl.exe \ +// -Ge 1 \ +// -Wb,export_macro=TAO_Export \ +// -Wb,export_include="tao/corbafwd.h" \ +// -Wb,pre_include="ace/pre.h" \ +// -Wb,post_include="ace/post.h" \ +// RTPortableServer.pidl +// +// After the file is generated a patch from the diffs directory must +// be applied. The patch: +// +// ================================================================ + +#ifndef _RT_PORTABLE_SERVER_IDL_ +#define _RT_PORTABLE_SERVER_IDL_ + +#include <PortableServer.pidl> +#include <RTCORBA.pidl> + +#pragma prefix "omg.org" + +module RTPortableServer +{ + local interface POA : PortableServer::POA + { + Object create_reference_with_priority (in CORBA::RepositoryId intf, + in RTCORBA::Priority priority) + raises (WrongPolicy); + + Object create_reference_with_id_and_priority (in PortableServer::ObjectId oid, + in CORBA::RepositoryId intf, + in RTCORBA::Priority priority) + raises (WrongPolicy); + + PortableServer::ObjectId activate_object_with_priority (in PortableServer::Servant p_servant, + in RTCORBA::Priority priority) + raises (ServantAlreadyActive, WrongPolicy); + + void activate_object_with_id_and_priority (in PortableServer::ObjectId oid, + in PortableServer::Servant p_servant, + in RTCORBA::Priority priority) + raises ( ServantAlreadyActive, ObjectAlreadyActive, WrongPolicy ); + }; +}; + +#pragma prefix "" + +#endif /* _RT_PORTABLE_SERVER_IDL_ */ diff --git a/TAO/tao/PortableServer/RTPortableServerC.cpp b/TAO/tao/PortableServer/RTPortableServerC.cpp new file mode 100644 index 00000000000..45f0aa01810 --- /dev/null +++ b/TAO/tao/PortableServer/RTPortableServerC.cpp @@ -0,0 +1,117 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +#include "RTPortableServerC.h" + +#if (TAO_HAS_RT_CORBA == 1) + +#if !defined (__ACE_INLINE__) +#include "RTPortableServerC.i" +#endif /* !defined INLINE */ + + +// default constructor +RTPortableServer::POA::POA (void) +{} + +// destructor +RTPortableServer::POA::~POA (void) +{} + +RTPortableServer::POA_ptr RTPortableServer::POA::_narrow ( + CORBA::Object_ptr obj, + CORBA::Environment &ACE_TRY_ENV + ) +{ + return POA::_unchecked_narrow (obj, ACE_TRY_ENV); +} + +RTPortableServer::POA_ptr RTPortableServer::POA::_unchecked_narrow ( + CORBA::Object_ptr obj, + CORBA::Environment & + ) +{ + if (CORBA::is_nil (obj)) + return POA::_nil (); + return + ACE_reinterpret_cast + ( + POA_ptr, + obj->_tao_QueryInterface + ( + ACE_reinterpret_cast + ( + ptr_arith_t, + &POA::_narrow + ) + ) + ); +} + +RTPortableServer::POA_ptr +RTPortableServer::POA::_duplicate (POA_ptr obj) +{ + if (!CORBA::is_nil (obj)) + obj->_add_ref (); + return obj; +} + +void *RTPortableServer::POA::_tao_QueryInterface (ptr_arith_t type) +{ + void *retv = 0; + if (type == ACE_reinterpret_cast + (ptr_arith_t, + &ACE_NESTED_CLASS (::RTPortableServer, POA)::_narrow)) + retv = ACE_reinterpret_cast (void*, this); + else if (type == ACE_reinterpret_cast + (ptr_arith_t, + &::PortableServer::POA::_narrow)) + retv = ACE_reinterpret_cast + ( + void *, + ACE_static_cast + ( + PortableServer::POA_ptr, + this + ) + ); + else if (type == ACE_reinterpret_cast (ptr_arith_t, &CORBA::Object::_narrow)) + retv = ACE_reinterpret_cast (void *, + ACE_static_cast (CORBA::Object_ptr, this)); + + if (retv) + this->_add_ref (); + return retv; +} + +const char* RTPortableServer::POA::_interface_repository_id (void) const +{ + return "IDL:omg.org/RTPortableServer/POA:1.0"; +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \ + defined (ACE_HAS_GNU_REPO) + template class TAO_Object_Manager<RTPortableServer::POA,RTPortableServer::POA_var>; + #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + # pragma instantiate TAO_Object_Manager<RTPortableServer::POA,RTPortableServer::POA_var> +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ + +#endif /* TAO_HAS_RT_CORBA == 1 */ diff --git a/TAO/tao/PortableServer/RTPortableServerC.h b/TAO/tao/PortableServer/RTPortableServerC.h new file mode 100644 index 00000000000..dac9e25c7b3 --- /dev/null +++ b/TAO/tao/PortableServer/RTPortableServerC.h @@ -0,0 +1,240 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +#ifndef _TAO_IDL_RTPORTABLESERVERC_H_ +#define _TAO_IDL_RTPORTABLESERVERC_H_ + +#include "ace/pre.h" +#include "PortableServerC.h" + +#if (TAO_HAS_RT_CORBA == 1) + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/RTCORBAC.h" + +#if defined (TAO_EXPORT_MACRO) +#undef TAO_EXPORT_MACRO +#endif +#define TAO_EXPORT_MACRO TAO_PortableServer_Export + +#if defined (TAO_EXPORT_NESTED_CLASSES) +# if defined (TAO_EXPORT_NESTED_MACRO) +# undef TAO_EXPORT_NESTED_MACRO +# endif /* defined (TAO_EXPORT_NESTED_MACRO) */ +# define TAO_EXPORT_NESTED_MACRO TAO_PortableServer_Export +#endif /* TAO_EXPORT_NESTED_CLASSES */ + +#if defined(_MSC_VER) +#if (_MSC_VER >= 1200) +#pragma warning(push) +#endif /* _MSC_VER >= 1200 */ +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +TAO_NAMESPACE RTPortableServer +{ + +#if !defined (_RTPORTABLESERVER_POA___PTR_CH_) +#define _RTPORTABLESERVER_POA___PTR_CH_ + + class POA; + typedef POA *POA_ptr; + +#endif /* end #if !defined */ + + +#if !defined (_RTPORTABLESERVER_POA___VAR_CH_) +#define _RTPORTABLESERVER_POA___VAR_CH_ + + class TAO_PortableServer_Export POA_var : public TAO_Base_var + { + public: + POA_var (void); // default constructor + POA_var (POA_ptr p) : ptr_ (p) {} + POA_var (const POA_var &); // copy constructor + ~POA_var (void); // destructor + + POA_var &operator= (POA_ptr); + POA_var &operator= (const POA_var &); + POA_ptr operator-> (void) const; + + operator const POA_ptr &() const; + operator POA_ptr &(); + // in, inout, out, _retn + POA_ptr in (void) const; + POA_ptr &inout (void); + POA_ptr &out (void); + POA_ptr _retn (void); + POA_ptr ptr (void) const; + + private: + POA_ptr ptr_; + // Unimplemented - prevents widening assignment. + POA_var (const TAO_Base_var &rhs); + POA_var &operator= (const TAO_Base_var &rhs); + }; + + +#endif /* end #if !defined */ + + +#if !defined (_RTPORTABLESERVER_POA___OUT_CH_) +#define _RTPORTABLESERVER_POA___OUT_CH_ + + class TAO_PortableServer_Export POA_out + { + public: + POA_out (POA_ptr &); + POA_out (POA_var &); + POA_out (const POA_out &); + POA_out &operator= (const POA_out &); + POA_out &operator= (const POA_var &); + POA_out &operator= (POA_ptr); + operator POA_ptr &(); + POA_ptr &ptr (void); + POA_ptr operator-> (void); + + private: + POA_ptr &ptr_; + }; + + +#endif /* end #if !defined */ + + +#if !defined (_RTPORTABLESERVER_POA_CH_) +#define _RTPORTABLESERVER_POA_CH_ + +class TAO_PortableServer_Export POA: public PortableServer::POA + { + public: + #if !defined(__GNUC__) || !defined (ACE_HAS_GNUG_PRE_2_8) + typedef POA_ptr _ptr_type; + typedef POA_var _var_type; + #endif /* ! __GNUC__ || g++ >= 2.8 */ + + // the static operations + static POA_ptr _duplicate (POA_ptr obj); + static POA_ptr _narrow ( + CORBA::Object_ptr obj, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + static POA_ptr _unchecked_narrow ( + CORBA::Object_ptr obj, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + static POA_ptr _nil (void) + { + return (POA_ptr)0; + } + + virtual CORBA::Object_ptr create_reference_with_priority ( + const char * intf, + RTCORBA::Priority priority, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + PortableServer::POA::WrongPolicy + )) = 0; + + virtual CORBA::Object_ptr create_reference_with_id_and_priority ( + const PortableServer::ObjectId & oid, + const char * intf, + RTCORBA::Priority priority, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + PortableServer::POA::WrongPolicy + )) = 0; + + virtual PortableServer::ObjectId * activate_object_with_priority ( + PortableServer::Servant p_servant, + RTCORBA::Priority priority, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + PortableServer::POA::ServantAlreadyActive, + PortableServer::POA::WrongPolicy + )) = 0; + + virtual void activate_object_with_id_and_priority ( + const PortableServer::ObjectId & oid, + PortableServer::Servant p_servant, + RTCORBA::Priority priority, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + PortableServer::POA::ServantAlreadyActive, + PortableServer::POA::ObjectAlreadyActive, + PortableServer::POA::WrongPolicy + )) = 0; + + virtual void *_tao_QueryInterface (ptr_arith_t type); + + virtual const char* _interface_repository_id (void) const; + + protected: + POA (void); + virtual ~POA (void); + private: + POA (const POA &); + void operator= (const POA &); + }; + + +#endif /* end #if !defined */ + + +} +TAO_NAMESPACE_CLOSE // module RTPortableServer + + +#ifndef __ACE_INLINE__ + + +#endif /* __ACE_INLINE__ */ + + +#if defined (__ACE_INLINE__) +#include "RTPortableServerC.i" +#endif /* defined INLINE */ + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#endif /* TAO_HAS_RT_CORBA */ + +#include "ace/post.h" +#endif /* ifndef */ diff --git a/TAO/tao/PortableServer/RTPortableServerC.i b/TAO/tao/PortableServer/RTPortableServerC.i new file mode 100644 index 00000000000..c649fb42cf0 --- /dev/null +++ b/TAO/tao/PortableServer/RTPortableServerC.i @@ -0,0 +1,191 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + + +#if !defined (_RTPORTABLESERVER_POA___VAR_CI_) +#define _RTPORTABLESERVER_POA___VAR_CI_ + +// ************************************************************* +// Inline operations for class RTPortableServer::POA_var +// ************************************************************* + +ACE_INLINE +RTPortableServer::POA_var::POA_var (void) // default constructor + : ptr_ (POA::_nil ()) +{} + +ACE_INLINE ::RTPortableServer::POA_ptr +RTPortableServer::POA_var::ptr (void) const +{ + return this->ptr_; +} + +ACE_INLINE +RTPortableServer::POA_var::POA_var (const ::RTPortableServer::POA_var &p) // copy constructor + : TAO_Base_var (), + ptr_ (POA::_duplicate (p.ptr ())) +{} + +ACE_INLINE +RTPortableServer::POA_var::~POA_var (void) // destructor +{ + CORBA::release (this->ptr_); +} + +ACE_INLINE RTPortableServer::POA_var & +RTPortableServer::POA_var::operator= (POA_ptr p) +{ + CORBA::release (this->ptr_); + this->ptr_ = p; + return *this; +} + +ACE_INLINE RTPortableServer::POA_var & +RTPortableServer::POA_var::operator= (const ::RTPortableServer::POA_var &p) +{ + if (this != &p) + { + CORBA::release (this->ptr_); + this->ptr_ = ::RTPortableServer::POA::_duplicate (p.ptr ()); + } + return *this; +} + +ACE_INLINE +RTPortableServer::POA_var::operator const ::RTPortableServer::POA_ptr &() const // cast +{ + return this->ptr_; +} + +ACE_INLINE +RTPortableServer::POA_var::operator ::RTPortableServer::POA_ptr &() // cast +{ + return this->ptr_; +} + +ACE_INLINE ::RTPortableServer::POA_ptr +RTPortableServer::POA_var::operator-> (void) const +{ + return this->ptr_; +} + +ACE_INLINE ::RTPortableServer::POA_ptr +RTPortableServer::POA_var::in (void) const +{ + return this->ptr_; +} + +ACE_INLINE ::RTPortableServer::POA_ptr & +RTPortableServer::POA_var::inout (void) +{ + return this->ptr_; +} + +ACE_INLINE ::RTPortableServer::POA_ptr & +RTPortableServer::POA_var::out (void) +{ + CORBA::release (this->ptr_); + this->ptr_ = ::RTPortableServer::POA::_nil (); + return this->ptr_; +} + +ACE_INLINE ::RTPortableServer::POA_ptr +RTPortableServer::POA_var::_retn (void) +{ + // yield ownership of managed obj reference + ::RTPortableServer::POA_ptr val = this->ptr_; + this->ptr_ = ::RTPortableServer::POA::_nil (); + return val; +} + + +#endif /* end #if !defined */ + + +#if !defined (_RTPORTABLESERVER_POA___OUT_CI_) +#define _RTPORTABLESERVER_POA___OUT_CI_ + +// ************************************************************* +// Inline operations for class RTPortableServer::POA_out +// ************************************************************* + +ACE_INLINE +RTPortableServer::POA_out::POA_out (POA_ptr &p) + : ptr_ (p) +{ + this->ptr_ = ::RTPortableServer::POA::_nil (); +} + +ACE_INLINE +RTPortableServer::POA_out::POA_out (POA_var &p) // constructor from _var + : ptr_ (p.out ()) +{ + CORBA::release (this->ptr_); + this->ptr_ = ::RTPortableServer::POA::_nil (); +} + +ACE_INLINE +RTPortableServer::POA_out::POA_out (const ::RTPortableServer::POA_out &p) // copy constructor + : ptr_ (ACE_const_cast (POA_out &, p).ptr_) +{} + +ACE_INLINE ::RTPortableServer::POA_out & +RTPortableServer::POA_out::operator= (const ::RTPortableServer::POA_out &p) +{ + this->ptr_ = ACE_const_cast (POA_out&, p).ptr_; + return *this; +} + +ACE_INLINE RTPortableServer::POA_out & +RTPortableServer::POA_out::operator= (const ::RTPortableServer::POA_var &p) +{ + this->ptr_ = ::RTPortableServer::POA::_duplicate (p.ptr ()); + return *this; +} + +ACE_INLINE RTPortableServer::POA_out & +RTPortableServer::POA_out::operator= (POA_ptr p) +{ + this->ptr_ = p; + return *this; +} + +ACE_INLINE +RTPortableServer::POA_out::operator ::RTPortableServer::POA_ptr &() // cast +{ + return this->ptr_; +} + +ACE_INLINE ::RTPortableServer::POA_ptr & +RTPortableServer::POA_out::ptr (void) // ptr +{ + return this->ptr_; +} + +ACE_INLINE ::RTPortableServer::POA_ptr +RTPortableServer::POA_out::operator-> (void) +{ + return this->ptr_; +} + + +#endif /* end #if !defined */ + diff --git a/TAO/tao/PortableServer/TAO_PortableServer.dsp b/TAO/tao/PortableServer/TAO_PortableServer.dsp index e695b8d1d6d..cb547356daf 100644 --- a/TAO/tao/PortableServer/TAO_PortableServer.dsp +++ b/TAO/tao/PortableServer/TAO_PortableServer.dsp @@ -228,6 +228,10 @@ SOURCE=.\PortableServerC.cpp # End Source File
# Begin Source File
+SOURCE=.\RTPortableServerC.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\Servant_Base.cpp
# End Source File
# Begin Source File
@@ -332,6 +336,10 @@ SOURCE=.\PortableServerC.h # End Source File
# Begin Source File
+SOURCE=.\RTPortableServerC.h
+# End Source File
+# Begin Source File
+
SOURCE=.\Servant_Base.h
# End Source File
# Begin Source File
@@ -400,6 +408,10 @@ SOURCE=.\PortableServerC.i # End Source File
# Begin Source File
+SOURCE=.\RTPortableServerC.i
+# End Source File
+# Begin Source File
+
SOURCE=.\Servant_Base.i
# End Source File
# End Group
|