diff options
Diffstat (limited to 'TAO/tests/Quoter/Generic_Factory_i.cpp')
-rw-r--r-- | TAO/tests/Quoter/Generic_Factory_i.cpp | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/TAO/tests/Quoter/Generic_Factory_i.cpp b/TAO/tests/Quoter/Generic_Factory_i.cpp deleted file mode 100644 index 83b560c7e37..00000000000 --- a/TAO/tests/Quoter/Generic_Factory_i.cpp +++ /dev/null @@ -1,198 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Generic_Factory_i.cpp -// -// = DESCRIPTION -// The implementation of a LifeCycle Service GenericFactory for the -// Quoter example. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "Generic_Factory_i.h" -#include "QuoterC.h" - -ACE_RCSID(Quoter, Generic_Factory_i, "$Id$") - -// Constructor -Quoter_Generic_Factory_i::Quoter_Generic_Factory_i (void) -{ -} - -// Destructor. -Quoter_Generic_Factory_i::~Quoter_Generic_Factory_i (void) -{ -} - -CORBA::Boolean -Quoter_Generic_Factory_i::supports (const CosLifeCycle::Key &factory_key, - CORBA::Environment &_env_there) -{ - ACE_UNUSED_ARG (factory_key); - ACE_UNUSED_ARG (_env_there); - - return 0; -} - - - -CosNaming::NamingContext_ptr -Quoter_Generic_Factory_i::get_naming_context (const CosLifeCycle::Key &factory_key, - CORBA::Environment &env_here, - CORBA::Environment &_env_there) -{ - // Get a reference to the ORB. - CORBA::ORB_ptr orb_ptr = - TAO_ORB_Core_instance ()->orb (); - - // Get the Naming Service object reference. - CORBA::Object_var namingObj_var = - orb_ptr->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (namingObj_var.in ())) - ACE_ERROR ((LM_ERROR, - "(%P|%t) Unable get the Naming Service.\n")); - - // Narrow the object reference to a Naming Context. - CosNaming::NamingContext_var namingContext_var = - CosNaming::NamingContext::_narrow (namingObj_var.in (), - env_here); - - // See if there is an exception, if yes then throw the NoFactory - // exception. - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - // Get the IDL_Quoter naming context. - CosNaming::Name quoterContextName (1); // max = 1 - quoterContextName.length (1); - quoterContextName[0].id = CORBA::string_dup ("IDL_Quoter"); - - CORBA::Object_var quoterNamingObj_var = - namingContext_var->resolve (quoterContextName, env_here); - - // See if there is an exception, if yes then throw the NoFactory - // exception. - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - CosNaming::NamingContext_var quoterNamingContext_var = - CosNaming::NamingContext::_narrow (quoterNamingObj_var.in (), - env_here); - // See if there is an exception, if yes then throw the NoFactory - // exception. - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - - return CosNaming::NamingContext::_duplicate (quoterNamingContext_var.in ()); -} - - - -CORBA::Object_ptr -Quoter_Generic_Factory_i::create_object (const CosLifeCycle::Key &factory_key, - const CosLifeCycle::Criteria &the_criteria, - CORBA::Environment &_env_there) -{ - ACE_UNUSED_ARG (the_criteria); - - CORBA::Environment env_here; - - CosNaming::NamingContext_var quoterNamingContext_var = - this->get_naming_context (factory_key, - env_here, - _env_there); - - // ** now a proper reference to the quoter naming context is - // available - - // Fill in the name of the Quoter Factory. - // Take the key supplied to search for a Quoter Factory - CosNaming::Name factory_Name = (CosNaming::Name) factory_key; - - // Try to get a reference to a Quoter Factory - CORBA::Object_var quoterFactoryObject_var = - quoterNamingContext_var->resolve (factory_Name, env_here); - - // See if there is an exception, if yes then throw the NoFactory - // exception. - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - // We were able to get a reference to Quoter Factory. - - // Check if it is a valid Quoter Factory reference - if (CORBA::is_nil (quoterFactoryObject_var.in())) - { // throw a NoFactory exception - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - else - { - // Check if it is a valid Quoter Factory reference. - if (CORBA::is_nil (quoterFactoryObject_var.in ())) // throw a NoFactory exception. - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - Stock::Quoter_Factory_var factory_var = - Stock::Quoter_Factory::_narrow (quoterFactoryObject_var.in (), - env_here); - - // See if there is an exception, if yes then throw the NoFactory - // exception. - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - if (CORBA::is_nil (factory_var.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "invalid factory.\n"), - 0); - - ACE_DEBUG ((LM_DEBUG, - "Factory reference OK.\n")); - - // Now retrieve the Quoter obj ref corresponding to the key. - Stock::Quoter_var quoter_var = - factory_var->create_quoter ("test", - _env_there); - ACE_DEBUG ((LM_DEBUG, - "Quoter Created\n")); - - if (CORBA::is_nil (quoter_var.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "null quoter objref returned by factory\n"), - 0); - - ACE_DEBUG ((LM_DEBUG, - "Return a object reference to a new object.\n")); - - CORBA::Object_ptr object_ptr = - CORBA::Object::_duplicate ((CORBA::Object_ptr) quoter_var.ptr ()); - - return object_ptr; - } -} |