summaryrefslogtreecommitdiff
path: root/TAO/tao/Stub.h
diff options
context:
space:
mode:
authorsmcqueen <smcqueen@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-02-21 17:59:46 +0000
committersmcqueen <smcqueen@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-02-21 17:59:46 +0000
commitddad8b266c9cb2c09a5c673d487cabd41818ebe4 (patch)
tree0f9736a0c0279eec8d9174520e4f454b54b64ac2 /TAO/tao/Stub.h
parente83a3b7864c1396dd71fdb00a11de6d9536b55f1 (diff)
downloadATCD-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.h40
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_;