summaryrefslogtreecommitdiff
path: root/TAO/examples/POA/On_Demand_Loading/Servant_Locator.h
diff options
context:
space:
mode:
authorkirthika <kirthika@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-12-31 04:51:06 +0000
committerkirthika <kirthika@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-12-31 04:51:06 +0000
commit1db588ba66925ad45541bd1ad0618daf75eaa6d5 (patch)
tree332f723cb1c64f2adea02de58d1cf1ece0ba61ad /TAO/examples/POA/On_Demand_Loading/Servant_Locator.h
parentd227a36a7c2e45cf23bb1db49b1459ee3efad194 (diff)
downloadATCD-1db588ba66925ad45541bd1ad0618daf75eaa6d5.tar.gz
*** empty log message ***
Diffstat (limited to 'TAO/examples/POA/On_Demand_Loading/Servant_Locator.h')
-rw-r--r--TAO/examples/POA/On_Demand_Loading/Servant_Locator.h36
1 files changed, 27 insertions, 9 deletions
diff --git a/TAO/examples/POA/On_Demand_Loading/Servant_Locator.h b/TAO/examples/POA/On_Demand_Loading/Servant_Locator.h
index 0b903d5d791..59e4f4df73b 100644
--- a/TAO/examples/POA/On_Demand_Loading/Servant_Locator.h
+++ b/TAO/examples/POA/On_Demand_Loading/Servant_Locator.h
@@ -31,7 +31,11 @@ class ServantLocator_i : public POA_PortableServer::ServantLocator
// NON_RETAIN policy.
//
// = DESCRIPTION
- // @@ Kirthika, please explain what this class DOES.
+ // This class defines the Servant Locator interface of the Servant
+ // Manager. It is invoked when the POA has an USE_SERVANT_MANAGER
+ // policy and a servant_retention policy of NON_RETAIN type.
+
+ // @@ *done*Kirthika, please explain what this class DOES.
public:
ServantLocator_i (CORBA::ORB_ptr orb);
// Constructor.
@@ -43,7 +47,15 @@ public:
CORBA::Environment &env);
// This method is invoked by a POA whenever it receives a request
// for MyFoo object that is not currently active.
- // @@ Kirthika, please explain briefly what THIS method does
+ // When the POA is created using the NON_RETAIN policy the Active
+ // Object Map is not maintained, in other words, an association
+ // between the ObjectId and the servant is not maintained. Hence every
+ // client request the servant has to be loaded. Note the operation
+ // argument. This argument specifies the operation to be invoked on
+ // the servant. The cookie helps in marking the servant. This marking
+ // is useful while destroying the servant.
+
+ // @@ *done*Kirthika, please explain briefly what THIS method does
// whenever it is invoked, i.e., explain the use of the
// ServantManager stuff...
@@ -54,8 +66,13 @@ public:
PortableServer::Servant the_servant,
CORBA::Environment &env);
// This method is invoked whenever a MyFooServant completes a
- // request.
- // @@ Kirthika, please explain briefly what THIS method does
+ // request. As the Servant Loactor interface is used when the POA
+ // doesnt maintain the Active Object Map, its necessary to get rid
+ // of the servant after the client request has been processed. The
+ // appropriate servant is destroyed by verifying the cookie.Again
+ // this method is invoked per client request.
+
+ // @@ *done*Kirthika, please explain briefly what THIS method does
// whenever it is invoked, i.e., explain the use of the
// ServantManager stuff...
@@ -66,12 +83,13 @@ public:
private:
ServantManager_i servant_manager_;
// The <ServantManager_i> object that provides utility methods.
- // @@ Kirthika, briefly summarize what these methods accomplish (in
- // general).
+ // The methods include obtaining the servant using an ACE_DLL
+ // object, destroying the servant and extracting the dllname and
+ // factory function from the ObjectId.
- int counter_;
- // Counter for number of invocations of this.
- // @@ Kirthika, please explain what this is needed for.
+ // @@ *done*Kirthika, briefly summarize what these methods accomplish (in
+ // general).
+
};
#endif /* SERVANT_LOCATOR_H */