diff options
Diffstat (limited to 'TAO/orbsvcs')
35 files changed, 487 insertions, 82 deletions
diff --git a/TAO/orbsvcs/examples/Makefile.bor b/TAO/orbsvcs/examples/Makefile.bor new file mode 100644 index 00000000000..7d71c481151 --- /dev/null +++ b/TAO/orbsvcs/examples/Makefile.bor @@ -0,0 +1,9 @@ +# +# Makefile for building orbsvcs examples +# + +DIRS = \ + RtEC \ + Security + +!include <$(ACE_ROOT)\include\makeinclude\recurse.bor> diff --git a/TAO/orbsvcs/examples/RtEC/Makefile.bor b/TAO/orbsvcs/examples/RtEC/Makefile.bor new file mode 100644 index 00000000000..7a366c1b5d1 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/Makefile.bor @@ -0,0 +1,8 @@ +# +# Makefile for building orbsvcs RtEC examples +# + +DIRS = \ + Simple + +!include <$(ACE_ROOT)\include\makeinclude\recurse.bor> diff --git a/TAO/orbsvcs/examples/RtEC/Simple/Consumer.cpp b/TAO/orbsvcs/examples/RtEC/Simple/Consumer.cpp index 191503bfb3d..ca7c00abed3 100644 --- a/TAO/orbsvcs/examples/RtEC/Simple/Consumer.cpp +++ b/TAO/orbsvcs/examples/RtEC/Simple/Consumer.cpp @@ -3,6 +3,7 @@ #include "Consumer.h" #include "orbsvcs/RtecEventChannelAdminC.h" #include "orbsvcs/Event_Service_Constants.h" +#include "orbsvcs/CosNamingC.h" ACE_RCSID(EC_Examples, Consumer, "$Id$") @@ -36,13 +37,6 @@ Consumer::run (int argc, char* argv[]) // the run() method. this->orb_ = orb.in (); - if (argc <= 1) - { - ACE_ERROR ((LM_ERROR, - "Usage: Consumer <event_channel_ior>\n")); - return 1; - } - CORBA::Object_var object = orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -55,15 +49,30 @@ Consumer::run (int argc, char* argv[]) poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; - // Obtain the event channel, we could use a naming service, a - // command line argument or resolve_initial_references(), but - // this is simpler... - object = - orb->string_to_object (argv[1] ACE_ENV_ARG_PARAMETER); + // Obtain the event channel from the naming service + CORBA::Object_var naming_obj = + orb->resolve_initial_references ("NameService" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (naming_obj.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to get the Naming Service.\n"), + 1); + + CosNaming::NamingContext_var naming_context = + CosNaming::NamingContext::_narrow (naming_obj.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CosNaming::Name name (1); + name.length (1); + name[0].id = CORBA::string_dup ("EventService"); + + CORBA::Object_var ec_obj = + naming_context->resolve (name ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; RtecEventChannelAdmin::EventChannel_var event_channel = - RtecEventChannelAdmin::EventChannel::_narrow (object.in () + RtecEventChannelAdmin::EventChannel::_narrow (ec_obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; diff --git a/TAO/orbsvcs/examples/RtEC/Simple/EC_Simple_Consumer.bor b/TAO/orbsvcs/examples/RtEC/Simple/EC_Simple_Consumer.bor new file mode 100644 index 00000000000..e6d11077a5c --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/Simple/EC_Simple_Consumer.bor @@ -0,0 +1,34 @@ +# +# $Id$ +# + +NAME = Consumer + +OBJFILES = \ + $(OBJDIR)\Consumer.obj + +CFLAGS = \ + $(TAO_RTSCHED_CFLAGS) \ + $(TAO_RTEVENT_CFLAGS) \ + $(TAO_NAMING_CFLAGS) \ + $(TAO_SVC_UTILS_CFLAGS) \ + $(TAO_IORTABLE_CFLAGS) \ + $(TAO_PORTABLESERVER_CFLAGS) \ + $(TAO_MESSAGING_CFLAGS) \ + $(TAO_CFLAGS) \ + $(ACE_CFLAGS) + +LIBFILES = \ + $(TAO_RTSCHED_LIB) \ + $(TAO_RTEVENT_LIB) \ + $(TAO_NAMING_LIB) \ + $(TAO_SVC_UTILS_LIB) \ + $(TAO_IORTABLE_LIB) \ + $(TAO_PORTABLESERVER_LIB) \ + $(TAO_MESSAGING_LIB) \ + $(TAO_LIB) \ + $(ACE_LIB) + +CPPDIR = . + +!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor> diff --git a/TAO/orbsvcs/examples/RtEC/Simple/EC_Simple_Service.bor b/TAO/orbsvcs/examples/RtEC/Simple/EC_Simple_Service.bor new file mode 100644 index 00000000000..70a16056527 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/Simple/EC_Simple_Service.bor @@ -0,0 +1,36 @@ +# +# $Id$ +# + +NAME = Service + +OBJFILES = \ + $(OBJDIR)\Service.obj + +CFLAGS = \ + $(TAO_RTOLDEVENT_CFLAGS) \ + $(TAO_RTSCHED_CFLAGS) \ + $(TAO_RTEVENT_CFLAGS) \ + $(TAO_NAMING_CFLAGS) \ + $(TAO_SVC_UTILS_CFLAGS) \ + $(TAO_IORTABLE_CFLAGS) \ + $(TAO_PORTABLESERVER_CFLAGS) \ + $(TAO_MESSAGING_CFLAGS) \ + $(TAO_CFLAGS) \ + $(ACE_CFLAGS) + +LIBFILES = \ + $(TAO_RTOLDEVENT_LIB) \ + $(TAO_RTSCHED_LIB) \ + $(TAO_RTEVENT_LIB) \ + $(TAO_NAMING_LIB) \ + $(TAO_SVC_UTILS_LIB) \ + $(TAO_IORTABLE_LIB) \ + $(TAO_PORTABLESERVER_LIB) \ + $(TAO_MESSAGING_LIB) \ + $(TAO_LIB) \ + $(ACE_LIB) + +CPPDIR = . + +!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor> diff --git a/TAO/orbsvcs/examples/RtEC/Simple/EC_Simple_Supplier.bor b/TAO/orbsvcs/examples/RtEC/Simple/EC_Simple_Supplier.bor new file mode 100644 index 00000000000..f4c89ba10be --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/Simple/EC_Simple_Supplier.bor @@ -0,0 +1,34 @@ +# +# $Id$ +# + +NAME = Supplier + +OBJFILES = \ + $(OBJDIR)\Supplier.obj + +CFLAGS = \ + $(TAO_RTSCHED_CFLAGS) \ + $(TAO_RTEVENT_CFLAGS) \ + $(TAO_NAMING_CFLAGS) \ + $(TAO_SVC_UTILS_CFLAGS) \ + $(TAO_IORTABLE_CFLAGS) \ + $(TAO_PORTABLESERVER_CFLAGS) \ + $(TAO_MESSAGING_CFLAGS) \ + $(TAO_CFLAGS) \ + $(ACE_CFLAGS) + +LIBFILES = \ + $(TAO_RTSCHED_LIB) \ + $(TAO_RTEVENT_LIB) \ + $(TAO_NAMING_LIB) \ + $(TAO_SVC_UTILS_LIB) \ + $(TAO_IORTABLE_LIB) \ + $(TAO_PORTABLESERVER_LIB) \ + $(TAO_MESSAGING_LIB) \ + $(TAO_LIB) \ + $(ACE_LIB) + +CPPDIR = . + +!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor> diff --git a/TAO/orbsvcs/examples/RtEC/Simple/Makefile.bor b/TAO/orbsvcs/examples/RtEC/Simple/Makefile.bor new file mode 100644 index 00000000000..4d5627cba21 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/Simple/Makefile.bor @@ -0,0 +1,10 @@ +# +# $Id$ +# + +MAKEFILES = \ + EC_Simple_Service.bor \ + EC_Simple_Consumer.bor \ + EC_Simple_Supplier.bor + +!include <$(ACE_ROOT)\include\makeinclude\recurse.bor> diff --git a/TAO/orbsvcs/examples/RtEC/Simple/README b/TAO/orbsvcs/examples/RtEC/Simple/README index fff86abc12f..a0cc11e59e4 100644 --- a/TAO/orbsvcs/examples/RtEC/Simple/README +++ b/TAO/orbsvcs/examples/RtEC/Simple/README @@ -6,9 +6,10 @@ consumer, supplier and a program to create the event channel itself. Run using the run_test.pl script or: -$ ./Service -o ec.ior -$ ./Consumer file://ec.ior -$ ./Supplier file://ec.ior +$ ../../../Naming_Service/Naming_Service +$ ./Service +$ ./Consumer +$ ./Supplier more advanced tests are available in $TAO_ROOT/orbsvcs/tests/Event and $TAO_ROOT/orbsvcs/EC_* diff --git a/TAO/orbsvcs/examples/RtEC/Simple/Service.cpp b/TAO/orbsvcs/examples/RtEC/Simple/Service.cpp index 657aaae2f3b..beb024502bd 100644 --- a/TAO/orbsvcs/examples/RtEC/Simple/Service.cpp +++ b/TAO/orbsvcs/examples/RtEC/Simple/Service.cpp @@ -3,6 +3,7 @@ #include "orbsvcs/Event/EC_Event_Channel.h" #include "orbsvcs/Event/EC_Default_Factory.h" #include "ace/Get_Opt.h" +#include "orbsvcs/CosNamingC.h" ACE_RCSID(EC_Examples, Service, "$Id$") @@ -23,14 +24,7 @@ main (int argc, char* argv[]) CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - if (parse_args (argc, argv) == -1) - { - ACE_ERROR ((LM_ERROR, - "Usage: Service [-o IOR_file_name]\n")); - return 1; - } - - CORBA::Object_var object = + CORBA::Object_var object = orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; PortableServer::POA_var poa = @@ -42,7 +36,21 @@ main (int argc, char* argv[]) poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; - TAO_EC_Event_Channel_Attributes attributes (poa.in (), + // Obtain the naming service + CORBA::Object_var naming_obj = + orb->resolve_initial_references ("NameService" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (naming_obj.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to get the Naming Service.\n"), + 1); + + CosNaming::NamingContext_var naming_context = + CosNaming::NamingContext::_narrow (naming_obj.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + TAO_EC_Event_Channel_Attributes attributes (poa.in (), poa.in ()); TAO_EC_Event_Channel ec_impl (attributes); @@ -53,12 +61,21 @@ main (int argc, char* argv[]) ec_impl._this (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; + // Create a name. + CosNaming::Name name; + name.length (1); + name[0].id = CORBA::string_dup ("EventService"); + name[0].kind = CORBA::string_dup (""); + + // Register with the name server + naming_context->bind (name, event_channel.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Example code: How to write ior to file CORBA::String_var ior = orb->object_to_string (event_channel.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - ACE_DEBUG ((LM_DEBUG, "Activated as <%s>\n", ior.in ())); - // If the ior_output_file exists, output the ior to it if (ior_output_file != 0) { diff --git a/TAO/orbsvcs/examples/RtEC/Simple/Supplier.cpp b/TAO/orbsvcs/examples/RtEC/Simple/Supplier.cpp index 481850d7a64..2b675d94f14 100644 --- a/TAO/orbsvcs/examples/RtEC/Simple/Supplier.cpp +++ b/TAO/orbsvcs/examples/RtEC/Simple/Supplier.cpp @@ -3,6 +3,7 @@ #include "Supplier.h" #include "orbsvcs/RtecEventChannelAdminC.h" #include "orbsvcs/Event_Service_Constants.h" +#include "orbsvcs/CosNamingC.h" ACE_RCSID(EC_Examples, Supplier, "$Id$") @@ -31,13 +32,6 @@ Supplier::run (int argc, char* argv[]) CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - if (argc <= 1) - { - ACE_ERROR ((LM_ERROR, - "Usage: Supplier <event_channel_ior>\n")); - return 1; - } - CORBA::Object_var object = orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -50,15 +44,30 @@ Supplier::run (int argc, char* argv[]) poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; - // Obtain the event channel, we could use a naming service, a - // command line argument or resolve_initial_references(), but - // this is simpler... - object = - orb->string_to_object (argv[1] ACE_ENV_ARG_PARAMETER); + // Obtain the event channel from the naming service + CORBA::Object_var naming_obj = + orb->resolve_initial_references ("NameService" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (naming_obj.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to get the Naming Service.\n"), + 1); + + CosNaming::NamingContext_var naming_context = + CosNaming::NamingContext::_narrow (naming_obj.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CosNaming::Name name (1); + name.length (1); + name[0].id = CORBA::string_dup ("EventService"); + + CORBA::Object_var ec_obj = + naming_context->resolve (name ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; RtecEventChannelAdmin::EventChannel_var event_channel = - RtecEventChannelAdmin::EventChannel::_narrow (object.in () + RtecEventChannelAdmin::EventChannel::_narrow (ec_obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; diff --git a/TAO/orbsvcs/examples/RtEC/Simple/run_test.pl b/TAO/orbsvcs/examples/RtEC/Simple/run_test.pl index c6569e66368..ca45c8b972e 100755 --- a/TAO/orbsvcs/examples/RtEC/Simple/run_test.pl +++ b/TAO/orbsvcs/examples/RtEC/Simple/run_test.pl @@ -10,34 +10,46 @@ use PerlACE::Run_Test; $status = 0; -$iorfile = PerlACE::LocalFile ("ec.ior"); +$ns_ior = PerlACE::LocalFile ("ns.ior"); $conffile = PerlACE::LocalFile ("ec" . "$PerlACE::svcconf_ext"); -unlink $iorfile; +unlink $ns_ior; + +$NS = new PerlACE::Process ("../../../Naming_Service/Naming_Service", + "-o $ns_ior "); $T = new PerlACE::Process ("Service", - "-ORBsvcconf $conffile -o $iorfile"); + "-ORBInitRef NameService=file://$ns_ior " + . "-ORBsvcconf $conffile"); $C = new PerlACE::Process ("Consumer", - "file://$iorfile"); + "-ORBInitRef NameService=file://$ns_ior "); $S = new PerlACE::Process ("Supplier", - "file://$iorfile"); + "-ORBInitRef NameService=file://$ns_ior "); -$T->Spawn (); +print STDOUT "Starting name server\n"; +$NS->Spawn (); -if (PerlACE::waitforfile_timed ($iorfile, 15) == -1) { - print STDERR "ERROR: cannot find file <$iorfile>\n"; - $T->Kill (); +if (PerlACE::waitforfile_timed ($ns_ior, 15) == -1) { + print STDERR "ERROR: cannot find file <$ns_ior>\n"; + $NS->Kill (); exit 1; } +print STDOUT "Starting event server\n"; +$T->Spawn (); + +sleep 2; + +print STDOUT "Starting consumer\n"; $C->Spawn (); -sleep 5; +sleep 1; +print STDOUT "Starting supplier\n"; $supplier = $S->SpawnWaitKill (120); if ($supplier != 0) { @@ -59,6 +71,13 @@ if ($service != 0) { $status = 1; } -unlink $iorfile; +$nserver = $NS->TerminateWaitKill (5); + +if ($nserver != 0) { + print STDERR "ERROR: name server returned $nserver\n"; + $status = 1; +} + +unlink $ns_ior; exit $status; diff --git a/TAO/orbsvcs/examples/Security/Makefile.bor b/TAO/orbsvcs/examples/Security/Makefile.bor new file mode 100644 index 00000000000..4d30128a8a0 --- /dev/null +++ b/TAO/orbsvcs/examples/Security/Makefile.bor @@ -0,0 +1,8 @@ +# +# Makefile for building orbsvcs security examples +# + +DIRS = \ + Send_File + +!include <$(ACE_ROOT)\include\makeinclude\recurse.bor> diff --git a/TAO/orbsvcs/examples/Security/Send_File/Makefile.bor b/TAO/orbsvcs/examples/Security/Send_File/Makefile.bor new file mode 100644 index 00000000000..cf74b15e3cd --- /dev/null +++ b/TAO/orbsvcs/examples/Security/Send_File/Makefile.bor @@ -0,0 +1,7 @@ +# +# Makefile for building the security send_file test executables +# + +MAKEFILES = server.bor client.bor + +!include <$(ACE_ROOT)\include\makeinclude\recurse.bor> diff --git a/TAO/orbsvcs/examples/Security/Send_File/client.bor b/TAO/orbsvcs/examples/Security/Send_File/client.bor new file mode 100644 index 00000000000..6779fd870d2 --- /dev/null +++ b/TAO/orbsvcs/examples/Security/Send_File/client.bor @@ -0,0 +1,37 @@ +# +# Makefile for building the security send_file executable +# + +!ifdef SSL_ROOT +NAME = client +!endif + +TAO_IDL = $(CORE_BINDIR)\tao_idl -g $(CORE_BINDIR)\gperf.exe -Ge 1 + +OBJFILES = \ + $(OBJDIR)\testC.obj \ + $(OBJDIR)\client.obj + +CFLAGS = \ + $(ACE_CFLAGS) \ + $(TAO_CFLAGS) + +LIBFILES = \ + $(ACE_LIB) \ + $(TAO_LIB) + +IDLFILES = \ + $(IDLDIR)\test.idl + +CPPDIR = . + +IDLDIR = . + +!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor> + +# +# IDL Build rules +# + +$(IDLDIR)\testS.cpp $(IDLDIR)\testC.cpp: $(IDLDIR)\test.idl + $(TAO_IDL) $** diff --git a/TAO/orbsvcs/examples/Security/Send_File/server.bor b/TAO/orbsvcs/examples/Security/Send_File/server.bor new file mode 100644 index 00000000000..3ef9f70550b --- /dev/null +++ b/TAO/orbsvcs/examples/Security/Send_File/server.bor @@ -0,0 +1,47 @@ +# +# Makefile for building the security send_file executable +# + +!ifdef SSL_ROOT +NAME = server +!endif + +TAO_IDL = $(CORE_BINDIR)\tao_idl -g $(CORE_BINDIR)\gperf.exe -Ge 1 + +OBJFILES = \ + $(OBJDIR)\testC.obj \ + $(OBJDIR)\testS.obj \ + $(OBJDIR)\test_i.obj \ + $(OBJDIR)\server.obj + +CFLAGS = \ + $(ACE_CFLAGS) \ + $(ACE_SSL_CFLAGS) \ + $(SSL_CFLAGS) \ + $(TAO_CFLAGS) \ + $(TAO_PORTABLESERVER_CFLAGS) \ + $(TAO_SSLIOP_CFLAGS) + +LIBFILES = \ + $(ACE_LIB) \ + $(ACE_SSL_LIB) \ + $(SSL_LIB) \ + $(TAO_LIB) \ + $(TAO_PORTABLESERVER_LIB) \ + $(TAO_SSLIOP_LIB) + +IDLFILES = \ + $(IDLDIR)\test.idl + +CPPDIR = . + +IDLDIR = . + +!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor> + +# +# IDL Build rules +# + +$(IDLDIR)\testS.cpp $(IDLDIR)\testC.cpp: $(IDLDIR)\test.idl + $(TAO_IDL) $** diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp index 1d52ba86c0a..0421f66e7ac 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp +++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp @@ -323,6 +323,32 @@ TAO_CEC_Default_Factory::init (int argc, ACE_TCHAR* argv[]) } } + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-CECConsumerControlTimeout")) == 0) + { + arg_shifter.consume_arg (); + + if (arg_shifter.is_parameter_next ()) + { + const ACE_TCHAR* opt = arg_shifter.get_current (); + unsigned long timeout_ = ACE_OS::strtoul(opt, 0, 10); + this->consumer_control_timeout_.usec(timeout_); + arg_shifter.consume_arg (); + } + } + + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-CECSupplierControlTimeout")) == 0) + { + arg_shifter.consume_arg (); + + if (arg_shifter.is_parameter_next ()) + { + const ACE_TCHAR* opt = arg_shifter.get_current (); + unsigned long timeout_ = ACE_OS::strtoul(opt, 0, 10); + this->supplier_control_timeout_.usec(timeout_); + arg_shifter.consume_arg (); + } + } + else if (ACE_OS::strncmp (arg, ACE_LIB_TEXT("-CEC"), 3) == 0) { arg_shifter.consume_arg (); @@ -912,7 +938,7 @@ TAO_CEC_Default_Factory::create_consumer_control (TAO_CEC_EventChannel* ec) CORBA::ORB_init (argc, argv, this->orbid_); ACE_Time_Value rate (0, this->consumer_control_period_); - return new TAO_CEC_Reactive_ConsumerControl (rate, ec, orb.in ()); + return new TAO_CEC_Reactive_ConsumerControl (rate, consumer_control_timeout_, ec, orb.in ()); } return 0; } @@ -936,7 +962,7 @@ TAO_CEC_Default_Factory::create_supplier_control (TAO_CEC_EventChannel* ec) CORBA::ORB_init (argc, argv, this->orbid_); ACE_Time_Value rate (0, this->consumer_control_period_); - return new TAO_CEC_Reactive_SupplierControl (rate, ec, orb.in ()); + return new TAO_CEC_Reactive_SupplierControl (rate, supplier_control_timeout_, ec, orb.in ()); } return 0; } diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.h b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.h index 610669b7559..a7b0443573a 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.h +++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.h @@ -153,6 +153,10 @@ private: /// The consumer and supplier control periods in usecs int consumer_control_period_; int supplier_control_period_; + + /// The consumer and supplier control timeout in usecs + ACE_Time_Value consumer_control_timeout_; + ACE_Time_Value supplier_control_timeout_; }; #if defined (__ACE_INLINE__) diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.i b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.i index 27708f2d61d..f7699383cb4 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.i +++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.i @@ -18,6 +18,8 @@ TAO_CEC_Default_Factory::TAO_CEC_Default_Factory (void) consumer_control_ (TAO_CEC_DEFAULT_CONSUMER_CONTROL), supplier_control_ (TAO_CEC_DEFAULT_SUPPLIER_CONTROL), consumer_control_period_ (TAO_CEC_DEFAULT_CONSUMER_CONTROL_PERIOD), - supplier_control_period_ (TAO_CEC_DEFAULT_SUPPLIER_CONTROL_PERIOD) + supplier_control_period_ (TAO_CEC_DEFAULT_SUPPLIER_CONTROL_PERIOD), + consumer_control_timeout_ (0, TAO_CEC_DEFAULT_CONSUMER_CONTROL_TIMEOUT), + supplier_control_timeout_ (0, TAO_CEC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT) { } diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Defaults.h b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Defaults.h index 317eae870c8..99860d8d0de 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Defaults.h +++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Defaults.h @@ -120,5 +120,13 @@ # define TAO_CEC_DEFAULT_SUPPLIER_CONTROL_PERIOD 5000000 /* usecs */ #endif /* TAO_CEC_DEFAULT_SUPPLIER_CONTROL_PERIOD */ +#ifndef TAO_CEC_DEFAULT_CONSUMER_CONTROL_TIMEOUT +# define TAO_CEC_DEFAULT_CONSUMER_CONTROL_TIMEOUT 10000 /* usecs */ +#endif /* TAO_CEC_DEFAULT_CONSUMER_CONTROL_TIMEOUT */ + +#ifndef TAO_CEC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT +# define TAO_CEC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT 10000 /* usecs */ +#endif /* TAO_CEC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT */ + #include "ace/post.h" #endif /* TAO_CEC_DEFAULTS_H */ diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp index 48f3cbfed6b..a1741daf162 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp +++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp @@ -17,9 +17,11 @@ ACE_RCSID(CosEvent, CEC_Reactive_ConsumerControl, "$Id$") TAO_CEC_Reactive_ConsumerControl:: TAO_CEC_Reactive_ConsumerControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_CEC_EventChannel *ec, CORBA::ORB_ptr orb) : rate_ (rate), + timeout_ (timeout), adapter_ (this), event_channel_ (ec), orb_ (CORBA::ORB::_duplicate (orb)) @@ -113,10 +115,8 @@ TAO_CEC_Reactive_ConsumerControl::activate (void) ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - // Pre-compute the policy list to the set the right timeout - // value... - // @@ TODO It is currently hard-coded to 10 milliseconds - TimeBase::TimeT timeout = 10 * 10000; + // Timeout for polling state (default = 10 msec) + TimeBase::TimeT timeout = timeout_.usec() * 10; CORBA::Any any; any <<= timeout; diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h index 5aa9d8263fe..84f3c179235 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h +++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h @@ -73,6 +73,7 @@ public: /// Constructor. It does not assume ownership of the <event_channel> /// parameter. TAO_CEC_Reactive_ConsumerControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_CEC_EventChannel *event_channel, CORBA::ORB_ptr orb); @@ -103,6 +104,9 @@ private: /// The polling rate ACE_Time_Value rate_; + /// The polling timeout + ACE_Time_Value timeout_; + /// The Adapter for the reactor events TAO_CEC_ConsumerControl_Adapter adapter_; diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp index eed1fcca6aa..f7387bfaf0f 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp +++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp @@ -18,9 +18,11 @@ ACE_RCSID(CosEvent, CEC_Reactive_SupplierControl, "$Id$") TAO_CEC_Reactive_SupplierControl:: TAO_CEC_Reactive_SupplierControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_CEC_EventChannel *ec, CORBA::ORB_ptr orb) : rate_ (rate), + timeout_ (timeout), adapter_ (this), event_channel_ (ec), orb_ (CORBA::ORB::_duplicate (orb)) @@ -114,11 +116,9 @@ TAO_CEC_Reactive_SupplierControl::activate (void) ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - // Pre-compute the policy list to the set the right timeout - // value... - // @@ TODO It is currently hard-coded to 10 milliseconds - TimeBase::TimeT timeout = 10 * 10000; - CORBA::Any any; + // Timeout for polling state (default = 10 msec) + TimeBase::TimeT timeout = timeout_.usec() * 10; + CORBA::Any any; any <<= timeout; this->policy_list_.length (1); diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h index bda347d7776..521feaf77c7 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h +++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h @@ -73,8 +73,9 @@ public: /// Constructor. It does not assume ownership of the <event_channel> /// parameter. TAO_CEC_Reactive_SupplierControl (const ACE_Time_Value &rate, - TAO_CEC_EventChannel *event_channel, - CORBA::ORB_ptr orb); + const ACE_Time_Value &timeout, + TAO_CEC_EventChannel *event_channel, + CORBA::ORB_ptr orb); /// destructor... virtual ~TAO_CEC_Reactive_SupplierControl (void); @@ -103,6 +104,9 @@ private: /// The polling rate ACE_Time_Value rate_; + /// The polling timeout + ACE_Time_Value timeout_; + /// The Adapter for the reactor events TAO_CEC_SupplierControl_Adapter adapter_; diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp index 13e31b03f64..ff1ba640a69 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp @@ -223,7 +223,9 @@ TAO_EC_Basic_Factory::create_consumer_control (TAO_EC_Event_Channel* ec) CORBA::ORB_init (argc, argv, ""); // Hard-coded rate to 10 times a second ACE_Time_Value rate (0, 100000); - return new TAO_EC_Reactive_ConsumerControl (rate, ec, orb.in ()); + // Hard-coded polling-timeout to 10 msec + ACE_Time_Value timeout (0, TAO_EC_DEFAULT_CONSUMER_CONTROL_TIMEOUT); + return new TAO_EC_Reactive_ConsumerControl (rate, timeout, ec, orb.in ()); } void @@ -241,7 +243,9 @@ TAO_EC_Basic_Factory::create_supplier_control (TAO_EC_Event_Channel* ec) CORBA::ORB_init (argc, argv, ""); // Hard-coded rate to 10 times a second ACE_Time_Value rate (0, 100000); - return new TAO_EC_Reactive_SupplierControl (rate, ec, orb.in ()); + // Hard-coded polling-timeout to 10 msec + ACE_Time_Value timeout (0, TAO_EC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT); + return new TAO_EC_Reactive_SupplierControl (rate, timeout, ec, orb.in ()); } void diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp index b6c8596e5bf..3694d31c2e2 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp @@ -409,6 +409,32 @@ TAO_EC_Default_Factory::init (int argc, ACE_TCHAR* argv[]) } } + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECConsumerControlTimeout")) == 0) + { + arg_shifter.consume_arg (); + + if (arg_shifter.is_parameter_next ()) + { + const ACE_TCHAR* opt = arg_shifter.get_current (); + unsigned long timeout_ = ACE_OS::strtoul(opt, 0, 10); + this->consumer_control_timeout_.usec(timeout_); + arg_shifter.consume_arg (); + } + } + + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECSupplierControlTimeout")) == 0) + { + arg_shifter.consume_arg (); + + if (arg_shifter.is_parameter_next ()) + { + const ACE_TCHAR* opt = arg_shifter.get_current (); + unsigned long timeout_ = ACE_OS::strtoul(opt, 0, 10); + this->supplier_control_timeout_.usec(timeout_); + arg_shifter.consume_arg (); + } + } + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECPushSupplierSet")) == 0) { ACE_ERROR ((LM_ERROR, @@ -876,7 +902,7 @@ TAO_EC_Default_Factory::create_consumer_control (TAO_EC_Event_Channel* ec) CORBA::ORB_init (argc, argv, this->orbid_.c_str ()); ACE_Time_Value rate (0, this->consumer_control_period_); - return new TAO_EC_Reactive_ConsumerControl (rate, ec, orb.in ()); + return new TAO_EC_Reactive_ConsumerControl (rate, consumer_control_timeout_, ec, orb.in ()); } return 0; } @@ -900,7 +926,7 @@ TAO_EC_Default_Factory::create_supplier_control (TAO_EC_Event_Channel* ec) CORBA::ORB_init (argc, argv, this->orbid_.c_str ()); ACE_Time_Value rate (0, this->supplier_control_period_); - return new TAO_EC_Reactive_SupplierControl (rate, ec, orb.in ()); + return new TAO_EC_Reactive_SupplierControl (rate, supplier_control_timeout_, ec, orb.in ()); } return 0; } diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h index 9055f07453b..b2e7b313eda 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h @@ -149,6 +149,12 @@ protected: /// The consumer and supplier control periods in usecs int consumer_control_period_; int supplier_control_period_; + + /// The consumer control timeout in usecs + ACE_Time_Value consumer_control_timeout_; + + /// The supplier control timeout in usecs + ACE_Time_Value supplier_control_timeout_; }; #if defined (__ACE_INLINE__) diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i index 7e80488bf44..cd98301fa1d 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i @@ -20,6 +20,8 @@ TAO_EC_Default_Factory::TAO_EC_Default_Factory (void) consumer_control_ (TAO_EC_DEFAULT_CONSUMER_CONTROL), supplier_control_ (TAO_EC_DEFAULT_SUPPLIER_CONTROL), consumer_control_period_ (TAO_EC_DEFAULT_CONSUMER_CONTROL_PERIOD), - supplier_control_period_ (TAO_EC_DEFAULT_SUPPLIER_CONTROL_PERIOD) + supplier_control_period_ (TAO_EC_DEFAULT_SUPPLIER_CONTROL_PERIOD), + consumer_control_timeout_ (0, TAO_EC_DEFAULT_CONSUMER_CONTROL_TIMEOUT), + supplier_control_timeout_ (0, TAO_EC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT) { } diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h b/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h index d34deb58353..7dc1b4a3237 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h @@ -133,5 +133,13 @@ # define TAO_EC_DEFAULT_SUPPLIER_CONTROL_PERIOD 5000000 /* usecs */ #endif /* TAO_EC_DEFAULT_SUPPLIER_CONTROL_PERIOD */ +#ifndef TAO_EC_DEFAULT_CONSUMER_CONTROL_TIMEOUT +# define TAO_EC_DEFAULT_CONSUMER_CONTROL_TIMEOUT 10000 /* usecs */ +#endif /* TAO_EC_DEFAULT_CONSUMER_CONTROL_TIMEOUT */ + +#ifndef TAO_EC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT +# define TAO_EC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT 10000 /* usecs */ +#endif /* TAO_EC_DEFAULT_SUPPLIER_CONTROL_TIMEOUT */ + #include "ace/post.h" #endif /* TAO_EC_DEFAULTS_H */ diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp index be322c6c6a7..6c5f997384e 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp @@ -265,6 +265,14 @@ TAO_EC_ProxyPushSupplier::connect_push_consumer ( RtecEventComm::PushConsumer::_duplicate (push_consumer); this->qos_ = qos; + // AVE-WEB test. Try to validate the connection to the consumer + ACE_DEBUG ((LM_DEBUG, "Before validate connection \n")); + CORBA::PolicyList_var pols; + this->consumer_->_validate_connection(pols); + ACE_CHECK; + ACE_DEBUG ((LM_DEBUG, "After validate connection \n")); + + #if TAO_EC_ENABLE_DEBUG_MESSAGES ACE_DEBUG ((LM_DEBUG, "Building filters for consumer <%x>\n", this)); diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp index 25e473a8f30..84eab4dc3c3 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp @@ -19,9 +19,11 @@ ACE_RCSID(Event, EC_Reactive_ConsumerControl, "$Id$") TAO_EC_Reactive_ConsumerControl:: TAO_EC_Reactive_ConsumerControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_EC_Event_Channel *ec, CORBA::ORB_ptr orb) : rate_ (rate), + timeout_ (timeout), adapter_ (this), event_channel_ (ec), orb_ (CORBA::ORB::_duplicate (orb)) @@ -110,10 +112,8 @@ TAO_EC_Reactive_ConsumerControl::activate (void) ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - // Pre-compute the policy list to the set the right timeout - // value... - // @@ TODO It is currently hard-coded to 10 milliseconds - TimeBase::TimeT timeout = 10 * 10000; + // Timeout for polling state (default = 10 msec) + TimeBase::TimeT timeout = timeout_.usec() * 10; CORBA::Any any; any <<= timeout; diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h index 063d478b916..8ab5f0767df 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h @@ -68,6 +68,7 @@ public: /// Constructor. It does not assume ownership of the <event_channel> /// parameter. TAO_EC_Reactive_ConsumerControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_EC_Event_Channel *event_channel, CORBA::ORB_ptr orb); @@ -96,6 +97,9 @@ private: /// The polling rate ACE_Time_Value rate_; + /// The polling timeout + ACE_Time_Value timeout_; + /// The Adapter for the reactor events TAO_EC_ConsumerControl_Adapter adapter_; diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp index e1f7e0f7421..30c83096e8c 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp @@ -19,9 +19,11 @@ ACE_RCSID(Event, EC_Reactive_SupplierControl, "$Id$") TAO_EC_Reactive_SupplierControl:: TAO_EC_Reactive_SupplierControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_EC_Event_Channel *ec, CORBA::ORB_ptr orb) : rate_ (rate), + timeout_ (timeout), adapter_ (this), event_channel_ (ec), orb_ (CORBA::ORB::_duplicate (orb)) @@ -110,10 +112,8 @@ TAO_EC_Reactive_SupplierControl::activate (void) ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - // Pre-compute the policy list to the set the right timeout - // value... - // @@ TODO It is currently hard-coded to 10 milliseconds - TimeBase::TimeT timeout = 10 * 10000; + // Timeout for polling state (default = 10 msec) + TimeBase::TimeT timeout = timeout_.usec() * 10; CORBA::Any any; any <<= timeout; @@ -122,7 +122,7 @@ TAO_EC_Reactive_SupplierControl::activate (void) this->orb_->create_policy ( Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE, any - ACE_ENV_ARG_PARAMETER); + ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } ACE_CATCHANY diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h index 1dbaad605e3..a38b9adc291 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h @@ -68,6 +68,7 @@ public: /// Constructor. It does not assume ownership of the <event_channel> /// parameter. TAO_EC_Reactive_SupplierControl (const ACE_Time_Value &rate, + const ACE_Time_Value &timeout, TAO_EC_Event_Channel *event_channel, CORBA::ORB_ptr orb); @@ -96,6 +97,9 @@ private: /// The polling rate ACE_Time_Value rate_; + /// The polling timeout + ACE_Time_Value timeout_; + /// The Adapter for the reactor events TAO_EC_SupplierControl_Adapter adapter_; diff --git a/TAO/orbsvcs/tests/Makefile.bor b/TAO/orbsvcs/tests/Makefile.bor index 6ec947c0544..69553d90d9a 100644 --- a/TAO/orbsvcs/tests/Makefile.bor +++ b/TAO/orbsvcs/tests/Makefile.bor @@ -5,6 +5,7 @@ DIRS = \ AVStreams \ + Bug_1393_Regression \ Concurrency \ CosEvent \ FaultTolerance \ diff --git a/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Makefile b/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Makefile index 2107bdf0c32..44b66343b54 100644 --- a/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Makefile +++ b/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Makefile @@ -12,8 +12,8 @@ ifndef TAO_ROOT TAO_ROOT = $(ACE_ROOT)/TAO endif # ! TAO_ROOT -BIN = Structured_Supplier Structured_Consumer \ - Sequence_Supplier Sequence_Consumer +BIN2 = Structured_Supplier Structured_Consumer \ + Sequence_Supplier Sequence_Consumer IDL_FILES = go IDL_SRC = goC.cpp goS.cpp @@ -37,8 +37,17 @@ SRC = Structured_Supplier.cpp common.cpp \ CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs -I../../lib LDLIBS = -lTAO_NotifyTests -lTAO_CosNotification -lTAO_ETCL -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_PortableServer -lTAO - TAO_IDLFLAGS += -Ge 1 + +#### If the TAO orbsvcs library wasn't built with sufficient components, +#### don't try to build here. +TAO_ORBSVCS := $(shell sh $(ACE_ROOT)/bin/ace_components --orbsvcs) +ifeq (Notify,$(findstring Notify,$(TAO_ORBSVCS))) + ifeq (Naming,$(findstring Naming,$(TAO_ORBSVCS))) + BIN = $(BIN2) + endif # Naming +endif # Notify + #---------------------------------------------------------------------------- # Include macros and targets #---------------------------------------------------------------------------- |