summaryrefslogtreecommitdiff
path: root/TAO/examples/POA/Forwarding/Servant_Locator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/examples/POA/Forwarding/Servant_Locator.cpp')
-rw-r--r--TAO/examples/POA/Forwarding/Servant_Locator.cpp117
1 files changed, 0 insertions, 117 deletions
diff --git a/TAO/examples/POA/Forwarding/Servant_Locator.cpp b/TAO/examples/POA/Forwarding/Servant_Locator.cpp
deleted file mode 100644
index 74db96f4f2f..00000000000
--- a/TAO/examples/POA/Forwarding/Servant_Locator.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO/tests/POA/Forwarding/Servant_Locator
-//
-// = FILENAME
-// Servant_Locator.cpp
-//
-// = DESCRIPTION
-// Implementation of MyFooServantLocator class , used with a POA
-// having a NON_RETAIN policy.
-//
-// = AUTHOR
-// Irfan Pyarali
-// Michael Kircher
-//
-// ============================================================================
-
-#include "Servant_Locator.h"
-#include "MyFooServant.h"
-
-ACE_RCSID(Forwarding, Servant_Locator, "$Id$")
-
-MyFooServantLocator::MyFooServantLocator (CORBA::ORB_ptr orb_ptr,
- CORBA::Object_ptr forward_to_ptr)
- : orb_var_ (CORBA::ORB::_duplicate (orb_ptr)),
- counter_ (0),
- servant_ptr_ (0),
- forward_to_var_ (CORBA::Object::_duplicate (forward_to_ptr)),
- forwarding_ (0) // by default do not forward
-{
-}
-
-MyFooServantLocator::~MyFooServantLocator ()
-{
- delete servant_ptr_;
-}
-
-
-PortableServer::Servant
-MyFooServantLocator::preinvoke (const PortableServer::ObjectId &oid,
- PortableServer::POA_ptr poa_ptr,
- const char *operation,
- PortableServer::ServantLocator::Cookie &cookie,
- CORBA::Environment &env)
-{
- ACE_UNUSED_ARG (operation);
-
- if (this->forwarding_ == 0) // do not forward
- {
-
- // Convert ObjectID to String.
-
- CORBA::String_var s = PortableServer::ObjectId_to_string (oid);
-
- // If ObjectID string has a Foo Substring create and return a
- // MyFooServant.
-
- this->counter_++;
-
- if (ACE_OS::strstr (s.in (), "Foo") != 0)
- {
- if (this->servant_ptr_ == 0)
- {
- this->servant_ptr_ = new MySecondFooServant (orb_var_.in(),
- this,
- 127);
-
- // Return the servant as the cookie , used as a check when
- // postinvoke is called on this MyFooServantLocator.
- // cookie = servant;
- }
- // reuse the old servant
-
- return this->servant_ptr_;
- }
- else
- {
- CORBA::Exception *exception = new CORBA::OBJECT_NOT_EXIST (CORBA::COMPLETED_NO);
- env.exception (exception);
- return 0;
- }
- }
- else // now forward, in throwing the ForwardRequest Exception
- {
- // Throw forward exception
- env.exception (new PortableServer::ForwardRequest (this->forward_to_var_.in ()));
-
- ACE_DEBUG ((LM_DEBUG,"MyFooServantLocator::preinvoke: Threw the ForwardRequest exception.\n"));
- return 0;
- }
-}
-
-void
-MyFooServantLocator::postinvoke (const PortableServer::ObjectId &oid,
- PortableServer::POA_ptr poa,
- const char *operation,
- PortableServer::ServantLocator::Cookie cookie,
- PortableServer::Servant p_servant,
- CORBA::Environment &env)
-{
- ACE_UNUSED_ARG (oid);
- ACE_UNUSED_ARG (poa);
- ACE_UNUSED_ARG (operation);
- ACE_UNUSED_ARG (cookie);
- ACE_UNUSED_ARG (p_servant);
- ACE_UNUSED_ARG (env);
-}
-
-void
-MyFooServantLocator::forward (CORBA::Environment &env)
-{
- this->forwarding_ = 1;
-}
-