diff options
author | bala <balanatarajan@users.noreply.github.com> | 1999-10-31 00:43:58 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 1999-10-31 00:43:58 +0000 |
commit | ff049f869bc9828b86ea7e8fd3635df527ea6913 (patch) | |
tree | e7eef11bba5f55aefe73159c29219fc899fd83a8 /TAO | |
parent | 20ae7753ee54c4cf0ea8e2bd548a7b6f8bcc1ce9 (diff) | |
download | ATCD-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-99c | 21 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Identity.idl | 22 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Identity_Client.cpp | 272 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Identity_Client.h | 84 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Identity_Server.cpp | 314 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Identity_Server.h | 91 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Identity_i.cpp | 43 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Identity_i.h | 59 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Load_Balancer.idl | 172 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Load_Balancer_i.cpp | 1079 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Load_Balancer_i.h | 353 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Load_Balancing_Service.cpp | 201 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Load_Balancing_Service.h | 61 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/Makefile | 2595 | ||||
-rwxr-xr-x | TAO/examples/Load_Balancing_persistent/README | 29 |
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. |