summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>1999-10-31 00:43:58 +0000
committerbala <balanatarajan@users.noreply.github.com>1999-10-31 00:43:58 +0000
commitff049f869bc9828b86ea7e8fd3635df527ea6913 (patch)
treee7eef11bba5f55aefe73159c29219fc899fd83a8 /TAO
parent20ae7753ee54c4cf0ea8e2bd548a7b6f8bcc1ce9 (diff)
downloadATCD-ff049f869bc9828b86ea7e8fd3635df527ea6913.tar.gz
ChangeLogTag: Sat Oct 30 19:32:49 1999 Balachandran Natarajan <bala@cs.wustl.edu>
Diffstat (limited to 'TAO')
-rw-r--r--TAO/ChangeLog-99c21
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Identity.idl22
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Identity_Client.cpp272
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Identity_Client.h84
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Identity_Server.cpp314
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Identity_Server.h91
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Identity_i.cpp43
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Identity_i.h59
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Load_Balancer.idl172
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Load_Balancer_i.cpp1079
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Load_Balancer_i.h353
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Load_Balancing_Service.cpp201
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Load_Balancing_Service.h61
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/Makefile2595
-rwxr-xr-xTAO/examples/Load_Balancing_persistent/README29
15 files changed, 5396 insertions, 0 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c
index c80212bd304..fea621dfde7 100644
--- a/TAO/ChangeLog-99c
+++ b/TAO/ChangeLog-99c
@@ -1,3 +1,24 @@
+Sat Oct 30 19:32:49 1999 Balachandran Natarajan <bala@cs.wustl.edu>
+
+ * examples/Load_Balancing_persistent/README:
+ * examples/Load_Balancing_persistent/Identity_Client.cpp:
+ * examples/Load_Balancing_persistent/Identity_Client.h
+ * examples/Load_Balancing_persistent/Identity_Server.cpp:
+ * examples/Load_Balancing_persistent/Identity_Server.h:
+ * examples/Load_Balancing_persistent/Identity_i.h:
+ * examples/Load_Balancing_persistent/Identity_i.cpp:
+ * examples/Load_Balancing_persistent/Load_Balancer_i.cpp:
+ * examples/Load_Balancing_persistent/Load_Balancer_i.h:
+ * examples/Load_Balancing_persistent/Load_Balancer_Service.cpp:
+ * examples/Load_Balancing_persistent/Load_Balancer_Service.h:
+ * examples/Load_Balancing_persistent/Load_Balancer.idl:
+ * examples/Load_Balancing_persistent/Identity.idl:
+ * examples/Load_Balancing_persistent/Makefile: An example that
+ demonstrates how to make a service persistent. This is a simple
+ extension of the Load_Balancing_Service in
+ $TAO_ROOT/Load_Balancing. Please refer to the README for more
+ details.
+
Sat Oct 30 12:16:50 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* orbsvcs/Trading_Service/: Split off the main() function into a
diff --git a/TAO/examples/Load_Balancing_persistent/Identity.idl b/TAO/examples/Load_Balancing_persistent/Identity.idl
new file mode 100755
index 00000000000..f16f5e410eb
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Identity.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+// ============================================================================
+//
+// = FILENAME
+// Identity.idl
+//
+// = DESCRIPTION
+// Interface for a toy CORBA service useful for
+// testing/demonstrating functionality of the Load
+// Balancing service defined in Load_Balancer.idl.
+//
+// = AUTHOR
+// Marina Spivak <marina@cs.wustl.edu>
+// with modifications by Bala Natarajan <bala@cs.wustl.edu>
+// ============================================================================
+
+interface Identity
+{
+ void get_name (out string name);
+ // Obtain the name of this object.
+};
diff --git a/TAO/examples/Load_Balancing_persistent/Identity_Client.cpp b/TAO/examples/Load_Balancing_persistent/Identity_Client.cpp
new file mode 100755
index 00000000000..f3dce3d9712
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Identity_Client.cpp
@@ -0,0 +1,272 @@
+// $Id$
+// ============================================================================
+//
+// = LIBRARY
+// TAO/examples/Load_Balancing
+//
+// = FILENAME
+// Identity_Client.cpp
+//
+// = AUTHOR
+// Marina Spivak <marina@cs.wustl.edu>
+//
+// ============================================================================
+
+#include "ace/Get_Opt.h"
+#include "Identity_Client.h"
+#include "IdentityC.h"
+#include "Load_BalancerC.h"
+#include "ace/High_Res_Timer.h"
+#include "ace/Stats.h"
+
+Identity_Client::Identity_Client (void)
+ : group_factory_ior_ (0),
+ number_of_invocations_ (5),
+ use_random_ (0),
+ iterations_ (0)
+{
+}
+
+int
+Identity_Client::parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "di:n:k:r");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'd': // debug flag.
+ TAO_debug_level++;
+ break;
+ case 'i': // ior of the <Object_Group_Factory> object.
+ this->group_factory_ior_ = get_opts.optarg;
+ break;
+ case 'n': // number of times to make invocation on an <Identity> object.
+ this->number_of_invocations_ = ACE_OS::atoi (get_opts.optarg);
+ break;
+ case 'k':
+ this->iterations_ = ACE_OS::atoi (get_opts.optarg);
+ break;
+ case 'r': // flag signifying to obtain references to <Identity>
+ // objects from the random <Object_Group> rather than
+ // from the round robin one.
+ this->use_random_ = 1;
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s"
+ " [-d]"
+ " [-i] <Object_Group_Factory_ior>"
+ " [-n] <number_of_invocations>"
+ " [-r]"
+ "\n",
+ argv [0]),
+ -1);
+ }
+
+ // Indicates successful parsing of command line.
+ return 0;
+}
+
+int
+Identity_Client::init (int argc,
+ char* argv[])
+{
+ int result;
+
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ result = this->orb_manager_.init (argc,
+ argv,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ if (result == -1)
+ return result;
+
+ // Check the non-ORB arguments.
+ result = this->parse_args (argc, argv);
+ if (result < 0)
+ return result;
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Identity_Client::init");
+ return -1;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (-1);
+
+ return 0;
+}
+
+int
+Identity_Client::run (CORBA::Environment &ACE_TRY_ENV)
+{
+ // Contact the <Object_Group_Factory> to obtain an <Object_Group>.
+ CORBA::ORB_var orb = orb_manager_.orb ();
+ CORBA::Object_var obj =
+ orb->string_to_object (this->group_factory_ior_,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ if (obj.in () == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ASYS_TEXT ("(%N|%l) <ERROR> [Identity_Client::run] \n"),
+ ASYS_TEXT ("factory_resolve \n")),
+ -1);
+
+ Load_Balancer::Object_Group_Factory_var factory =
+ Load_Balancer::Object_Group_Factory::_narrow (obj.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ if (CORBA::is_nil (factory.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Identity_Client: problems using the factory ior\n"),
+ -1);
+
+ const char *group_name;
+ if (this->use_random_)
+ group_name = "Random group";
+ else
+ group_name = "Round Robin group";
+
+ Load_Balancer::Object_Group_var object_group;
+
+ // We have this for the measurement that was done.
+#if defined (DOORS_MEASURE_STATS)
+
+ // Performance measurements start here
+ ACE_High_Res_Timer::calibrate ();
+
+ ACE_hrtime_t throughput_base = ACE_OS::gethrtime ();
+
+ ACE_Throughput_Stats throughput;
+ ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor ();
+
+ for (int i = 0; i < this->iterations_; i++)
+ {
+ // Record current time.
+ ACE_hrtime_t latency_base = ACE_OS::gethrtime ();
+
+#endif /*TAO_MEASURE_STATS*/
+ // Remote call
+ object_group =
+ factory->resolve (group_name,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ CORBA::String_var iorstring = orb->object_to_string (object_group);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "The ior string is %s \n", iorstring.in ()));
+#if defined (DOORS_MEASURE_STATS)
+ // Grab timestamp again.
+ ACE_hrtime_t now = ACE_OS::gethrtime ();
+
+ // Record statistics.
+ throughput.sample (now - throughput_base,
+ now - latency_base);
+
+ }
+
+ ACE_OS::printf ("*=*=*=*=Aggregated result *=*=*=*=*= \n");
+ throughput.dump_results ("Aggregated", gsf);
+#endif /*TAO_MEASURE_STATS */
+
+ if (CORBA::is_nil (object_group.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%l|%d)The narrowed object is NUL:"),
+ -1);
+ }
+
+ // List <Object_Group>'s id.
+ CORBA::String_var id = object_group->id (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+ ACE_DEBUG ((LM_DEBUG, "Object Group's id is: %s\n\n", id.in ()));
+
+ // List all <Object_Group>s members.
+ Load_Balancer::Member_ID_List_var id_list =
+ object_group->members (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+ ACE_DEBUG ((LM_DEBUG,
+ "The group contains %d members:\n",
+ id_list->length ()));
+ for (CORBA::ULong i = 0; i < id_list->length (); ++i)
+ ACE_DEBUG ((LM_DEBUG, "%s\n", (id_list[i]).in ()));
+
+ // Perform <number_of_invocations_> method calls on <Identity>
+ // objects, which are members of the <Object_Group>. Before each
+ // invocations, we get an <Identity> reference to use for that
+ // invocation from our <Object_Group>.
+ Identity_var identity_object;
+ CORBA::String_var identity;
+ CORBA_String_var objref;
+
+ for (size_t ind = 0; ind < this->number_of_invocations_; ++ind)
+ {
+ objref = object_group->resolve (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ obj = orb->string_to_object (objref,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ identity_object = Identity::_narrow (obj.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ if (CORBA::is_nil (identity_object.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Identity_Client: cannot narrow an object received from"
+ "<Object_Group::resolve> to <Identity>\n"),
+ -1);
+ identity_object->get_name (identity.out ());
+ ACE_CHECK_RETURN (-1);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Invocation %s\n",
+ identity.in ()));
+ ACE_CHECK_RETURN (-1);
+
+ }
+
+ return 0;
+}
+
+Identity_Client::~Identity_Client (void)
+{
+}
+
+int
+main (int argc, char *argv[])
+{
+ int result = 0;
+ Identity_Client client;
+
+ if (client.init (argc, argv) == -1)
+ return 1;
+
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ result = client.run (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Identity_Client");
+ return 1;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (1);
+
+ if (result == -1)
+ return 1;
+ else
+ return 0;
+}
diff --git a/TAO/examples/Load_Balancing_persistent/Identity_Client.h b/TAO/examples/Load_Balancing_persistent/Identity_Client.h
new file mode 100755
index 00000000000..b73e0392a2f
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Identity_Client.h
@@ -0,0 +1,84 @@
+// $Id$
+// -*- C++ -*-
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/examples/Load_Balancing
+//
+// = FILENAME
+// Identity_Client.h
+//
+// = DESCRIPTION
+// Code for Identity_Client, which is used in conjunction with
+// Identity_Server to test/demonstrate the functionality of the
+// Load Balancing service.
+//
+// = AUTHORS
+// Marina Spivak <marina@cs.wustl.edu>
+// with modifications by Bala Natarajan <bala@cs.wustl.edu>
+// ============================================================================
+
+#ifndef IDENTITY_CLIENT_H_
+#define IDENTITY_CLIENT_H_
+
+#include "tao/TAO.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class Identity_Client
+{
+ // =TITLE
+ // Contacts the <Object_Group_Factory> in th Load Balancing Server
+ // to obtain a reference to the type of the <Object_Group>
+ // specified on the command line. Then, queries the
+ // <Object_Group> for its id and members, and prints that
+ // information. Finally, performs <number_of_invocations_>
+ // <Identity::get_name> calls, performing <Object_Group::resolve>
+ // before each <get_name> call in order to get the <Identity>
+ // reference to use for the call. (This provides an example of
+ // fine-grained, i.e., per call, Load Balancing among all the
+ // <Identity> objects registered with the <Object_Group> for the
+ // client's <get_name> calls.
+ //
+public:
+
+ Identity_Client (void);
+ // Default constructor.
+
+ ~Identity_Client (void);
+ // Destructor.
+
+ int init (int argc, char *argv[]);
+ // Initializes <orb_manager_>, and parses commandline arguments.
+
+ int run (CORBA::Environment &ACE_TRY_ENV);
+ // See TITLE.
+
+private:
+ int parse_args (int argc, char *argv[]);
+ // Parses the commandline arguments.
+
+ TAO_ORB_Manager orb_manager_;
+ // The ORB manager.
+
+ const char *group_factory_ior_;
+ // The ior of the <Object_Group_Factory> object we shall use to
+ // to obtain an <Object_Group> object.
+
+ size_t number_of_invocations_;
+ // Number of times to invoke <get_name> method on <Identity>
+ // objects. The default value is 5.
+
+ size_t use_random_;
+ // Flag indicating which <Object_Group> to use to obtain references
+ // to <Identity> objects. Random group should be used if the flag
+ // is set to 1, and round robin group otherwise. Round robin is the
+ // default.
+
+ int iterations_;
+};
+
+#endif /* IDENTITY_CLIENT_H_ */
diff --git a/TAO/examples/Load_Balancing_persistent/Identity_Server.cpp b/TAO/examples/Load_Balancing_persistent/Identity_Server.cpp
new file mode 100755
index 00000000000..4b7e5540af6
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Identity_Server.cpp
@@ -0,0 +1,314 @@
+// $Id$
+// ============================================================================
+//
+// = LIBRARY
+// TAO/examples/Load_Balancing
+//
+// = FILENAME
+// Identity_Server.cpp
+//
+// = AUTHOR
+// Marina Spivak <marina@cs.wustl.edu>
+//
+// ============================================================================
+
+#include "Identity_Server.h"
+#include "ace/Get_Opt.h"
+#include "Identity_i.h"
+
+Identity_Server::Identity_Server (void)
+ : group_factory_ior_ (0),
+ random_objects_ (5),
+ rr_objects_ (5)
+{
+}
+
+int
+Identity_Server::parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "di:a:o:");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'd': // debug flag.
+ TAO_debug_level++;
+ break;
+ case 'i': // ior of the <Object_Group_Factory> object.
+ this->group_factory_ior_ = get_opts.optarg;
+ break;
+ case 'a': // number of objects to create/register with the random group.
+ random_objects_ = ACE_OS::atoi (get_opts.optarg);
+ break;
+ case 'o': // number of objects to create/register with round
+ //robin group.
+ rr_objects_ = ACE_OS::atoi (get_opts.optarg);
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s"
+ " [-d]"
+ " [-i] <Object_Group_Factory_ior>"
+ " [-a] <number_of_objects_for_random_group>"
+ " [-o] <number_of_objects_for_rr_group>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+
+ // Indicates successful parsing of command line.
+ return 0;
+}
+
+int
+Identity_Server::init (int argc,
+ char* argv[])
+{
+ int result;
+ CORBA_DynAny_var temp_var;
+
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ result = this->orb_manager_.init (argc,
+ argv,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ if (result == -1)
+ return result;
+
+ CORBA::PolicyList policies (2);
+ policies.length (2);
+
+ // Lifespan policy
+ policies[0] =
+ this->orb_manager_.root_poa()->create_lifespan_policy (PortableServer::PERSISTENT,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ policies[1] =
+ this->orb_manager_.root_poa()->create_implicit_activation_policy (PortableServer::IMPLICIT_ACTIVATION,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ this->persistent_POA_ =
+ this->orb_manager_.root_poa()->create_POA ("persistent_server",
+ this->orb_manager_.poa_manager (),
+ policies,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+
+ // Destroy policy objects
+ for (CORBA::ULong i = 0;
+ i < policies.length ();
+ ++i)
+ {
+ policies[i]->destroy (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+
+
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Identity_Server::init");
+ return -1;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (-1);
+
+ return 0;
+}
+
+int
+Identity_Server::register_groups (CORBA::Environment &ACE_TRY_ENV)
+{
+
+
+
+ // Contact the <Object_Group_Factory> to create 2
+ // <Object_Group>s, one random and one rr.
+ CORBA::ORB_var orb = orb_manager_.orb ();
+ CORBA::Object_var obj =
+ orb->string_to_object (this->group_factory_ior_,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ Load_Balancer::Object_Group_Factory_var factory =
+ Load_Balancer::Object_Group_Factory::_narrow (obj.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ if (CORBA::is_nil (factory.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Identity_Server::init: "
+ "problems using the factory ior\n"),
+ -1);
+
+
+ // Unbind the previously registered random group.
+ ACE_TRY_EX (UNBIND_RANDOM)
+ {
+ factory->unbind_random ("Random group",
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK_EX (UNBIND_RANDOM);
+ }
+ ACE_CATCHANY
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%N | %l) <Unbind> harmless here \n"));
+ }
+ ACE_ENDTRY;
+
+ // Unbind the previously registered round robin group
+ ACE_TRY_EX (UNBIND_ROUND)
+ {
+ factory->unbind_round_robin ("Round Robin group",
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK_EX (UNBIND_ROUND);
+ }
+ ACE_CATCHANY
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%N | %l) <Unbind> harmless here \n"));
+ }
+ ACE_ENDTRY;
+
+
+ // We want to make two groups Random & Round Robin.
+ Load_Balancer::Object_Group_var random_group =
+ factory->make_random ("Random group",
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ Load_Balancer::Object_Group_var rr_group =
+ factory->make_round_robin ("Round Robin group",
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+
+ // Create the requested number of <Identity> objects, and
+ // register them with the random and round robin
+ // <Object_Group>s.
+ this->create_objects (random_objects_,
+ random_group.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+
+ this->create_objects (rr_objects_,
+ rr_group.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ return 0;
+}
+
+void
+Identity_Server::create_objects (size_t number_of_objects,
+ Load_Balancer::Object_Group_ptr group,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ // Create the specified number of servants, and register each one
+ // with the provided <Object_Group>.
+ for (size_t i = 0; i < number_of_objects; ++i)
+ {
+ // Create an id for this servant.
+ char id[BUFSIZ];
+ ACE_OS::sprintf (id,
+ "Identity object %d",
+ i);
+
+ // Create and activate a servant.
+ Identity_i * identity_servant;
+ ACE_NEW_THROW_EX (identity_servant,
+ Identity_i (id, this->persistent_POA_),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK;
+
+ PortableServer::ServantBase_var s = identity_servant;
+ this->orb_manager_.activate_poa_manager (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ CORBA::Object_var obj = identity_servant->_this (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ Load_Balancer::Member member;
+ member.id = CORBA::string_dup (id);
+ member.obj = this->orb_manager_.orb ()->object_to_string (obj,
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ // Do an unbind and then bind
+ ACE_TRY_EX (UNBIND)
+ {
+ group->unbind (id, ACE_TRY_ENV);
+ ACE_TRY_CHECK_EX (UNBIND);
+ }
+ ACE_CATCHANY
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%N | %l) Harmless here \n"));
+ }
+ ACE_ENDTRY;
+
+ // Bind the servant in the random <Object_Group>.
+ group->bind (member, ACE_TRY_ENV);
+ ACE_CHECK;
+
+ }
+}
+
+int
+ Identity_Server::run (CORBA::Environment &ACE_TRY_ENV)
+{
+ int result;
+
+ result = this->orb_manager_.run (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ return result;
+}
+
+Identity_Server::~Identity_Server (void)
+{
+}
+
+int
+main (int argc, char *argv[])
+{
+ int result = 0;
+ Identity_Server server;
+
+ if (server.init (argc, argv) == -1)
+ return 1;
+
+ // Check the non-ORB arguments.
+ if (server.parse_args (argc, argv) == -1)
+ return -1;
+
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ result = server.register_groups (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ result = server.run (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Identity_Server");
+ return 1;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (1);
+
+ if (result == -1)
+ return 1;
+ else
+ return 0;
+}
diff --git a/TAO/examples/Load_Balancing_persistent/Identity_Server.h b/TAO/examples/Load_Balancing_persistent/Identity_Server.h
new file mode 100755
index 00000000000..d58016b0354
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Identity_Server.h
@@ -0,0 +1,91 @@
+// $Id$
+// -*- C++ -*-
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/examples/Load_Balancing
+//
+// = FILENAME
+// Identity_Server.h
+//
+// = DESCRIPTION
+// Driver for identity server, which is used to test/demonstrate
+// the functionality of the Load Balancing service.
+//
+// = AUTHORS
+// Marina Spivak <marina@cs.wustl.edu>
+// with modifications by Bala Natarajan <bala@cs.wustl.edu>
+// ============================================================================
+
+#ifndef IDENTITY_SERVER_H_
+#define IDENTITY_SERVER_H_
+
+#include "tao/TAO.h"
+#include "Load_BalancerC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class Identity_Server
+{
+ // =TITLE
+ // Contacts the <Object_Group_Factory> in the Load Balancing Server
+ // to create two <Object_Group>s, one round robin and one random.
+ // Then, creates a number of <Identity> objects and registers them with
+ // the created <Object_Group>s in a manner specified by the
+ // commandline arguments.
+ //
+public:
+
+ Identity_Server (void);
+ // Default constructor.
+
+ ~Identity_Server (void);
+ // Destructor.
+
+ int parse_args (int argc, char *argv[]);
+ // Parses the commandline arguments.
+
+ int init (int argc, char *argv[]);
+ // Performs all the initializations necessary before going into the
+ // ORB event loop.
+
+ int register_groups (CORBA::Environment &ACE_TRY_ENV);
+
+
+ int run (CORBA::Environment &ACE_TRY_ENV);
+ // Run the server.
+
+private:
+
+
+ void create_objects (size_t number_of_objects,
+ Load_Balancer::Object_Group_ptr group,
+ CORBA::Environment &ACE_TRY_ENV);
+ // Creates the specified number of identity objects, and registers
+ // each one with the provided <Object_Group>. Identity servants are
+ // given names
+ //"Identity object 1" .... "Identity object <number_of_objects>".
+
+
+ TAO_ORB_Manager orb_manager_;
+ // The ORB manager.
+
+ const char *group_factory_ior_;
+ // The ior of the <Object_Group_Factory> object we shall use to
+ // create <Object_Group>s to load balance our <Identity> objects.
+
+ size_t random_objects_;
+ // Number of <Identity> objects to create for registering with
+ // the random <Object_Group>. The default value is 5.
+
+ size_t rr_objects_;
+ // Number of <Identity> objects to create for registering with the
+ // round robin <Object_Group>. The default value is 5.
+
+ PortableServer::POA_var persistent_POA_;
+};
+
+#endif /* IDENTITY_SERVER_H_ */
diff --git a/TAO/examples/Load_Balancing_persistent/Identity_i.cpp b/TAO/examples/Load_Balancing_persistent/Identity_i.cpp
new file mode 100755
index 00000000000..58f3b5c9ee2
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Identity_i.cpp
@@ -0,0 +1,43 @@
+/* -*- C++ -*- */
+// $Id$
+// ============================================================================
+//
+// = FILENAME
+// Identity_i.cpp
+//
+// = DESCRIPTION
+// Implements the interface in Identity.idl.
+//
+// = AUTHOR
+// Marina Spivak <marina@cs.wustl.edu>
+//
+// ============================================================================
+#include "Identity_i.h"
+
+Identity_i::Identity_i (const char *name,
+ PortableServer::POA_ptr poa)
+ : name_ (name),
+ poa_ (PortableServer::POA::_duplicate (poa))
+{
+}
+
+Identity_i::~Identity_i (void)
+{
+}
+
+void
+Identity_i::get_name (CORBA::String_out name,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+ name = this->name_.in ();
+}
+
+PortableServer::POA_ptr
+Identity_i::_default_POA (CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return PortableServer::POA::_duplicate (this->poa_);
+}
+
diff --git a/TAO/examples/Load_Balancing_persistent/Identity_i.h b/TAO/examples/Load_Balancing_persistent/Identity_i.h
new file mode 100755
index 00000000000..5728161ad9f
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Identity_i.h
@@ -0,0 +1,59 @@
+/* -*- C++ -*- */
+// $Id$
+// ============================================================================
+//
+// = FILENAME
+// Identity_i.h
+//
+// = DESCRIPTION
+// Implements the interface in Identity.idl.
+//
+// = AUTHOR
+// Marina Spivak <marina@cs.wustl.edu>
+// with modifications by Bala Natarajan <bala@cs.wustl.edu>
+// ============================================================================
+#ifndef IDENTITY_I_H_
+#define IDENTITY_I_H_
+
+#include "IdentityS.h"
+
+// This is to remove "inherits via dominance" warnings from MSVC.
+#if defined (_MSC_VER)
+# pragma warning (disable : 4250)
+#endif /* _MSC_VER */
+
+class Identity_i :
+ public virtual POA_Identity,
+ public virtual PortableServer::RefCountServantBase
+{
+ // = TITLE
+ // This class implements Identity.idl interface.
+public:
+
+ Identity_i (const char *name,
+ PortableServer::POA_ptr poa);
+ // Constructor - initializes the name of this object.
+
+ ~Identity_i (void);
+ // Destructor.
+
+ virtual void get_name (CORBA::String_out name,
+ CORBA::Environment &ACE_TRY_ENV =
+ CORBA::Environment::default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ // Returns the name of this object.
+
+ PortableServer::POA_ptr _default_POA (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ // Method for the POA that will return the persistent POA_ptr stored
+ // in here..
+
+private:
+
+ CORBA::String_var name_;
+ // Stores the name of this object.
+
+ PortableServer::POA_var poa_;
+};
+
+#endif /* IDENTITY_I_H_ */
diff --git a/TAO/examples/Load_Balancing_persistent/Load_Balancer.idl b/TAO/examples/Load_Balancing_persistent/Load_Balancer.idl
new file mode 100755
index 00000000000..5b7cfa3b61a
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Load_Balancer.idl
@@ -0,0 +1,172 @@
+// $Id$
+
+// ============================================================================
+//
+// = FILENAME
+// Load_Balancer.idl
+//
+// = DESCRIPTION
+// Interfaces for a simple CORBA Load Balancing service, which can
+// be used in conjunction with the Naming Service or alone to
+// improve distributed load balancing. See README file for a short
+// discussion of other solution approaches for load balancing as
+// well as use cases for this approach.
+//
+// = AUTHOR
+// Interfaces in this file came from OrbixNames Load Balancing
+// features with modifications by:
+// Doug Schmidt (schmidt@cs.wustl.edu)
+// Marina Spivak (marina@cs.wustl.edu)
+//
+// ============================================================================
+
+module Load_Balancer
+{
+ // = TITLE
+ // Define a module that allows clients to treat a group
+ // of <Object>s, i.e., an <Object_Group>, as an equivalence class
+ // to improve distributed load balancing.
+ //
+ // = DESCRIPTION
+ // <Object_Group_Factory> is used to create <Object_Group>s.
+ // There are two logical types of <Object_Group>s :
+ //
+ // 1. Round Robin <Object_Group> -- This <Object_Group> resolves
+ // requests for arbitrary members in round robin order.
+ //
+ // 2. Random <Object_Group> -- This <Object_Group> resolves
+ // requests for arbitrary members in random order.
+ //
+ // Both types of <Object_Group>s have the same interface (i.e.,
+ // <Object_Group>) but different behaviour should be provided
+ // in interface implementations appropriately.
+
+ // = Module-defined exceptions.
+ exception no_such_member {};
+ exception duplicate_member {};
+ exception duplicate_group {};
+ exception no_such_group {};
+
+ // = Module-defined types.
+
+ typedef string Member_ID;
+ typedef sequence<Member_ID> Member_ID_List;
+ typedef string Objref;
+
+ struct Member
+ {
+ Objref obj;
+ // IOR of an <Object_Group> member.
+
+ Member_ID id;
+ // Each member in an <Object_Group> is identified by a unique ID.
+ };
+
+ typedef string Group_ID;
+ typedef sequence<Group_ID> Group_List;
+
+ // = Forward interface decls.
+ interface Object_Group;
+
+ interface Object_Group_Factory
+ {
+ // = TITLE
+ // A factory that creates different types of
+ // <Object_Group>s and keeps track of them.
+ //
+ // = DESCRIPTION
+ // Currently, operations for two types of <Object_Group>s are
+ // defined: random and round robin.
+
+ Object_Group make_round_robin (in Group_ID id)
+ raises (duplicate_group);
+ // Creates an <Object_Group> that resolves requests for arbitrary
+ // members in round robin order. If an <Object_Group>, of any
+ // type, with Group_ID <id> has already been created by this
+ // factory, and hasn't been destroyed, a <duplicate_group>
+ // exception is thrown.
+
+ void unbind_round_robin (in Group_ID id)
+ raises (no_such_group);
+ // Unbinds a previous incarnation of the Round Robin if any
+
+ Object_Group make_random (in Group_ID id)
+ raises (duplicate_group);
+ // Creates an <Object_Group> that resolves requests for arbitrary
+ // members in random order. If an <Object_Group>, of any
+ // type, with Group_ID <id> has already been created by this
+ // factory, and hasn't been destroyed, a <duplicate_group>
+ // exception is thrown.
+
+ void unbind_random (in Group_ID id)
+ raises (no_such_group);
+ // Unbinds a previous incarnation of the Random groups.
+
+ Object_Group resolve (in Group_ID id) raises (no_such_group);
+ // Locates and returns an <Object_Group> by its <Group_ID>. If
+ // no <Object_Group> has <Group_ID> of <id>, throw a
+ // <no_such_group> exception.
+
+ Group_List round_robin_groups ();
+ // Lists all the round robin <Object_Group>s which were created
+ // by this factory, and haven't been destroyed yet, i.e., return
+ // a sequence of <Group_ID>s of all existing round robin
+ // <Object_Group>s created by this factory.
+
+ Group_List random_groups ();
+ // Lists all the random <Object_Group>s which were created
+ // by this factory, and haven't been destroyed yet, i.e., return
+ // a sequence of <Group_ID>s of all existing random
+ // <Object_Group>s created by this factory.
+ };
+
+ interface Object_Group
+ {
+ // = TITLE
+ // Holds references for 0 or more objects that form an
+ // equivalence class, and provides load balancing for those
+ // objects.
+ //
+ // = DESCRIPTION
+ // Whenever a client needs to find an object of a certain type
+ // or functionality, it makes a request to the appropriate
+ // <Object_Group>. The <Object_Group> selects one of its
+ // members in accordance with the implemented policy (i.e.,
+ // random or round robin), and returnd it to the client, thus
+ // providing a form of load balancing for its members.
+ //
+ readonly attribute string id;
+ // Each Object Group has its own distinct ID.
+
+ void bind (in Member mem) raises (duplicate_member);
+ // Adds a new <member> to the <Object_Group>. Note that each
+ // <Member_ID> in an <Object_Group> must be unique. If the
+ // group already contains a member with the same <Member_ID>, a
+ // <duplicate_member> exceptions is thrown.
+
+ void unbind (in Member_ID id) raises (no_such_member);
+ // Removes a member with the specified <Member_ID> from the
+ // <Object_Group>. If none of the group's members have a
+ // Member_ID of <id>, <no_such_member> exception is thrown.
+
+ Objref resolve () raises (no_such_member);
+ // Returns a member object from this <Object_Group> in accordance with
+ // load balancing policy it implements, i.e., ``random'' or
+ // ``round robin.'' If the group contains no members, <no_such_member>
+ // exception is thrown.
+
+ Objref resolve_with_id (in Member_ID id) raises (no_such_member);
+ // Returns an object with the specified <Member_ID>. If this
+ // <Object_Group> contains no members with the specified
+ // <Member_ID>, <no_such_member> exception is thrown.
+
+ Member_ID_List members ();
+ // Return a sequence of <Member_ID>s of all of its members.
+
+ void destroy ();
+ // Cleanup the resources associated with this <Object_Group>.
+ // Subsequent calls to this <Object_Group> should fail, and its
+ // <id> should become available. <Object_Group_Factory>
+ // should no longer list this <Object_Group>.
+ };
+};
diff --git a/TAO/examples/Load_Balancing_persistent/Load_Balancer_i.cpp b/TAO/examples/Load_Balancing_persistent/Load_Balancer_i.cpp
new file mode 100755
index 00000000000..646e84d271c
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Load_Balancer_i.cpp
@@ -0,0 +1,1079 @@
+// $Id$
+// ============================================================================
+//
+// = FILENAME
+// Load_Balancer_i.cpp
+//
+// = AUTHOR
+// Marina Spivak <marina@cs.wustl.edu>
+//
+// ============================================================================
+
+#include "Load_Balancer_i.h"
+#include "ace/Auto_Ptr.h"
+
+
+const char *rr_name_bind = "RR_Group";
+// Name binding for the location of the Round Robin info in the mem pool
+
+const char *random_name_bind = "Random_Group";
+// Name binding for the location of the Random info in the mem pool
+
+const char *flags_name_bind = "FLAGS";
+// Name binding for the location of the flags info in the mem pool
+
+const char *dll_name_bind = "DLL_LIST";
+// Name binding for the DLL_LIst in the me_pool;
+
+const char *server_id_name_bind = "server_id";
+// Some cookie that is used for appending names
+
+Object_Group_Factory_i::Object_Group_Factory_i (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa)
+ :orb_ (orb),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ random_groups_ (0),
+ rr_groups_ (0),
+ flags_ (0)
+{
+ ACE_MMAP_Memory_Pool::OPTIONS options (ACE_DEFAULT_BASE_ADDR);
+ ACE_NEW (this->mem_pool_,
+ ALLOCATOR ("Mem_Pool",
+ "Mem_Pool",
+ &options));
+}
+
+Object_Group_Factory_i::~Object_Group_Factory_i (void)
+{
+ delete this->mem_pool_;
+}
+
+PortableServer::POA_ptr
+Object_Group_Factory_i::_default_POA (CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return PortableServer::POA::_duplicate (this->poa_);
+}
+
+
+Load_Balancer::Object_Group_ptr
+Object_Group_Factory_i::make_round_robin (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::duplicate_group))
+{
+
+ if (this->mem_pool_->find (rr_name_bind,
+ (void *&)this->rr_groups_) == -1)
+ {
+ void *hash_map = this->mem_pool_->malloc (sizeof (HASH_MAP));
+ ACE_NEW_THROW_EX (this->rr_groups_,
+ (hash_map) HASH_MAP (this->mem_pool_),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK_RETURN (Load_Balancer::Object_Group::_nil ());
+
+ // Bind it in the mem pool with a name
+ if (this->mem_pool_->bind (rr_name_bind,
+ (void *)this->rr_groups_) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to bind \n"),
+ 0);
+ }
+ }
+
+ return this->make_group (0,
+ id,
+ ACE_TRY_ENV);
+}
+
+void
+Object_Group_Factory_i::unbind_round_robin (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_group))
+{
+ if (this->rr_groups_ == 0)
+ {
+ if (this->mem_pool_->find (rr_name_bind,
+ (void *&)this->rr_groups_) == -1)
+ ACE_THROW (Load_Balancer::no_such_group ());
+ }
+
+ char *int_id = 0;
+
+ // Throw an exception if not found in the HASH MAP
+ if (this->rr_groups_->find (ACE_const_cast (char *, id),
+ this->mem_pool_) < 0)
+ ACE_THROW (Load_Balancer::no_such_group ());
+
+ // Unbind the entry
+ this->rr_groups_->unbind (ACE_const_cast (char *, id),
+ int_id,
+ this->mem_pool_);
+
+ // Free the memory from the pool
+ this->mem_pool_->free (int_id - (ACE_OS::strlen (id) + 1));
+
+ // Change the FLAGS variable
+ if (this->flags_ == 0)
+ {
+ if (this->mem_pool_->find (flags_name_bind,
+ (void *&)this->flags_) == -1)
+ return;
+ }
+
+ // Bump down the flags value
+ --this->flags_;
+
+}
+
+Load_Balancer::Object_Group_ptr
+Object_Group_Factory_i::make_random (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::duplicate_group))
+{
+
+ if (this->mem_pool_->find (random_name_bind, (void * &)this->random_groups_) == -1)
+ {
+ void *hash_map = this->mem_pool_->malloc (sizeof (HASH_MAP));
+
+ ACE_NEW_THROW_EX (this->random_groups_,
+ (hash_map) HASH_MAP (this->mem_pool_),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK_RETURN (Load_Balancer::Object_Group::_nil ());
+
+ // Bind it in the mem pool with a name
+ if (this->mem_pool_->bind (random_name_bind,
+ (void *)this->random_groups_) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to bind \n"),
+ 0);
+ }
+ }
+
+ return this->make_group (1,
+ id,
+ ACE_TRY_ENV);
+}
+
+
+void
+Object_Group_Factory_i::unbind_random (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_group))
+{
+ if (this->random_groups_ == 0)
+ {
+ if (this->mem_pool_->find (random_name_bind,
+ (void *&)this->random_groups_) == -1)
+ ACE_THROW (Load_Balancer::no_such_group ());
+ }
+
+ char *int_id = 0;
+
+ // Throw an exception if not found in the HASH MAP
+ if (this->random_groups_->find (ACE_const_cast (char *, id),
+ this->mem_pool_) < 0)
+ ACE_THROW (Load_Balancer::no_such_group ());
+
+ // Unbind the entry
+ this->random_groups_->unbind (ACE_const_cast (char *, id),
+ int_id,
+ this->mem_pool_);
+
+ // Free the memory from the pool
+ this->mem_pool_->free (int_id - (ACE_OS::strlen (id) + 1));
+
+ // Change the FLAGS variable
+ if (this->flags_ == 0)
+ {
+ if (this->mem_pool_->find (flags_name_bind,
+ (void *&)this->flags_) == -1)
+ return;
+ }
+
+ // Bump down the flags value
+ this->flags_ -= 2;
+}
+
+Load_Balancer::Object_Group_ptr
+Object_Group_Factory_i::make_group (int random,
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::duplicate_group))
+{
+ // Store our result here for return.
+ Load_Balancer::Object_Group_var group;
+
+ // Create an appropriate servant.
+ Object_Group_i *group_servant = 0;
+
+ // Check to make sure we don't already have a group with the same
+ // <id>.
+
+ if (random)
+ {
+ if (this->random_groups_->find (ACE_const_cast (char *,id),
+ this->mem_pool_) == 0)
+ ACE_THROW_RETURN (Load_Balancer::duplicate_group (),
+ Load_Balancer::Object_Group::_nil ());
+ }
+ else
+ {
+ if (this->rr_groups_->find (ACE_const_cast (char *,id),
+ this->mem_pool_) == 0)
+ ACE_THROW_RETURN (Load_Balancer::duplicate_group (),
+ Load_Balancer::Object_Group::_nil ());
+ }
+
+
+
+ // As we are sure that it is not in the list go ahead and insert it
+ if (random)
+ ACE_NEW_THROW_EX (group_servant,
+ Random_Object_Group (id,
+ this->poa_.in ()),
+ CORBA::NO_MEMORY ());
+ else
+ ACE_NEW_THROW_EX (group_servant,
+ RR_Object_Group (id,
+ this->poa_.in ()),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK_RETURN (group._retn ());
+
+ // Register with the poa, begin using ref. counting.
+ group = group_servant->_this (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (group._retn ());
+
+ group_servant->_remove_ref (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (Load_Balancer::Object_Group::_nil ());
+
+ CORBA::String_var ior =
+ this->orb_->object_to_string (group.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (Load_Balancer::Object_Group::_nil ());
+
+
+ // Calculate and allocate the memory we need to store this name to
+ // object binding.
+ size_t id_len = ACE_OS::strlen (id) + 1;
+ size_t kind_len = ACE_OS::strlen (ior.in ()) + 1;
+
+ char *ptr = (char *) this->mem_pool_->malloc (id_len + kind_len);
+
+ if (ptr == 0)
+ ACE_THROW_RETURN (CORBA::NO_MEMORY (),
+ Load_Balancer::Object_Group::_nil ());
+
+ char * id_ptr = ptr;
+ char * ior_ptr = ptr + id_len;
+
+ ACE_OS::strcpy (id_ptr, id);
+ ACE_OS::strcpy (ior_ptr, ior.in ());
+
+ // Store the results here
+ CORBA::Long result = 0;
+
+ // Make an entry in appropriate map of groups.
+ if (random)
+ {
+ result = this->random_groups_->bind (id_ptr,
+ ior_ptr,
+ this->mem_pool_);
+ }
+ else
+ {
+ result = this->rr_groups_->bind (id_ptr,
+ ior_ptr,
+ this->mem_pool_);
+ }
+
+
+
+ // Update the value of flags_
+ this->update_flags (random,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (Load_Balancer::Object_Group::_nil ());
+
+ if (result == -1)
+ {
+ // For some reason the bind failed. Free our
+ // dynamically allocated memory.
+ this->mem_pool_->free ((void *) ptr);
+ ACE_THROW_RETURN (Load_Balancer::duplicate_group (),
+ Load_Balancer::Object_Group::_nil ());
+
+ }
+
+ // Return.
+ ACE_DEBUG ((LM_DEBUG, "Successfully created new group: %s\n", id));
+
+ return group._retn ();
+}
+
+
+Load_Balancer::Object_Group_ptr
+Object_Group_Factory_i::resolve (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_group))
+{
+
+
+
+#if defined (DOORS_MEASURE_STATS)
+ // Time the calls
+ // Record the entry time.
+ ACE_hrtime_t latency_base = ACE_OS::gethrtime ();
+
+#endif /*DOORS_MEASURE_STATS*/
+
+ // It could be that the Load balancing service could have failed
+ // before the Client tries to invoke this call.. In such a case the
+ // Service should look in to the MMAP file and read in the info
+ // before it can resolve the ID sent by the client.. So we check
+ // whether the class holds the pointer.. If not we look in to the
+ // MMAP file for the relevant info..
+ if (!this->rr_groups_)
+ {
+ if (this->mem_pool_->find (rr_name_bind,
+ (void *&)this->rr_groups_) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ASYS_TEXT ("(%N|%l) The factory does not have any references "),
+ ASYS_TEXT ("to the group that you have sought \n\n")),
+ 0);
+ }
+ }
+
+ if (!this->random_groups_)
+ {
+ if (this->mem_pool_->find (random_name_bind,
+ (void *&)this->random_groups_) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ASYS_TEXT ("(%N|%l) The factory does not have any references "),
+ ASYS_TEXT ("to the group that you have sought \n\n")),
+ 0);
+
+ }
+ }
+
+ if (!this->flags_)
+ {
+ this->mem_pool_->find (flags_name_bind,
+ (void *&)this->flags_);
+ this->update_objects (ACE_TRY_ENV);
+ }
+
+ char *ior = 0;
+
+ if (rr_groups_->find (ACE_const_cast (char *, id),
+ ior,
+ this->mem_pool_) == -1
+ && random_groups_->find (ACE_const_cast (char *, id),
+ ior,
+ this->mem_pool_) == -1)
+ ACE_THROW_RETURN (Load_Balancer::no_such_group (),
+ 0);
+
+ CORBA_Object_var objref =
+ this->orb_->string_to_object (ior,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (Load_Balancer::Object_Group::_nil ());
+
+ Load_Balancer::Object_Group_ptr
+ object_group = Load_Balancer::Object_Group::_narrow (objref,
+ ACE_TRY_ENV);
+
+ ACE_CHECK_RETURN (Load_Balancer::Object_Group::_nil ());
+
+
+#if defined (DOORS_MEASURE_STATS)
+ // Grab timestamp again.
+ ACE_hrtime_t now = ACE_OS::gethrtime ();
+
+ this->throughput_.sample (0,
+ now - latency_base);
+
+ ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor ();
+ ACE_OS::printf ("*=*=*=*=Aggregated result *=*=*=*=*= \n");
+ this->throughput_.dump_results ("Aggregated", gsf);
+
+#endif /*DOORS_MEASURE_STATS*/
+
+ return object_group;
+}
+
+Load_Balancer::Group_List *
+Object_Group_Factory_i::list_groups (int random,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ Load_Balancer::Group_List * list;
+
+ // Figure out the length of the list.
+ CORBA::ULong len;
+ if (random)
+ len = random_groups_->current_size ();
+ else
+ len = rr_groups_->current_size ();
+
+ // Allocate the list of <len> length.
+ ACE_NEW_THROW_EX (list,
+ Load_Balancer::Group_List (len),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK_RETURN (list);
+ list->length (len);
+
+ // Create an iterator for group structure to populate the list.
+ HASH_MAP::ITERATOR *group_iter;
+ HASH_MAP::ITERATOR random_iter (*(this->random_groups_));
+ HASH_MAP::ITERATOR rr_iter (*(this->rr_groups_));
+ if (random)
+ group_iter = &random_iter;
+ else
+ group_iter = &rr_iter;
+
+ // Iterate over groups and populate the list.
+ HASH_MAP::ENTRY *hash_entry;
+ for (CORBA::ULong i = 0; i < len; i++)
+ {
+ group_iter->next (hash_entry);
+ group_iter->advance ();
+
+ (*list)[i] = ACE_OS::strdup (hash_entry->ext_id_);
+ }
+
+ return list;
+}
+
+Load_Balancer::Group_List *
+Object_Group_Factory_i::round_robin_groups (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return list_groups (0, ACE_TRY_ENV);
+}
+
+Load_Balancer::Group_List *
+Object_Group_Factory_i::random_groups (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return list_groups (1, ACE_TRY_ENV);
+}
+
+
+void
+Object_Group_Factory_i::update_flags (int random,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ //First check whether we have memory for flags_
+ if (!this->flags_)
+ {
+ if (this->mem_pool_->find (flags_name_bind,
+ (void *&) this->flags_) == -1)
+ {
+ void *value =
+ this->mem_pool_->malloc (sizeof (CORBA::Short));
+ ACE_NEW_THROW_EX (this->flags_,
+ (value) CORBA::Short (0),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK;
+
+ // Initialize the variable
+ this->mem_pool_->bind (flags_name_bind,
+ (void *)this->flags_);
+ }
+ }
+
+ CORBA::Short val = *(this->flags_);
+ switch (val)
+ {
+ case 0:
+ if (random)
+ *(this->flags_) = 2;
+ else
+ *(this->flags_) = 1;
+ break;
+ case 1:
+ if (random)
+ *(this->flags_) = 3;
+ break;
+ case 2:
+ if (!random)
+ *(this->flags_) = 3;
+ break;
+
+ }
+}
+
+void
+Object_Group_Factory_i::update_objects (CORBA::Environment &ACE_TRY_ENV)
+{
+ // Create an appropriate servant.
+ Object_Group_i * group_servant = 0;
+ Object_Group_i *group_servant_rep = 0;
+
+ // Check the value of of flags_ & do the instantiation and
+ // registration
+
+ switch (*(this->flags_))
+ {
+ case 1:
+ ACE_NEW_THROW_EX (group_servant,
+ RR_Object_Group ("Round Robin group",
+ this->poa_.in ()),
+ CORBA::NO_MEMORY ());
+ group_servant->_this ();
+ break;
+
+ case 2:
+ ACE_NEW_THROW_EX (group_servant,
+ Random_Object_Group ("Random group",
+ this->poa_.in ()),
+ CORBA::NO_MEMORY ());
+ group_servant->_this ();
+ break;
+ case 3:
+ ACE_NEW_THROW_EX (group_servant_rep,
+ Random_Object_Group ("Random group",
+ this->poa_.in ()),
+ CORBA::NO_MEMORY ());
+ group_servant_rep->_this ();
+
+ ACE_NEW_THROW_EX (group_servant,
+ RR_Object_Group ("Round Robin group",
+ this->poa_.in ()),
+ CORBA::NO_MEMORY ());
+ group_servant->_this ();
+ break;
+ }
+
+}
+
+
+Object_Group_i::Object_Group_i (const char * id,
+ PortableServer::POA_ptr poa)
+ :poa_ (PortableServer::POA::_duplicate (poa)),
+ member_id_list_ (0),
+ members_ (0),
+ id_ (id),
+ allocator_ (0)
+{
+
+ if (!this->allocator_)
+ {
+ ACE_MMAP_Memory_Pool::OPTIONS options (ACE_DEFAULT_BASE_ADDR);
+ ACE_NEW (this->allocator_,
+ ALLOCATOR ("Mem_Pool",
+ "Mem_Pool",
+ &options));
+ }
+}
+
+
+Object_Group_i::~Object_Group_i (void)
+{
+ // Need to delete all the items from the member_id_list, to avoid
+ // memory leaks.
+ Object_Group_i::ITERATOR iter (*member_id_list_);
+
+ do
+ {
+ delete (iter.next ());
+ } while (iter.advance ());
+
+ delete this->allocator_;
+}
+
+
+PortableServer::POA_ptr
+Object_Group_i::_default_POA (CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return PortableServer::POA::_duplicate (this->poa_);
+}
+
+
+char *
+Object_Group_i::id (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+ return CORBA::string_dup (id_.c_str ());
+}
+
+void
+Object_Group_i::bind (const Load_Balancer::Member & member,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::duplicate_member))
+{
+
+ if (this->members_ == 0)
+ {
+ ACE_CString id = this->id (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ id += server_id_name_bind;
+
+ if (this->allocator_->find (id.c_str (), (void *&)this->members_) == -1)
+ {
+ void *hash_map = this->allocator_->malloc (sizeof (HASH_MAP));
+ ACE_NEW_THROW_EX (this->members_,
+ (hash_map) HASH_MAP (this->allocator_),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK;
+
+ // Bind it in the mem pool with a name
+ if (this->allocator_->bind (id.c_str (),
+ (void *)this->members_) != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Unable to bind \n"));
+
+ }
+ }
+ }
+
+ // Check whether the element already exists..
+ if (this->members_->find (ACE_const_cast (char *,
+ (const char *) member.id),
+ this->allocator_) == 0)
+ ACE_THROW (Load_Balancer::duplicate_member ());
+
+ size_t id_len = ACE_OS::strlen (member.id) + 1;
+ size_t ref_len = ACE_OS::strlen (member.obj) + 1;
+
+ char *mem_alloc = (char *)this->allocator_->malloc (id_len + ref_len);
+
+ if (mem_alloc == 0)
+ ACE_THROW (CORBA::NO_MEMORY ());
+
+ char **id_ptr = (char **)this->allocator_->malloc (sizeof (char *));
+ *id_ptr = mem_alloc;
+ char *ior_ptr = mem_alloc + id_len;
+
+ ACE_OS::strcpy (*id_ptr, member.id);
+ ACE_OS::strcpy (ior_ptr, member.obj);
+
+
+ // Insert new member into <members_> and check for duplicates/failures.
+ int result = this->members_->trybind (*id_ptr,
+ ior_ptr);
+
+ if (result == 1)
+ ACE_THROW (Load_Balancer::duplicate_member ());
+ else if (result == -1)
+ ACE_THROW (CORBA::INTERNAL ());
+
+ // Search the list first from the mem mapp pool and then Insert new
+ // member's id into <member_id_list_>.
+
+ ACE_CString id = dll_name_bind;
+ id += this->id (ACE_TRY_ENV);
+
+
+
+ if (this->allocator_->find (id.c_str (),
+ (void *&)this->member_id_list_)
+ == -1)
+ {
+ void *dll_list = this->allocator_->malloc (sizeof (LIST));
+ ACE_NEW_THROW_EX (this->member_id_list_,
+ (dll_list) LIST (this->allocator_),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK;
+
+ // Bind it in the mem pool with a name
+ if (this->allocator_->bind (id.c_str (),
+ (void *)this->member_id_list_) != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Unable to bind \n"));
+ return;
+ }
+ }
+
+ if (member_id_list_->insert_tail (id_ptr) == 0)
+ ACE_THROW (CORBA::NO_MEMORY ());
+
+ // Theoretically, we should deal with memory failures more
+ // thoroughly. But, practically, the whole system is going to be
+ // hosed anyways ...
+}
+
+void
+Object_Group_i::unbind (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member))
+{
+ // Check whether the this->member_ is NULL
+ if (this->members_ == 0)
+ {
+ ACE_CString id = this->id (ACE_TRY_ENV);
+ id += server_id_name_bind;
+
+ if (this->allocator_->find (id.c_str (),
+ (void *&)this->members_) == -1)
+ {
+ ACE_THROW (Load_Balancer::no_such_member);
+ }
+ }
+ // Check to make sure we have it.
+ if (this->members_->find (ACE_const_cast (char *, id),
+ this->allocator_) == -1)
+ ACE_THROW (Load_Balancer::no_such_member ());
+
+ // Remove all entries for this member.
+ this->members_->unbind (ACE_const_cast(char *, id),
+ this->allocator_);
+
+ if (this->member_id_list_ == 0)
+ {
+ ACE_CString id = dll_name_bind;
+ id += this->id (ACE_TRY_ENV);
+
+ if (this->allocator_->find (id.c_str (),
+ (void *&)this->member_id_list_)
+ == -1)
+ ACE_THROW (Load_Balancer::no_such_member);
+
+ }
+
+
+
+ Object_Group_i::ITERATOR iter (*(this->member_id_list_));
+
+ while (ACE_OS::strcmp (id,*(iter.next ())))
+ iter.advance ();
+
+ this->allocator_->free ((void *) iter.next ());
+
+ iter.remove ();
+}
+
+char *
+Object_Group_i::resolve_with_id (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member))
+{
+ CORBA::String_var ior;
+
+
+ if (this->members_->find (ACE_const_cast (char *,
+ id),
+ ior.out (), this->allocator_) == -1)
+ ACE_THROW_RETURN (Load_Balancer::no_such_member (),
+ 0);
+
+ char *retn_ptr = CORBA::string_dup (ior.in ());
+
+ return retn_ptr;
+
+}
+
+Load_Balancer::Member_ID_List *
+Object_Group_i::members (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ Load_Balancer::Member_ID_List * list = 0;
+
+ this->read_from_memory (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ // Figure out the length of the list.
+ CORBA::ULong len = this->members_->current_size ();
+
+ // Allocate the list of <len> length.
+ ACE_NEW_THROW_EX (list,
+ Load_Balancer::Member_ID_List (len),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK_RETURN (list);
+ list->length (len);
+
+ // Create an iterator for <member_id_list_> to populate the list.
+ Object_Group_i::ITERATOR id_iter (*this->member_id_list_);
+
+ char **item = 0;
+ // Iterate over groups and populate the list.
+ for (CORBA::ULong i = 0; i < len; i++)
+ {
+ this->member_id_list_->get (item);
+ (*list)[i] = *(id_iter.next ());
+ id_iter.advance ();
+ }
+
+ return list;
+}
+
+void
+Object_Group_i::destroy (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Deregister with POA.
+ PortableServer::POA_var poa =
+ this->_default_POA (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ PortableServer::ObjectId_var id =
+ poa->servant_to_id (this,
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ poa->deactivate_object (id.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+void
+Object_Group_i::read_from_memory (CORBA::Environment &ACE_TRY_ENV)
+{
+ // Sanity check needs to be done in all the places
+ ACE_CString id = this->id (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (!this->members_)
+ {
+ id += server_id_name_bind;
+
+ if (this->allocator_->find (id.c_str (),
+ (void *&)this->members_) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Unable to find tha HASH MAP in the MMAP file \n"));
+ }
+ }
+
+
+ if (!this->member_id_list_)
+ {
+ id = dll_name_bind;
+ id += this->id (ACE_TRY_ENV);
+
+ if (this->allocator_->find (id.c_str (),
+ (void *&)this->member_id_list_) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Unable to find tha HASH MAP in the MMAP file \n"));
+ }
+ }
+
+}
+
+
+Random_Object_Group::Random_Object_Group (const char *id,
+ PortableServer::POA_ptr poa)
+ : Object_Group_i (id, poa)
+{
+ // Seed the random number generator.
+ ACE_OS::srand (ACE_OS::time ());
+}
+
+char *
+Random_Object_Group::resolve (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member))
+{
+
+ this->read_from_memory (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ size_t group_size = this->members_->current_size ();
+ if (group_size == 0)
+ ACE_THROW_RETURN (Load_Balancer::no_such_member (),
+ 0);
+
+ // Generate random number in the range [0, group_size - 1]
+ size_t member = ACE_OS::rand() % group_size;
+
+ // Get the id of the member to return to the client.
+ char **id = 0;
+ this->member_id_list_->get (id, member);
+ ACE_DEBUG ((LM_DEBUG, "In Random Group resolved to: %s\n",
+ *id));
+
+ // Return the object reference corresponding to the found id to the
+ // client.
+ char *objref = 0;
+ this->members_->find (*id,
+ objref,
+ this->allocator_);
+ char *string_ptr = CORBA::string_dup (objref);
+ return string_ptr;
+}
+
+RR_Object_Group::RR_Object_Group (const char *id,
+ PortableServer::POA_ptr poa)
+ : Object_Group_i (id, poa),
+ next_ (0)
+{
+}
+
+char *
+RR_Object_Group::resolve (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member))
+{
+ char *objref = 0;
+
+ this->read_from_memory (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ size_t group_size = this->members_->current_size ();
+ if (group_size == 0)
+ ACE_THROW_RETURN (Load_Balancer::no_such_member (),
+ 0);
+
+ // Get the id of the member to return to the client.
+ char **id;
+ this->member_id_list_->get (id, next_);
+ ACE_DEBUG ((LM_DEBUG,
+ "In RR Group resolved to: %s\n", *id));
+
+ // Adjust <next_> for the next invocation.
+ next_ = (next_ + 1) % group_size;
+
+
+ // Return the object reference corresponding to the found id to the client.
+ if (this->members_->find (*id,
+ objref,
+ this->allocator_) == -1)
+ ACE_THROW_RETURN (CORBA::INTERNAL (),
+ 0);
+
+ char *retn_ptr = CORBA::string_dup (objref);
+
+ return retn_ptr;
+}
+
+void
+RR_Object_Group::unbind (const char *id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member))
+{
+
+ if (this->members_ == 0)
+ {
+ ACE_CString id = this->id (ACE_TRY_ENV);
+ id += server_id_name_bind;
+
+ if (this->allocator_->find (id.c_str (),
+ (void *&)this->members_) == -1)
+ {
+ ACE_THROW (Load_Balancer::no_such_member);
+ }
+ }
+
+ // Check to make sure we have it.
+ if (this->members_->find (ACE_const_cast (char *,id),
+ this->allocator_) == -1)
+ ACE_THROW (Load_Balancer::no_such_member ());
+
+ // Remove all entries for this member.
+ this->members_->unbind (ACE_const_cast (char *, id),
+ this->allocator_);
+
+ // As we remove the id from the <member_id_list>, we note the
+ // position of the id in the list.
+ if (this->member_id_list_ == 0)
+ {
+ ACE_CString id = dll_name_bind;
+ id += this->id (ACE_TRY_ENV);
+
+ if (this->allocator_->find (id.c_str (),
+ (void *&)this->member_id_list_)
+ == -1)
+ ACE_THROW (Load_Balancer::no_such_member);
+
+ }
+
+ size_t position = 0;
+ Object_Group_i::ITERATOR iter (*member_id_list_);
+ while (ACE_OS::strcmp (id ,*(iter.next ())))
+ {
+ iter.advance ();
+ position++;
+ }
+ this->allocator_->free (iter.next ());
+ iter.remove ();
+
+ int curr_size = this->members_->current_size ();
+
+ // Update <next_> if necessary to reflect the deletion.
+ if (position < next_)
+ this->next_--;
+ else if (curr_size == 0)
+ this->next_ = 0;
+ else if (position == next_)
+ this->next_ = next_ % (this->members_->current_size ());
+}
+
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+template class ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_Memory_Pool, ACE_Thread_Mutex> >;
+template class ACE_Malloc<ACE_MMAP_Memory_Pool, ACE_Thread_Mutex>;
+template class ACE_Hash_Map_With_Allocator<char *, char *>;
+template class ACE_Hash_Map_Iterator_Base_Ex<char *, Load_Balancer::Object_Group_var, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Iterator<char *, char *, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Iterator_Base_Ex<char *, char *, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, CORBA_Object_var, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Iterator_Ex<char *, char *, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Reverse_Iterator_Ex<char *, char *, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Reverse_Iterator_Ex<char *, CORBA_Object_var, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Manager_Ex<char *, char *, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Manager<char *, char *, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Manager<ACE_CString, CORBA_Object_var, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Manager_Ex<ACE_CString, CORBA_Object_var,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Manager<char *, char *, ACE_Null_Mutex>;
+template class ACE_Hash<char *>;
+template class ACE_Equal_To<char *>;
+template class ACE_Hash_Map_Entry<char *, Load_Balancer::Object_Group_var>;
+template class ACE_Hash_Map_Entry<ACE_CString, CORBA_Object_var>;
+template class ACE_Hash_Map_Entry<char *, char *>;
+template class ACE_Hash_Map_Iterator_Base_Ex<char *, CORBA::Object_var, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Iterator<char *, CORBA::Object_var, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Iterator_Ex<char *, CORBA::Object_var, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Manager_Ex<char *, CORBA::Object_var, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Manager<char *, CORBA::Object_var, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Entry<char *, CORBA::Object_var>;
+template class ACE_Hash_Map_Entry<char *, char *>;
+
+template class ACE_DLList<char *>;
+template class ACE_DLList_Iterator<char *>;
+
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+#pragma instantiate ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_Memory_Pool, ACE_Thread_Mutex> >
+#pragma instantaite ACE_Malloc<ACE_MMAP_Memory_Pool, ACE_Thread_Mutex>
+#pragma instantiate ACE_Hash_Map_With_Allocator<char *, char *>
+#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<char *, char *, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Iterator<char *, char *, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Iterator_Ex<char *, char *, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<char *, char *, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<char *, CORBA_Object_var, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Manager_Ex<char *, char *, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Manager<char *, char *, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash<char *>
+#pragma instantiate ACE_Equal_To<char *>
+#pragma instantiate ACE_Hash_Map_Entry<char *, char *>
+
+#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<char *, CORBA::Object_var, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Iterator<char *, CORBA::Object_var, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Iterator_Ex<char *, CORBA::Object_var, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Manager_Ex<char *, CORBA::Object_var, ACE_Hash<char *>, ACE_Equal_To<char *>, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Manager<char *, CORBA::Object_var, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Entry<char *, CORBA::Object_var>
+
+#pragma instantiate ACE_DLList<char *>
+#pragma instantiate ACE_DLList_Iterator<char *>
+
+
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/examples/Load_Balancing_persistent/Load_Balancer_i.h b/TAO/examples/Load_Balancing_persistent/Load_Balancer_i.h
new file mode 100755
index 00000000000..7b95fa3063e
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Load_Balancer_i.h
@@ -0,0 +1,353 @@
+/* -*- C++ -*- */
+// $Id$
+// ============================================================================
+//
+// = FILENAME
+// Load_Balancer_i.h
+//
+// = DESCRIPTION
+// Defines classes that implement interfaces in Load_Balancer.idl
+//
+// = AUTHOR
+// Marina Spivak <marina@cs.wustl.edu>
+// with modifications by Bala Natarajan <bala@cs.wustl.edu>
+// ============================================================================
+
+#ifndef LOAD_BALANCER_I_H_
+#define LOAD_BALANCER_I_H_
+
+#include "Load_BalancerS.h"
+#include "ace/Hash_Map_With_Allocator_T.h"
+#include "ace/SString.h"
+#include "ace/Synch.h"
+#include "ace/Containers.h"
+#include "ace/Stats.h"
+#include "ace/High_Res_Timer.h"
+
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+// This is to remove "inherits via dominance" warnings from MSVC.
+#if defined (_MSC_VER)
+# pragma warning (disable : 4250)
+#endif /* _MSC_VER */
+
+typedef ACE_Allocator_Adapter <ACE_Malloc<ACE_MMAP_MEMORY_POOL,
+ ACE_SYNCH_MUTEX> > ALLOCATOR;
+
+typedef ACE_Hash_Map_With_Allocator<char *, char *> HASH_MAP;
+
+class Object_Group_Factory_i :
+ public virtual POA_Load_Balancer::Object_Group_Factory,
+ public virtual PortableServer::RefCountServantBase
+{
+ // = TITLE
+ // This class implements Load_Balancer::Object_Group_Factory idl
+ // interface.
+ //
+ // = DESCRIPTION
+ // This implementation uses two <ACE_Hash_Map_Manager>s
+ // to store <Group_ID> to <Object_Group> associations for all
+ // load balancing groups created by this factory (one map keeps
+ // track of all random groups, and the other keeps track of all
+ // round robin groups).
+ //
+public:
+
+ // = Initialization and termination methods.
+
+ Object_Group_Factory_i (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa);
+ // Constructor.
+
+ ~Object_Group_Factory_i (void);
+ // Destructor.
+
+
+ PortableServer::POA_ptr _default_POA (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ // Method for the POA that will return the persistent POA_ptr stored
+ // in here..
+
+ // = Load_Balancer::Object_Group_Factory idl methods.
+
+ Load_Balancer::Object_Group_ptr make_round_robin (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::duplicate_group));
+ // Creates an <Object_Group> that resolves requests for arbitrary
+ // members in round robin order. If an <Object_Group>, of any
+ // type, with Group_ID <id> has already been created by this
+ // factory, and hasn't been destroyed, a <duplicate_group>
+ // exception is thrown.
+
+ void unbind_round_robin (const char *id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_group));
+
+
+ Load_Balancer::Object_Group_ptr make_random (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::duplicate_group));
+ // Creates an <Object_Group> that resolves requests for arbitrary
+ // members in random order. If an <Object_Group>, of any
+ // type, with Group_ID <id> has already been created by this
+ // factory, and hasn't been destroyed, a <duplicate_group>
+ // exception is thrown.
+
+ void unbind_random (const char *id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_group));
+
+ Load_Balancer::Object_Group_ptr resolve (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_group));
+ // Locates and returns an <Object_Group IOR> by its <Group_ID>. If
+ // no <Object_Group> has <Group_ID> of <id>, throw a
+ // <no_such_group> exception.
+
+ Load_Balancer::Group_List * round_robin_groups (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ // Lists all the round robin <Object_Group>s which were created
+ // by this factory, and haven't been destroyed yet, i.e., return
+ // a sequence of <Group_ID>s of all existing round robin
+ // <Object_Group>s created by this factory.
+
+ Load_Balancer::Group_List * random_groups (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ // Lists all the random <Object_Group>s which were created
+ // by this factory, and haven't been destroyed yet, i.e., return
+ // a sequence of <Group_ID>s of all existing random
+ // <Object_Group>s created by this factory.
+
+private:
+
+ CORBA::ORB_var orb_;
+ // Our ORB
+
+ PortableServer::POA_var poa_;
+ // Our POA
+
+ // = Helper methods.
+
+ Load_Balancer::Object_Group_ptr make_group (int random,
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::duplicate_group));
+ // This function factors out common code in <make_round_robin> and
+ // <make_random>. Creates a random <Object_Group> if <random> parameter is
+ // set to 1 and round robin <Object_Group> if it is 0.
+
+ Load_Balancer::Group_List * list_groups (int random,
+ CORBA::Environment &ACE_TRY_ENV);
+ // This function factors out common code in <random_groups> and
+ // <round_robin_groups>. Returns a sequence of its random
+ // groups if <random> parameter is set to 1 and a sequence of its
+ // round robin groups if it is 0.
+
+ void update_flags (int random,
+ CORBA::Environment &ACE_TRY_ENV);
+ // The helper that updates the vlaue of the variable flags_
+
+ void update_objects (CORBA::Environment &ACE_TRY_ENV);
+ // This rolls back the status of the objects in the POA if the
+ // service had failed..
+
+ HASH_MAP *random_groups_;
+ // Map containing all random <Object_Group>s created by this factory.
+
+ HASH_MAP *rr_groups_;
+ // Map containing all round robin <Object_Group>s created by this factory.
+
+ ALLOCATOR *mem_pool_;
+ // Memory pool that will have the data
+
+ CORBA::Short *flags_;
+ // This would be kind of a hack.. As I am not able to think of
+ // anything at present let us live with this.. OK.. Here is how it
+ // works.. This value will be stored in the MMAP file. If the value
+ // is 1 then the Round Robin group object is registered with the
+ // Services POA. If the value is 2 then the Random group object is
+ // registered with the POA. If the value is 3 both of them are
+ // registered with the POA.. The initial value would be 0 when this
+ // object initialises and binded as "FLAGS"..
+
+ ACE_Throughput_Stats throughput_;
+
+};
+
+class Object_Group_i : public virtual POA_Load_Balancer::Object_Group,
+ public virtual PortableServer::RefCountServantBase
+
+{
+ // = TITLE
+ // This abstract class partially implements
+ // Load_Balancer::Object_Group idl interface.
+ //
+ // = DESCRIPTION
+ // <Resolve> is the only abstract method - subclasses should
+ // define it in order to implement an appropriate load balancing
+ // policy. Other methods can be overridden as needed. This class
+ // factors out code common to <Object_Group> implementations with
+ // different load balancing policies.
+ //
+public:
+
+ // = Initialization and termination methods.
+
+ Object_Group_i (const char * id,
+ PortableServer::POA_ptr poa);
+ // Constructor.
+
+ ~Object_Group_i (void);
+ // Destructor.
+
+ // Persistent POA
+ // Method for the POA
+ PortableServer::POA_ptr _default_POA (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // = Load_Balancer::Object_Group idl methods.
+
+ char * id (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ // Get group's id.
+
+ void bind (const Load_Balancer::Member & member,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::duplicate_member));
+ // Adds a new <member> to the <Object_Group>. Note that each
+ // <Member_ID> in an <Object_Group> must be unique. If the
+ // group already contains a member with the same <Member_ID>, a
+ // <duplicate_member> exceptions is thrown.
+
+ void unbind (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member));
+ // Removes a member with the specified <Member_ID> from the
+ // <Object_Group>. If none of the group's members have a
+ // Member_ID of <id>, <no_such_member> exception is thrown.
+
+ char * resolve (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member)) = 0;
+ // Returns a member object from this <Object_Group> in accordance with
+ // load balancing policy it implements, i.e., ``random'' or
+ // ``round robin.'' If the group contains no members, <no_such_member>
+ // exception is thrown.
+
+ char * resolve_with_id (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member));
+ // Returns an object with the specified <Member_ID>. If this
+ // <Object_Group> contains no members with the specified
+ // <Member_ID>, <no_such_member> exception is thrown.
+
+ Load_Balancer::Member_ID_List * members (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ // Return a sequence of <Member_ID>s of all of its members.
+
+ void destroy (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ // Cleanup the resources associated with this <Object_Group>.
+ // Subsequent calls to this <Object_Group> should fail, and its
+ // <id> should become available. <Object_Group_Factory>
+ // should no longer list this <Object_Group>.
+
+protected:
+
+ void read_from_memory (CORBA::Environment &);
+ // This will replenish all the pointers that could have been lost
+ // because of failure
+
+ PortableServer::POA_var poa_;
+ // Our POA
+
+ typedef ACE_DLList<char *> LIST;
+ typedef ACE_DLList_Iterator<char *> ITERATOR;
+ // Typedefs for ease of use.
+
+ LIST *member_id_list_;
+ // List of ids of all the members of this group.
+
+ HASH_MAP *members_;
+ // Mapping of member_id to obj for all the members of this group.
+
+ // Note, we store information redundantly in this implementation,
+ // i.e., both <member_id_list_> and <members_> store member ids.
+ // However, this redundancy eases/speeds up the implementation of
+ // certain operations. <member_id_list_> is useful for implementing
+ // variations of <resolve> method to implement different policies.
+ // <members_> is useful for doing id-based look-up.
+
+ ACE_CString id_;
+ // This group's id.
+
+ ALLOCATOR *allocator_;
+ // Pointer to the location where I can allocate memory...
+};
+
+
+class Random_Object_Group : public Object_Group_i
+{
+ // = TITLE
+ // This class implements <Object_Group> idl interface with the
+ // random policy for <resolve>.
+ //
+public:
+ Random_Object_Group (const char *id,
+ PortableServer::POA_ptr poa);
+ // Constructor.
+
+ char * resolve (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member));
+ // Returns a member object from this <Object_Group> in accordance with
+ // the "random" load balancing policy.
+
+};
+
+class RR_Object_Group: public Object_Group_i
+{
+ // = TITLE
+ // This class implements <Object_Group> idl interface with the
+ // round robin policy for <resolve>.
+ //
+public:
+
+ RR_Object_Group (const char *id,
+ PortableServer::POA_ptr poa);
+ // Constructor.
+
+ void unbind (const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member));
+ // We need to override the implementation of <unbind> from
+ // Object_Group_i to make sure <resolve>
+ // works correctly.
+
+ char * resolve (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Load_Balancer::no_such_member));
+ // Returns a member object from this <Object_Group> in accordance with
+ // the "round robin" load balancing policy.
+
+private:
+
+ size_t next_;
+ // Index into the Object_Group_i::member_id_list_: keeps track of
+ // the member_id to return on the next invocation of <resolve>.
+};
+
+#endif /* LOAD_BALANCER_I_H_ */
diff --git a/TAO/examples/Load_Balancing_persistent/Load_Balancing_Service.cpp b/TAO/examples/Load_Balancing_persistent/Load_Balancing_Service.cpp
new file mode 100755
index 00000000000..3bfdce3b8e0
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Load_Balancing_Service.cpp
@@ -0,0 +1,201 @@
+// $Id$
+// ============================================================================
+//
+// = LIBRARY
+// TAO/examples/Load_Balancing
+//
+// = FILENAME
+// Load_Balancing_Service.cpp
+//
+// = AUTHOR
+// Marina Spivak <marina@cs.wustl.edu>
+//
+// ============================================================================
+
+#include "Load_Balancing_Service.h"
+#include "ace/Get_Opt.h"
+#include "Load_Balancer_i.h"
+
+Load_Balancing_Service::Load_Balancing_Service (void)
+ : ior_output_file_ (0)
+{
+}
+
+int
+Load_Balancing_Service::parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "do:");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'd': // debug flag.
+ TAO_debug_level++;
+ break;
+ case 'o': // outputs object ior to the specified file.
+ this->ior_output_file_ =
+ ACE_OS::fopen (get_opts.optarg, "w");
+
+ if (this->ior_output_file_ == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to open %s for writing: %p\n",
+ get_opts.optarg), -1);
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s"
+ " [-d]"
+ " [-o] <ior_output_file>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+
+ // Indicates successful parsing of command line.
+ return 0;
+}
+
+int
+Load_Balancing_Service::init (int argc,
+ char* argv[])
+{
+ int result;
+ CORBA::String_var ior;
+
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ result = this->orb_manager_.init (argc,
+ argv,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ if (result == -1)
+ return result;
+
+ // Check the non-ORB arguments.
+ result = this->parse_args (argc, argv);
+ if (result < 0)
+ return result;
+
+
+ CORBA::PolicyList policies (2);
+ policies.length (2);
+
+ // Lifespan policy
+ policies[0] =
+ this->orb_manager_.root_poa()->create_lifespan_policy (PortableServer::PERSISTENT,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ policies[1] =
+ this->orb_manager_.root_poa()->create_implicit_activation_policy (PortableServer::IMPLICIT_ACTIVATION,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ PortableServer::POA_var persistent_POA =
+ this->orb_manager_.root_poa()->create_POA ("persistent",
+ this->orb_manager_.poa_manager (),
+ policies,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+
+ // Destroy policy objects
+ for (CORBA::ULong i = 0;
+ i < policies.length ();
+ ++i)
+ {
+ policies[i]->destroy (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+
+ // Create, ref. count, and activate the servant.
+ Object_Group_Factory_i * factory_servant;
+ ACE_NEW_RETURN (factory_servant,
+ Object_Group_Factory_i (this->orb_manager_.orb (),
+ persistent_POA.in ()),
+ -1);
+
+ // Activate the POA manager
+ //PortableServer::ServantBase_var s = factory_servant;
+ this->orb_manager_.activate_poa_manager (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ CORBA::Object_var objref = factory_servant->_this ();
+
+ ior = this->orb_manager_.orb ()->object_to_string (objref.in (),
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ if (ior.in () == 0)
+ return -1;
+ else if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "Object Group Factory ior: %s\n",
+ ior.in ()));
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Load_Balancing_Service::init");
+ return -1;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (-1);
+
+ if (this->ior_output_file_ != 0)
+ {
+ ACE_OS::fprintf (this->ior_output_file_,
+ "%s",
+ ior.in ());
+ ACE_OS::fclose (this->ior_output_file_);
+ }
+ return 0;
+}
+
+
+
+int
+Load_Balancing_Service::run (CORBA::Environment &ACE_TRY_ENV)
+{
+ int result;
+
+ result = this->orb_manager_.run (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+
+ return result;
+}
+
+Load_Balancing_Service::~Load_Balancing_Service (void)
+{
+}
+
+int
+main (int argc, char *argv[])
+{
+ int result = 0;
+ Load_Balancing_Service factory;
+
+ if (factory.init (argc, argv) == -1)
+ return 1;
+
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ result = factory.run (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Load_Balancing_Service");
+ return 1;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (1);
+
+ if (result == -1)
+ return 1;
+ else
+ return 0;
+}
diff --git a/TAO/examples/Load_Balancing_persistent/Load_Balancing_Service.h b/TAO/examples/Load_Balancing_persistent/Load_Balancing_Service.h
new file mode 100755
index 00000000000..0bb877f3bc2
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Load_Balancing_Service.h
@@ -0,0 +1,61 @@
+// $Id$
+// -*- C++ -*-
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/examples/Load_Balancing
+//
+// = FILENAME
+// Load_Balancing_Service.h
+//
+// = DESCRIPTION
+// Driver for Load Balancing service.
+//
+// = AUTHORS
+// Marina Spivak <marina@cs.wustl.edu>
+// with modifications by Bala Natarajan <bala@cs.wustl.edu>
+// ============================================================================
+
+#ifndef LOAD_BALANCING_SERVICE_H_
+#define LOAD_BALANCING_SERVICE_H_
+
+#include "tao/TAO.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class Load_Balancing_Service
+{
+ // =TITLE
+ // Server, which creates and initializes a
+ // <Load_Balancer::Object_Group_Factory>
+ // object, and runs the orb loop.
+public:
+
+ Load_Balancing_Service (void);
+ // Default constructor.
+
+ ~Load_Balancing_Service (void);
+ // Destructor.
+
+ int init (int argc, char *argv[]);
+ // Initialize the <Load_Balancing_Service>: initializes the ORB, parses
+ // arguments, creates a servant ...
+
+ int run (CORBA::Environment &ACE_TRY_ENV);
+ // Run the server.
+
+private:
+ int parse_args (int argc, char *argv[]);
+ // Parses the commandline arguments.
+
+ TAO_ORB_Manager orb_manager_;
+ // The ORB manager.
+
+ FILE *ior_output_file_;
+ // File to output the <Object_Group_Factory> IOR.
+};
+
+#endif /* LOAD_BALANCING_SERVICE_H_ */
diff --git a/TAO/examples/Load_Balancing_persistent/Makefile b/TAO/examples/Load_Balancing_persistent/Makefile
new file mode 100755
index 00000000000..aa4ffcc3fe0
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/Makefile
@@ -0,0 +1,2595 @@
+# $Id$
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+ifndef TAO_ROOT
+ TAO_ROOT = $(ACE_ROOT)/TAO
+endif
+
+override TAO_IDLFLAGS += -Ge 1
+LDLIBS = -lTAO
+
+IDL_SRC = \
+ Load_BalancerC.cpp \
+ Load_BalancerS.cpp \
+ IdentityC.cpp \
+ IdentityS.cpp
+
+PROG_SRCS = \
+ Load_Balancing_Service.cpp \
+ Identity_Server.cpp \
+ Identity_Client.cpp \
+ Load_Balancer_i.cpp \
+ Identity_i.cpp
+
+LSRC = $(IDL_SRC) $(PROG_SRCS)
+
+CLIENT_OBJS = Identity_Client.o \
+ IdentityC.o \
+ Load_BalancerC.o
+
+SERVER_OBJS = Identity_Server.o \
+ Identity_i.o \
+ IdentityC.o \
+ IdentityS.o \
+ Load_BalancerC.o
+
+LOAD_BALANCER_OBJS = Load_Balancer_i.o \
+ Load_BalancerC.o \
+ Load_BalancerS.o \
+ Load_Balancing_Service.o
+
+BIN2 = load_balancer server client
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
+
+ifneq (1,$(repo))
+ #### ld on Linux (RedHat 6.0) with egcs 2.91.66 seg faults with repo
+ #### when trying to link load_balancer.
+ BIN = $(BIN2)
+endif # ! repo
+
+include $(ACE_ROOT)/include/makeinclude/macros.GNU
+include $(TAO_ROOT)/rules.tao.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
+include $(TAO_ROOT)/taoconfig.mk
+
+#----------------------------------------------------------------------------
+# Local targets
+#----------------------------------------------------------------------------
+
+
+LDFLAGS += -L$(TAO_ROOT)/tao
+CPPFLAGS += -I$(TAO_ROOT)
+
+realclean: clean
+ -$(RM) *C.* *S.* *S_T.*
+
+.PRECIOUS: $(IDL_SRC)
+
+load_balancer: $(addprefix $(VDIR),$(LOAD_BALANCER_OBJS))
+ $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
+
+server: $(addprefix $(VDIR),$(SERVER_OBJS))
+ $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
+
+client: $(addprefix $(VDIR),$(CLIENT_OBJS))
+ $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
+
+#----------------------------------------------------------------------------
+# Dependencies
+#----------------------------------------------------------------------------
+
+# DO NOT DELETE THIS LINE -- g++dep uses it.
+# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+
+.obj/Load_BalancerC.o .obj/Load_BalancerC.so .shobj/Load_BalancerC.o .shobj/Load_BalancerC.so: Load_BalancerC.cpp Load_BalancerC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.i \
+ $(ACE_ROOT)/ace/Based_Pointer_T.cpp \
+ $(ACE_ROOT)/ace/Based_Pointer_Repository.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i Load_BalancerC.i
+.obj/Load_BalancerS.o .obj/Load_BalancerS.so .shobj/Load_BalancerS.o .shobj/Load_BalancerS.so: Load_BalancerS.cpp Load_BalancerS.h Load_BalancerC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.i \
+ $(ACE_ROOT)/ace/Based_Pointer_T.cpp \
+ $(ACE_ROOT)/ace/Based_Pointer_Repository.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i Load_BalancerC.i \
+ Load_BalancerS_T.h Load_BalancerS_T.i Load_BalancerS_T.cpp \
+ Load_BalancerS.i
+.obj/IdentityC.o .obj/IdentityC.so .shobj/IdentityC.o .shobj/IdentityC.so: IdentityC.cpp IdentityC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.i \
+ $(ACE_ROOT)/ace/Based_Pointer_T.cpp \
+ $(ACE_ROOT)/ace/Based_Pointer_Repository.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i IdentityC.i
+.obj/IdentityS.o .obj/IdentityS.so .shobj/IdentityS.o .shobj/IdentityS.so: IdentityS.cpp IdentityS.h IdentityC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.i \
+ $(ACE_ROOT)/ace/Based_Pointer_T.cpp \
+ $(ACE_ROOT)/ace/Based_Pointer_Repository.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i IdentityC.i \
+ IdentityS_T.h IdentityS_T.i IdentityS_T.cpp IdentityS.i
+.obj/Load_Balancing_Service.o .obj/Load_Balancing_Service.so .shobj/Load_Balancing_Service.o .shobj/Load_Balancing_Service.so: Load_Balancing_Service.cpp \
+ Load_Balancing_Service.h \
+ $(TAO_ROOT)/tao/TAO.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.i \
+ $(ACE_ROOT)/ace/Based_Pointer_T.cpp \
+ $(ACE_ROOT)/ace/Based_Pointer_Repository.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i Load_Balancer_i.h \
+ Load_BalancerS.h Load_BalancerC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i Load_BalancerC.i \
+ Load_BalancerS_T.h Load_BalancerS_T.i Load_BalancerS_T.cpp \
+ Load_BalancerS.i \
+ $(ACE_ROOT)/ace/Hash_Map_With_Allocator_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_With_Allocator_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_With_Allocator_T.cpp \
+ $(ACE_ROOT)/ace/Stats.h \
+ $(ACE_ROOT)/ace/Stats.i \
+ $(ACE_ROOT)/ace/High_Res_Timer.h \
+ $(ACE_ROOT)/ace/High_Res_Timer.i
+.obj/Identity_Server.o .obj/Identity_Server.so .shobj/Identity_Server.o .shobj/Identity_Server.so: Identity_Server.cpp Identity_Server.h \
+ $(TAO_ROOT)/tao/TAO.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.i \
+ $(ACE_ROOT)/ace/Based_Pointer_T.cpp \
+ $(ACE_ROOT)/ace/Based_Pointer_Repository.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i Load_BalancerC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i Load_BalancerC.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i Identity_i.h \
+ IdentityS.h IdentityC.h IdentityC.i IdentityS_T.h IdentityS_T.i \
+ IdentityS_T.cpp IdentityS.i
+.obj/Identity_Client.o .obj/Identity_Client.so .shobj/Identity_Client.o .shobj/Identity_Client.so: Identity_Client.cpp \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.i Identity_Client.h \
+ $(TAO_ROOT)/tao/TAO.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.i \
+ $(ACE_ROOT)/ace/Based_Pointer_T.cpp \
+ $(ACE_ROOT)/ace/Based_Pointer_Repository.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i IdentityC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i IdentityC.i \
+ Load_BalancerC.h Load_BalancerC.i \
+ $(ACE_ROOT)/ace/High_Res_Timer.h \
+ $(ACE_ROOT)/ace/High_Res_Timer.i \
+ $(ACE_ROOT)/ace/Stats.h \
+ $(ACE_ROOT)/ace/Stats.i
+.obj/Load_Balancer_i.o .obj/Load_Balancer_i.so .shobj/Load_Balancer_i.o .shobj/Load_Balancer_i.so: Load_Balancer_i.cpp Load_Balancer_i.h \
+ Load_BalancerS.h Load_BalancerC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.i \
+ $(ACE_ROOT)/ace/Based_Pointer_T.cpp \
+ $(ACE_ROOT)/ace/Based_Pointer_Repository.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i Load_BalancerC.i \
+ Load_BalancerS_T.h Load_BalancerS_T.i Load_BalancerS_T.cpp \
+ Load_BalancerS.i \
+ $(ACE_ROOT)/ace/Hash_Map_With_Allocator_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_With_Allocator_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_With_Allocator_T.cpp \
+ $(ACE_ROOT)/ace/Stats.h \
+ $(ACE_ROOT)/ace/Stats.i \
+ $(ACE_ROOT)/ace/High_Res_Timer.h \
+ $(ACE_ROOT)/ace/High_Res_Timer.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.h \
+ $(ACE_ROOT)/ace/Auto_Ptr.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.cpp
+.obj/Identity_i.o .obj/Identity_i.so .shobj/Identity_i.o .shobj/Identity_i.so: Identity_i.cpp Identity_i.h IdentityS.h IdentityC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.i \
+ $(ACE_ROOT)/ace/Based_Pointer_T.cpp \
+ $(ACE_ROOT)/ace/Based_Pointer_Repository.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i IdentityC.i \
+ IdentityS_T.h IdentityS_T.i IdentityS_T.cpp IdentityS.i
+
+# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/examples/Load_Balancing_persistent/README b/TAO/examples/Load_Balancing_persistent/README
new file mode 100755
index 00000000000..e6326f74eb6
--- /dev/null
+++ b/TAO/examples/Load_Balancing_persistent/README
@@ -0,0 +1,29 @@
+AIM:
+---
+This is an extension of the Load_Balancing_Service example in
+$TAO_ROOT/examples/Load_Balancing. The aim of this example is to
+preserve the state of the service. THe functionality is not much
+diferent from that of the normal Load_Balancing_Service.
+
+Usage:
+-----
+The service is started as follows
+
+$./load_balancer -ORBEndPoint iiop://localhost:10016 -o filename
+
+The server is started as follows
+
+$./server -i file://filename -ORBEndPoint iiop://localhost:10007
+
+and the client is started as follows
+
+$./client -i file://filename [-r]
+
+Now, the user can kill the service & restart the service. After
+reinvocation of the service, if the client is started again, it
+resolves the client works fine.
+
+PS:
+The code contains some MACROS like DOORS_MEASURE_STATS. They have been
+added for the performance measurements that were performed on this
+application.