diff options
Diffstat (limited to 'TAO/tests/POA/Identity/Identity.cpp')
-rw-r--r-- | TAO/tests/POA/Identity/Identity.cpp | 766 |
1 files changed, 0 insertions, 766 deletions
diff --git a/TAO/tests/POA/Identity/Identity.cpp b/TAO/tests/POA/Identity/Identity.cpp deleted file mode 100644 index 57913c03d45..00000000000 --- a/TAO/tests/POA/Identity/Identity.cpp +++ /dev/null @@ -1,766 +0,0 @@ -// $Id$ - -// ================================================== -// = LIBRARY -// TAO/test/POA/Identity -// -// = FILENAME -// Identity.cpp -// -// = DESCRIPTION -// This program demonstrates and tests how to move between id, -// reference, and servants. -// -// = AUTHOR -// Irfan Pyarali -// ================================================== - -#include "testS.h" - -ACE_RCSID(Identity, Identity, "$Id$") - -class test_i : public POA_test -{ -public: - - test_i (PortableServer::POA_ptr poa) - : poa_ (PortableServer::POA::_duplicate (poa)) - { - } - - PortableServer::POA_ptr _default_POA (CORBA::Environment &) - { - return PortableServer::POA::_duplicate (this->poa_.in ()); - } - -protected: - - PortableServer::POA_var poa_; -}; - -void -create_poas (PortableServer::POA_ptr root_poa, - PortableServer::LifespanPolicyValue lifespan_policy, - PortableServer::POA_out first_poa, - PortableServer::POA_out second_poa, - PortableServer::POA_out third_poa, - PortableServer::POA_out forth_poa, - CORBA::Environment &ACE_TRY_ENV) -{ - // Policies for the new POAs - CORBA::PolicyList policies (3); - policies.length (3); - - policies[0] = root_poa->create_lifespan_policy (lifespan_policy, - ACE_TRY_ENV); - ACE_CHECK; - - policies[1] = root_poa->create_id_uniqueness_policy (PortableServer::MULTIPLE_ID, - ACE_TRY_ENV); - ACE_CHECK; - - policies[2] = root_poa->create_id_assignment_policy (PortableServer::SYSTEM_ID, - ACE_TRY_ENV); - ACE_CHECK; - - // Creation of the firstPOA - ACE_CString name = "firstPOA"; - first_poa = root_poa->create_POA (name.c_str (), - PortableServer::POAManager::_nil (), - policies, - ACE_TRY_ENV); - ACE_CHECK; - - policies[1]->destroy (ACE_TRY_ENV); - ACE_CHECK; - - policies[1] = root_poa->create_id_uniqueness_policy (PortableServer::UNIQUE_ID, - ACE_TRY_ENV); - ACE_CHECK; - - // Creation of the secondPOA - name = "secondPOA"; - second_poa = root_poa->create_POA (name.c_str (), - PortableServer::POAManager::_nil (), - policies, - ACE_TRY_ENV); - ACE_CHECK; - - policies[2]->destroy (ACE_TRY_ENV); - ACE_CHECK; - - policies[2] = root_poa->create_id_assignment_policy (PortableServer::USER_ID, - ACE_TRY_ENV); - ACE_CHECK; - - // Creation of the thirdPOA - name = "thirdPOA"; - third_poa = root_poa->create_POA (name.c_str (), - PortableServer::POAManager::_nil (), - policies, - ACE_TRY_ENV); - ACE_CHECK; - - policies[1]->destroy (ACE_TRY_ENV); - ACE_CHECK; - - policies[1] = root_poa->create_id_uniqueness_policy (PortableServer::MULTIPLE_ID, - ACE_TRY_ENV); - ACE_CHECK; - - // Creation of the forthPOA - name = "forthPOA"; - forth_poa = root_poa->create_POA (name.c_str (), - PortableServer::POAManager::_nil (), - policies, - ACE_TRY_ENV); - ACE_CHECK; - - // Creation of the new POAs over, so destroy the policies - for (CORBA::ULong i = 0; - i < policies.length (); - ++i) - { - policies[i]->destroy (ACE_TRY_ENV); - ACE_CHECK; - } -} - -void -test_poas (CORBA::ORB_ptr orb, - PortableServer::POA_ptr root_poa, - PortableServer::POA_ptr first_poa, - PortableServer::POA_ptr second_poa, - PortableServer::POA_ptr third_poa, - PortableServer::POA_ptr forth_poa, - int perform_deactivation_test, - CORBA::Environment &ACE_TRY_ENV) -{ - { - test_i servant (root_poa); - - CORBA::Object_var obj = root_poa->create_reference ("IDL:test:1.0", - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::String_var string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::ObjectId_var id = root_poa->reference_to_id (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - root_poa->activate_object_with_id (id.in (), - &servant, - ACE_TRY_ENV); - ACE_CHECK; - - obj = root_poa->id_to_reference (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::Servant servant_from_reference = root_poa->reference_to_servant (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - PortableServer::Servant servant_from_id = root_poa->id_to_servant (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (servant_from_reference == servant_from_id); - ACE_ASSERT (servant_from_reference == &servant); - ACE_UNUSED_ARG (servant_from_id); - - obj = root_poa->servant_to_reference (&servant, - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - obj = servant._this (ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::ObjectId_var id_from_servant = root_poa->servant_to_id (&servant, - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (id_from_servant.in () == id.in ()); - - root_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - if (perform_deactivation_test) - { - root_poa->activate_object_with_id (id.in (), - &servant, - ACE_TRY_ENV); - ACE_CHECK; - - servant_from_reference = root_poa->reference_to_servant (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (servant_from_reference == &servant); - - root_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - } - } - - { - test_i servant (root_poa); - - PortableServer::ObjectId_var id = root_poa->activate_object (&servant, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::Object_var obj = root_poa->id_to_reference (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::String_var string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - obj = root_poa->create_reference_with_id (id.in (), - "IDL:test:1.0", - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - root_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - } - - { - test_i servant (first_poa); - - CORBA::Object_var obj = first_poa->create_reference ("IDL:test:1.0", - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::String_var string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::ObjectId_var id = first_poa->reference_to_id (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - first_poa->activate_object_with_id (id.in (), - &servant, - ACE_TRY_ENV); - ACE_CHECK; - - obj = first_poa->id_to_reference (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::Servant servant_from_reference = first_poa->reference_to_servant (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - PortableServer::Servant servant_from_id = first_poa->id_to_servant (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (servant_from_reference == servant_from_id); - ACE_ASSERT (servant_from_reference == &servant); - ACE_UNUSED_ARG (servant_from_id); - - first_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - if (perform_deactivation_test) - { - first_poa->activate_object_with_id (id.in (), - &servant, - ACE_TRY_ENV); - ACE_CHECK; - - servant_from_reference = first_poa->reference_to_servant (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (servant_from_reference == &servant); - - first_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - } - } - - { - test_i servant (first_poa); - - PortableServer::ObjectId_var id = first_poa->activate_object (&servant, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::Object_var obj = first_poa->id_to_reference (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::String_var string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - obj = first_poa->create_reference_with_id (id.in (), - "IDL:test:1.0", - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - first_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - } - - { - test_i servant (second_poa); - - CORBA::Object_var obj = second_poa->create_reference ("IDL:test:1.0", - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::String_var string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::ObjectId_var id = second_poa->reference_to_id (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - second_poa->activate_object_with_id (id.in (), - &servant, - ACE_TRY_ENV); - ACE_CHECK; - - obj = second_poa->id_to_reference (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::Servant servant_from_reference = second_poa->reference_to_servant (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - PortableServer::Servant servant_from_id = second_poa->id_to_servant (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (servant_from_reference == servant_from_id); - ACE_ASSERT (servant_from_reference == &servant); - ACE_UNUSED_ARG (servant_from_id); - - obj = second_poa->servant_to_reference (&servant, - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - obj = servant._this (ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::ObjectId_var id_from_servant = second_poa->servant_to_id (&servant, - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (id_from_servant.in () == id.in ()); - - second_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - if (perform_deactivation_test) - { - second_poa->activate_object_with_id (id.in (), - &servant, - ACE_TRY_ENV); - ACE_CHECK; - - servant_from_reference = second_poa->reference_to_servant (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (servant_from_reference == &servant); - - second_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - } - } - - { - test_i servant (second_poa); - - PortableServer::ObjectId_var id = second_poa->activate_object (&servant, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::Object_var obj = second_poa->id_to_reference (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::String_var string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - obj = second_poa->create_reference_with_id (id.in (), - "IDL:test:1.0", - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - second_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - } - - { - test_i servant (third_poa); - PortableServer::ObjectId_var id = PortableServer::string_to_ObjectId ("hello"); - - CORBA::Object_var obj = third_poa->create_reference_with_id (id.in (), - "IDL:test:1.0", - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::String_var string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::ObjectId_var id_from_reference = third_poa->reference_to_id (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - string = PortableServer::ObjectId_to_string (id_from_reference.in ()); - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - ACE_ASSERT (id_from_reference.in () == id.in ()); - - third_poa->activate_object_with_id (id.in (), - &servant, - ACE_TRY_ENV); - ACE_CHECK; - - obj = third_poa->id_to_reference (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::Servant servant_from_reference = third_poa->reference_to_servant (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - PortableServer::Servant servant_from_id = third_poa->id_to_servant (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (servant_from_reference == servant_from_id); - ACE_ASSERT (servant_from_reference == &servant); - ACE_UNUSED_ARG (servant_from_id); - - obj = third_poa->servant_to_reference (&servant, - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - obj = servant._this (ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::ObjectId_var id_from_servant = third_poa->servant_to_id (&servant, - ACE_TRY_ENV); - ACE_CHECK; - - string = PortableServer::ObjectId_to_string (id_from_servant.in ()); - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - ACE_ASSERT (id_from_servant.in () == id.in ()); - - third_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - if (perform_deactivation_test) - { - third_poa->activate_object_with_id (id.in (), - &servant, - ACE_TRY_ENV); - ACE_CHECK; - - servant_from_reference = third_poa->reference_to_servant (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (servant_from_reference == &servant); - - third_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - } - } - - { - test_i servant (forth_poa); - PortableServer::ObjectId_var id = PortableServer::string_to_ObjectId ("hello"); - - CORBA::Object_var obj = forth_poa->create_reference_with_id (id.in (), - "IDL:test:1.0", - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::String_var string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::ObjectId_var id_from_reference = forth_poa->reference_to_id (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - string = PortableServer::ObjectId_to_string (id_from_reference.in ()); - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - ACE_ASSERT (id_from_reference.in () == id.in ()); - - forth_poa->activate_object_with_id (id.in (), - &servant, - ACE_TRY_ENV); - ACE_CHECK; - - obj = forth_poa->id_to_reference (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - string = orb->object_to_string (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_DEBUG ((LM_DEBUG, "%s\n", string.in ())); - - PortableServer::Servant servant_from_reference = forth_poa->reference_to_servant (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - PortableServer::Servant servant_from_id = forth_poa->id_to_servant (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (servant_from_reference == servant_from_id); - ACE_ASSERT (servant_from_reference == &servant); - ACE_UNUSED_ARG (servant_from_id); - - forth_poa->deactivate_object (id.in ()); - - if (perform_deactivation_test) - { - forth_poa->activate_object_with_id (id.in (), - &servant, - ACE_TRY_ENV); - ACE_CHECK; - - servant_from_reference = forth_poa->reference_to_servant (obj.in (), - ACE_TRY_ENV); - ACE_CHECK; - - ACE_ASSERT (servant_from_reference == &servant); - - forth_poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; - } - } -} - -int -main (int argc, char **argv) -{ - ACE_DECLARE_NEW_CORBA_ENV; - - ACE_TRY - { - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, - ACE_TRY_ENV); - ACE_TRY_CHECK; - - CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA", - ACE_TRY_ENV); - ACE_TRY_CHECK; - - PortableServer::POA_var root_poa = PortableServer::POA::_narrow (obj.in (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - - const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters &creation_parameters - = TAO_ORB_Core_instance ()->server_factory ()->active_object_map_creation_parameters (); - - int perform_deactivation_test = creation_parameters.allow_reactivation_of_system_ids_; - - PortableServer::POA_var first_poa; - PortableServer::POA_var second_poa; - PortableServer::POA_var third_poa; - PortableServer::POA_var forth_poa; - - create_poas (root_poa.in (), - PortableServer::TRANSIENT, - first_poa.out (), - second_poa.out (), - third_poa.out (), - forth_poa.out (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - - test_poas (orb.in (), - root_poa.in (), - first_poa.in (), - second_poa.in (), - third_poa.in (), - forth_poa.in (), - perform_deactivation_test, - ACE_TRY_ENV); - ACE_TRY_CHECK; - - first_poa->destroy (1, - 1, - ACE_TRY_ENV); - ACE_TRY_CHECK; - - second_poa->destroy (1, - 1, - ACE_TRY_ENV); - ACE_TRY_CHECK; - - third_poa->destroy (1, - 1, - ACE_TRY_ENV); - ACE_TRY_CHECK; - - forth_poa->destroy (1, - 1, - ACE_TRY_ENV); - ACE_TRY_CHECK; - - create_poas (root_poa.in (), - PortableServer::PERSISTENT, - first_poa.out (), - second_poa.out (), - third_poa.out (), - forth_poa.out (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - - test_poas (orb.in (), - root_poa.in (), - first_poa.in (), - second_poa.in (), - third_poa.in (), - forth_poa.in (), - perform_deactivation_test, - ACE_TRY_ENV); - ACE_TRY_CHECK; - - root_poa->destroy (1, - 1, - ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Exception!"); - return -1; - } - ACE_ENDTRY; - ACE_CHECK_RETURN (-1); - - return 0; -} |