diff options
-rw-r--r-- | ChangeLog-98a | 6 | ||||
-rw-r--r-- | TAO/ChangeLog-98c | 11 | ||||
-rw-r--r-- | TAO/tao/orbobj.cpp | 69 | ||||
-rw-r--r-- | TAO/tao/orbobj.h | 25 | ||||
-rw-r--r-- | TAO/tao/poa.cpp | 2 | ||||
-rw-r--r-- | ace/Select_Reactor.cpp | 6 |
6 files changed, 27 insertions, 92 deletions
diff --git a/ChangeLog-98a b/ChangeLog-98a index 35f28d2e22b..afafdaaf92d 100644 --- a/ChangeLog-98a +++ b/ChangeLog-98a @@ -1,3 +1,9 @@ +Fri Dec 5 12:15:49 1997 Chris Cleeland <cleeland@cs.wustl.edu> + + * ace/Select_Reactor.cpp: Made error messages on open failure more + verbose. Having these in place straightaway would have helped + track down some problems at Boeing much more effectively. + Fri Dec 5 11:15:17 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu> * ace/Log_Msg.h (callers.): Added documentation for %I and %D diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c index fb95e6fabdd..e1d4b0f8ac1 100644 --- a/TAO/ChangeLog-98c +++ b/TAO/ChangeLog-98c @@ -1,3 +1,14 @@ +Fri Dec 5 11:42:25 1997 Chris Cleeland <cleeland@cs.wustl.edu> + + * tao/object.h: Minor corrections to header comments. + + * tao/{orb_core,orbobj}.{h,cpp}: Moved server_factory and + client_factory ptr storage from CORBA_ORB to TAO_ORB_Core. It + really didn't belong there in the first place. + + * tao/poa.cpp: CTOR now fetches server factory ptr from the + TAO_ORB_Core rather than from the ORB. + Thu Dec 4 18:20:55 1997 Chris Gill <cdgill@cs.wustl.edu> * TAO_IDL/tao_idl.dsp: Changed hard coded path for cl.exe to CPP_PATH diff --git a/TAO/tao/orbobj.cpp b/TAO/tao/orbobj.cpp index 75fba5d214a..fdf709b9f96 100644 --- a/TAO/tao/orbobj.cpp +++ b/TAO/tao/orbobj.cpp @@ -31,10 +31,6 @@ DEFINE_GUID (IID_STUB_Object, CORBA_ORB::CORBA_ORB (void) : refcount_ (1), open_called_(CORBA::B_FALSE), - client_factory_ (0), - client_factory_from_service_config_ (CORBA::B_FALSE), - server_factory_ (0), - server_factory_from_service_config_ (CORBA::B_FALSE), should_shutdown_(CORBA::B_FALSE), name_service_ (CORBA_Object::_nil ()), schedule_service_ (CORBA_Object::_nil ()), @@ -46,12 +42,6 @@ CORBA_ORB::~CORBA_ORB (void) { TAO_ORB_Core_instance ()->fini (); - if (!this->client_factory_from_service_config_) - delete client_factory_; - - if (!this->server_factory_from_service_config_) - delete server_factory_; - // This assertion isn't valid because our ORB is a singleton // assert (refcount_ == 0); } @@ -65,10 +55,10 @@ CORBA_ORB::open (void) this->open_called_ = CORBA::B_TRUE; - TAO_Server_Strategy_Factory *f = this->server_factory (); + TAO_ORB_Core *ocp = TAO_ORB_Core_instance (); + TAO_Server_Strategy_Factory *f = ocp->server_factory (); // Initialize the endpoint ... or try! - TAO_ORB_Core *ocp = TAO_ORB_Core_instance (); if (ocp->acceptor ()->open (ocp->orb_params ()->addr (), ocp->reactor(), @@ -82,62 +72,11 @@ CORBA_ORB::open (void) if (ocp->acceptor ()->acceptor ().get_local_addr (ocp->addr ()) == -1) return -1; + ocp->orb_params ()->addr (ocp->addr ()); + return 0; } -TAO_Client_Strategy_Factory * -CORBA_ORB::client_factory (void) -{ - if (this->client_factory_ == 0) - { - // Look in the service repository for an instance. - this->client_factory_ = - ACE_Dynamic_Service<TAO_Client_Strategy_Factory>::instance ("Client_Strategy_Factory"); - this->client_factory_from_service_config_ = CORBA::B_TRUE; - } - - if (this->client_factory_ == 0) - { - // Still don't have one, so let's allocate the default. This - // will throw an exception if it fails on exception-throwing - // platforms. - ACE_NEW_RETURN (this->client_factory_, TAO_Default_Client_Strategy_Factory, 0); - - this->client_factory_from_service_config_ = CORBA::B_FALSE; - // @@ At this point we need to register this with the - // Service_Repository in order to get it cleaned up properly. - // But, for now we let it leak. - } - return this->client_factory_; -} - -TAO_Server_Strategy_Factory * -CORBA_ORB::server_factory (void) -{ - if (this->server_factory_ == 0) - { - // Look in the service repository for an instance. - this->server_factory_ = - ACE_Dynamic_Service<TAO_Server_Strategy_Factory>::instance ("Server_Strategy_Factory"); - - this->server_factory_from_service_config_ = CORBA::B_TRUE; - } - - if (this->server_factory_ == 0) - { - // Still don't have one, so let's allocate the default. This - // will throw an exception if it fails on exception-throwing - // platforms. - ACE_NEW_RETURN (this->server_factory_, TAO_Default_Server_Strategy_Factory, 0); - - this->server_factory_from_service_config_ = CORBA::B_FALSE; - // @@ At this point we need to register this with the - // Service_Repository in order to get it cleaned up properly. - // But, for now we let it leak. - } - return this->server_factory_; -} - ULONG __stdcall CORBA_ORB::Release (void) { diff --git a/TAO/tao/orbobj.h b/TAO/tao/orbobj.h index 888d396cc8a..263cf0aac95 100644 --- a/TAO/tao/orbobj.h +++ b/TAO/tao/orbobj.h @@ -125,12 +125,6 @@ public: // for certain well-known object references. TAO will shortly // support the "NameService" and "RootPOA" via this method. - // = TAO-specific methods. - TAO_Client_Strategy_Factory *client_factory (void); - // Returns pointer to the client factory. - TAO_Server_Strategy_Factory *server_factory (void); - // Returns pointer to the server factory. - int open (void); // Set up the ORB Core's acceptor to listen on the // previously-specified port for requests. Returns -1 on failure, @@ -151,24 +145,7 @@ private: ACE_SYNCH_MUTEX lock_; u_int refcount_; ACE_Atomic_Op<ACE_SYNCH_MUTEX, CORBA::Boolean> open_called_; - - // @@ Quite possibly everything btw ORB_CORE_STUFF should go into - // the TAO_ORB_Core class... - - // @@ Please document all these fields. - - // = ORB_CORE_STUFF - TAO_Client_Strategy_Factory *client_factory_; - // Handle to the factory for Client-side strategies. - - CORBA::Boolean client_factory_from_service_config_; - // TRUE if <client_factory_> was obtained from the Service Configurator. - - TAO_Server_Strategy_Factory *server_factory_; - // Handle to the factory for Server-side strategies. - - CORBA::Boolean server_factory_from_service_config_; - // TRUE if <server_factory_> was obtained from the Service Configurator. + // Flag which denotes that the open method was called. ACE_Atomic_Op<ACE_SYNCH_MUTEX, CORBA::Boolean> should_shutdown_; // Flag which denotes that the ORB should shut down and <run> should diff --git a/TAO/tao/poa.cpp b/TAO/tao/poa.cpp index b3de0dd5b8c..381a6185298 100644 --- a/TAO/tao/poa.cpp +++ b/TAO/tao/poa.cpp @@ -48,8 +48,8 @@ CORBA_POA::CORBA_POA (CORBA::ORB_ptr owning_orb, call_count_ (0), skeleton_ (0) { - TAO_Server_Strategy_Factory *f = orb_->server_factory (); TAO_ORB_Core* p = TAO_ORB_Core_instance (); + TAO_Server_Strategy_Factory *f = p->server_factory (); this->objtable_ = f->create_object_table (); diff --git a/ace/Select_Reactor.cpp b/ace/Select_Reactor.cpp index e344cf7c744..139d5649a1a 100644 --- a/ace/Select_Reactor.cpp +++ b/ace/Select_Reactor.cpp @@ -1025,7 +1025,8 @@ ACE_Select_Reactor::ACE_Select_Reactor (ACE_Sig_Handler *sh, ACE_TRACE ("ACE_Select_Reactor::ACE_Select_Reactor"); if (this->open (ACE_Select_Reactor::DEFAULT_SIZE, 0, sh, tq) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "open failed")); + ACE_ERROR ((LM_ERROR, "%p\n", + "ACE_Select_Reactor::open failed inside ACE_Select_Reactor::CTOR")); } // Initialize ACE_Select_Reactor. @@ -1050,7 +1051,8 @@ ACE_Select_Reactor::ACE_Select_Reactor (size_t size, ACE_TRACE ("ACE_Select_Reactor::ACE_Select_Reactor"); if (this->open (size, rs, sh, tq) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "open failed")); + ACE_ERROR ((LM_ERROR, "%p\n", + "ACE_Select_Reactor::open failed inside ACE_Select_Reactor::CTOR")); } // Close down the ACE_Select_Reactor instance, detaching any remaining |