diff options
Diffstat (limited to 'trunk/TAO/docs/locate_request.html')
-rw-r--r-- | trunk/TAO/docs/locate_request.html | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/trunk/TAO/docs/locate_request.html b/trunk/TAO/docs/locate_request.html new file mode 100644 index 00000000000..5c04d652874 --- /dev/null +++ b/trunk/TAO/docs/locate_request.html @@ -0,0 +1,56 @@ +<html> + <!-- $Id$ --> + <head> + <title>Implementation of locate requests</title> + </head> + + <BODY text = "#000000" + link="#0000ff" + vlink="#cc0000" + bgcolor="#ffffff"> + + <body> + <HR> + <h1>Locate requests</h1> + <HR> + <h2>Context</h2> + The CORBA specification describes locate requests as a way to + find out if an object is available at the other end of the wire + or not without invoking an actual method on it. + This way expensive marshalling and demarshalling can be prohibited. + Locate requests are part of GIOP. + + <h2>Implementation</h2> + The main classes involved in locate requests are the Server_Connection_Handler + to do check for the object. This is done by invoking the non standard + "non_existent" method on it. If it fails an exception will be thrown, + if the exception is not the Forward_Request exception of the POA, + the object is not there. If it is this specific exception, the new + forwarded location can be extracted and returned in the locate reply. + If the call on "non_existent" succeeds, we know the object is there and + return that. + + The client part of the locate request is handled int Locate_Request_Invocation. + The response is checked on the answer. If there, we go on and invoke the + actual method on the distant object. If not there, we fail and throw the proper + exception and if we get forwarded we replace our IIOP profile acordingly. + + <h2>API</h2> + To activate the locate requests, please invoke the non standard method + "_use_locate_requests (CORBA::B_TRUE)" on your CORBA::Object or any + object which inherits form this object. This will activate the locate + request on the first call to the object. The second time and on all + following calls "no" locate request will be used any more. To switch + it on again use "_use_locate_requests (CORBA::B_TRUE)" again. + You can also switch it of by "_use_locate_requests (CORBA::B_FALSE)". + + <HR> + For more details and questions, + <p> + <address><a href="mailto:irfan1@cs.wustl.edu">Irfan Pyarali</a></address> + <p> + <address><a href="mailto:mk1@cs.wustl.edu">Michael Kircher</a></address> + <p> + </body> +</html> + |