summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog-98a6
-rw-r--r--TAO/ChangeLog-98c11
-rw-r--r--TAO/tao/orbobj.cpp69
-rw-r--r--TAO/tao/orbobj.h25
-rw-r--r--TAO/tao/poa.cpp2
-rw-r--r--ace/Select_Reactor.cpp6
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