diff options
author | smcqueen <smcqueen@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-02-21 17:59:46 +0000 |
---|---|---|
committer | smcqueen <smcqueen@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-02-21 17:59:46 +0000 |
commit | ddad8b266c9cb2c09a5c673d487cabd41818ebe4 (patch) | |
tree | 0f9736a0c0279eec8d9174520e4f454b54b64ac2 /TAO/tao/Stub.h | |
parent | e83a3b7864c1396dd71fdb00a11de6d9536b55f1 (diff) | |
download | ATCD-ddad8b266c9cb2c09a5c673d487cabd41818ebe4.tar.gz |
ChangeLogTag: Tue Feb 21 17:48:24 UTC 2006 Simon McQueen <sm@prismtech.com>
Diffstat (limited to 'TAO/tao/Stub.h')
-rw-r--r-- | TAO/tao/Stub.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/TAO/tao/Stub.h b/TAO/tao/Stub.h index a3a2ce5fc9d..f3ea3dac924 100644 --- a/TAO/tao/Stub.h +++ b/TAO/tao/Stub.h @@ -36,12 +36,14 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL // Forward declarations. +class TAO_Abstract_ServantBase; class TAO_Policy_Set; class TAO_Profile; namespace TAO { class ObjectKey; + class Object_Proxy_Broker; class Transport_Queueing_Strategy; } @@ -200,6 +202,12 @@ public: /// Accessor. TAO_ORB_Core* orb_core (void) const; + /// Is this stub collocated with the servant? + CORBA::Boolean is_collocated (void) const; + + /// Mutator to mark this stub as being collocated with the servant. + void is_collocated (CORBA::Boolean); + /// This returns a duplicated ORB pointer. CORBA::ORB_ptr servant_orb_ptr (void); @@ -214,6 +222,22 @@ public: */ void servant_orb (CORBA::ORB_ptr orb); + /// Mutator for setting the servant in collocated cases. + void collocated_servant (TAO_Abstract_ServantBase* servant); + + /// Accessor for the servant reference in collocated cases. + TAO_Abstract_ServantBase* collocated_servant (void) const; + + /// Mutator for setting the object proxy broker pointer. + /// CORBA::Objects using this stub will use this for standard calls + /// like is_a; get_interface; etc... + void object_proxy_broker (TAO::Object_Proxy_Broker *proxy_broker); + + /// Accessor for getting the object proxy broker pointer. + /// CORBA::Objects using this stub use this for standard calls + /// like is_a; get_interface; etc... + TAO::Object_Proxy_Broker *object_proxy_broker (void) const; + /** * Create the IOP::IOR info. We will create the info at most once. * Get the index of the profile we are using to make the invocation. @@ -302,6 +326,10 @@ protected: */ CORBA::ORB_var orb_; + /// Flag that indicates that this stub is collocated (and that it + /// belongs to an ORB for which collocation optimisation is active). + CORBA::Boolean is_collocated_; + /** * If this stub refers to a collocated object then we need to hold on to * the servant's ORB (which may be different from the client ORB) so that, @@ -311,6 +339,18 @@ protected: */ CORBA::ORB_var servant_orb_; + /// Servant pointer. It is 0 except for collocated objects. + TAO_Abstract_ServantBase *collocated_servant_; + + /// Pointer to the Proxy Broker + /** + * This cached pointer instance takes care of routing the call for + * standard calls in CORBA::Object like _is_a (), _get_component + * () etc. + */ + TAO::Object_Proxy_Broker *object_proxy_broker_; + + /// Ordered list of profiles for this object. TAO_MProfile base_profiles_; |