summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Cleeland <chris.cleeland@gmail.com>1997-10-31 09:19:13 +0000
committerChris Cleeland <chris.cleeland@gmail.com>1997-10-31 09:19:13 +0000
commit14f32a552d02c980cebaa2c653bae5f1ba64698a (patch)
tree78b83ec9903ec9376224f4a9fe35c7a452ffde08
parentbb87e60f063ed4dfa48a234242067e74d3233301 (diff)
downloadATCD-14f32a552d02c980cebaa2c653bae5f1ba64698a.tar.gz
First round of TAO_HAS_TSS_ORBCORE elimination.
-rw-r--r--TAO/ChangeLog-98c31
-rw-r--r--TAO/tao/default_server.cpp9
-rw-r--r--TAO/tao/default_server.h3
-rw-r--r--TAO/tao/giop.h7
-rw-r--r--TAO/tao/server_factory.cpp6
-rw-r--r--TAO/tao/server_factory.h6
6 files changed, 55 insertions, 7 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c
index b696c9b7fd3..429e713197f 100644
--- a/TAO/ChangeLog-98c
+++ b/TAO/ChangeLog-98c
@@ -1,3 +1,34 @@
+Fri Oct 31 03:00:09 1997 Chris Cleeland <cleeland@cs.wustl.edu>
+
+ * tao/orb_core.cpp: Moved call to connector's open() into init(),
+ thus insuring that it gets called only AFTER all the resources are
+ available from the Resource Factory.
+
+ * tao/orb_core.*: Changed data members to be associations rather
+ than containment. This allows decoupling of the
+ "thread-specificness" of these resources from the
+ thread-specificness of the general TAO_ORB_Core container. Also
+ added set accessors for those resources.
+
+ Added TAO_Resource_Factory class from which the TAO_ORB_Core
+ container initializes itself. For now this remains a singleton
+ which is, at compile-time, determined to be either TSS or not.
+ But, soon, it will be loaded via the Service Configurator and its
+ TSS nature determined at runtime.
+
+ * tao/giop.h: Updated to use the new ACE macro
+ ACE_CLASS_IS_NAMESPACE.
+
+ * tao/default_server.*: Implemented the new open() method so that
+ it initializes the Reactive and Threaded strategies from the
+ information in TAO_ORB_Core.
+
+ * tao/server_factory.*: Added open() method to be called after all
+ ORB resources are loaded up. This method can then be used by a
+ strategy factory to further initialize its contained strategies if
+ they require handles to resources to which the ORB might legislate
+ access. The default implementation does nothing.
+
Fri Oct 31 01:03:05 1997 <irfan@TWOSTEP>
* TAO/TAO_IDL/TAO_IDL.{mak,mdp}: Added VC++4.2 make files.
diff --git a/TAO/tao/default_server.cpp b/TAO/tao/default_server.cpp
index 0138d8e80e2..644d14cc616 100644
--- a/TAO/tao/default_server.cpp
+++ b/TAO/tao/default_server.cpp
@@ -107,10 +107,15 @@ TAO_Default_Server_Strategy_Factory::tokenize (char *flag_string)
int
TAO_Default_Server_Strategy_Factory::init (int argc, char *argv[])
{
+ return this->parse_args (argc, argv);
+}
+
+int
+TAO_Default_Server_Strategy_Factory::open (void)
+{
TAO_ORB_Core *orb_core = TAO_ORB_Core_instance ();
- if (this->parse_args (argc, argv) == 0
- && reactive_strategy_.open (orb_core->reactor ()) == 0
+ if (reactive_strategy_.open (orb_core->reactor ()) == 0
&& threaded_strategy_.open (orb_core->thr_mgr (),
this->thread_flags_) == 0)
return 0;
diff --git a/TAO/tao/default_server.h b/TAO/tao/default_server.h
index 867880a9c24..b18a0641a36 100644
--- a/TAO/tao/default_server.h
+++ b/TAO/tao/default_server.h
@@ -47,6 +47,9 @@ public:
TAO_Default_Server_Strategy_Factory (void);
virtual ~TAO_Default_Server_Strategy_Factory (void);
+ virtual int open (void);
+ // Call <open> for our strategies.
+
// = Server-side ORB Strategy Factory Methods.
virtual CONCURRENCY_STRATEGY *concurrency_strategy (void);
diff --git a/TAO/tao/giop.h b/TAO/tao/giop.h
index ad851cc90ac..927fde1d6d8 100644
--- a/TAO/tao/giop.h
+++ b/TAO/tao/giop.h
@@ -370,6 +370,8 @@ class TAO_GIOP
// = DESCRIPTION
// Only put static methods within this scope.
{
+ ACE_CLASS_IS_NAMESPACE (TAO_GIOP);
+
public:
// = Close a connection, first sending GIOP::CloseConnection
static void close_connection (TAO_Client_Connection_Handler *&handle,
@@ -399,11 +401,6 @@ public:
static void make_error (CDR &msg, ...);
// Construct a message containing an error so that it can be sent as
// a response to a request.
-
-private:
- TAO_GIOP();
- TAO_GIOP(TAO_GIOP&);
- ~TAO_GIOP();
};
#endif /* TAO_GIOP_H */
diff --git a/TAO/tao/server_factory.cpp b/TAO/tao/server_factory.cpp
index 0c3a69d610e..600cc1860d4 100644
--- a/TAO/tao/server_factory.cpp
+++ b/TAO/tao/server_factory.cpp
@@ -27,6 +27,12 @@ TAO_Server_Strategy_Factory::TAO_Server_Strategy_Factory (void)
TAO_Server_Strategy_Factory::~TAO_Server_Strategy_Factory(void)
{}
+int
+TAO_Server_Strategy_Factory::open (void)
+{
+ return 0;
+}
+
TAO_Server_Strategy_Factory::CREATION_STRATEGY *
TAO_Server_Strategy_Factory::creation_strategy (void)
{
diff --git a/TAO/tao/server_factory.h b/TAO/tao/server_factory.h
index fa5d4bcdfe4..da922c46de6 100644
--- a/TAO/tao/server_factory.h
+++ b/TAO/tao/server_factory.h
@@ -45,6 +45,12 @@ public:
virtual ~TAO_Server_Strategy_Factory(void);
// Destructor.
+ virtual int open (void);
+ // Call <open> on various strategies. This is not performed in
+ // <init> so that the other portions of the ORB have a chance to
+ // "settle" in their initialization since the streategies herein
+ // might need some of that information.
+
// = Server-side factory types.
typedef ACE_Creation_Strategy<TAO_Server_Connection_Handler>
CREATION_STRATEGY;