ObserverHomeImpl::~ObserverHomeImpl() { // BEGIN USER INSERT SECTION ObserverHomeImpl::~ObserverHomeImpl cout << "ObserverHomeImpl: Destructor called" << endl; int dummy = 0; CORBA::ORB_var orb = CORBA::ORB_init (dummy, 0); orb->unregister_value_factory ("IDL:dinner/PhilosopherState:1.0"); // END USER INSERT SECTION ObserverHomeImpl::~ObserverHomeImpl }
CutleryHomeImpl::~CutleryHomeImpl() { // BEGIN USER INSERT SECTION CutleryHomeImpl::~CutleryHomeImpl cout << "CutleryHomeImpl: Destructor called" << endl; int dummy = 0; CORBA::ORB_var orb = CORBA::ORB_init (dummy, 0); orb->unregister_value_factory ("IDL:omg.org/Components/Cookie:1.0"); // END USER INSERT SECTION CutleryHomeImpl::~CutleryHomeImpl }
ValueFactoryCleaner::~ValueFactoryCleaner() { if (is_registered_) { int dummy = 0; CORBA::ORB_var orb = CORBA::ORB_init (dummy, 0); DEBUG_OUT2( "..... unregister factory for ", repid_ ); orb->unregister_value_factory( repid_.c_str() ); } DEBUG_OUT ("ValueFactoryCleaner: Destructor called"); factory_->_remove_ref(); }
int ACE_TMAIN ( int argc, ACE_TCHAR *argv[]) { try { CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); MessageFactory *mf = new MessageFactory (); CORBA::String_var id = _tc_Message->id (); ACE_DEBUG ((LM_DEBUG, "Registering factory reference\n")); orb->register_value_factory (id.in (), mf); ACE_DEBUG ((LM_DEBUG, "Unregistering factory reference\n")); orb->unregister_value_factory (id.in ()); ACE_DEBUG ((LM_DEBUG, "Value factory destructor flag: %i\n", MessageFactory::destructorInvoked_)); ACE_DEBUG ((LM_DEBUG, "Actively removing reference\n")); mf->_remove_ref (); ACE_DEBUG ((LM_DEBUG, "Value factory destructor flag: %i\n", MessageFactory::destructorInvoked_)); ACE_DEBUG ((LM_DEBUG, "Shutting down / destroying ORB\n")); orb->shutdown (true); orb->destroy (); if (MessageFactory::destructorInvoked_ == 1) { ACE_DEBUG ((LM_ERROR, "Test passed: value factory destructor was invoked as expected\n")); return 0; } else { ACE_DEBUG ((LM_ERROR, "Test failed: value factory destructor was not invoked\n")); return 1; } } catch (const CORBA::Exception& ex) { ex._tao_print_exception ("CORBA exception caught during execution"); return -1; } catch (...) { ACE_DEBUG ((LM_ERROR, "Non-CORBA exception caught during execution")); return -1; } }