diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2009-10-01 02:41:00 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2009-10-01 02:41:00 +0000 |
commit | dbc58029ff8ebb6a95d418a880d0af15a0c5032b (patch) | |
tree | ba8e884c9a52dc298eab808ead83693613581219 | |
parent | f57551149a690df7f4e868f007a6fe556ba938ea (diff) | |
download | ATCD-dbc58029ff8ebb6a95d418a880d0af15a0c5032b.tar.gz |
Thu Oct 1 02:40:40 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
10 files changed, 251 insertions, 22 deletions
diff --git a/modules/CIAO/ChangeLog b/modules/CIAO/ChangeLog index cd53817b9a3..343cd1da5d7 100644 --- a/modules/CIAO/ChangeLog +++ b/modules/CIAO/ChangeLog @@ -1,10 +1,25 @@ -Wed Sep 30 01:17:02 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu> +Thu Oct 1 02:40:40 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu> + * MPC/config/dds4ccm_base.mpb: + * connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc: + * connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc: + * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc: * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h: * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp: + * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc: + * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp: + * connectors/dds4ccm/examples/Quoter/descriptors: + * connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl: - Additional connector implementation. + Additional impolementation. +Wed Sep 30 01:17:02 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu> + + * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h: + * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp: + + Additional connector implementation. + Fri Sep 25 01:34:02 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu> * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl3: diff --git a/modules/CIAO/MPC/config/dds4ccm_base.mpb b/modules/CIAO/MPC/config/dds4ccm_base.mpb index a2c15617235..68cc03c1844 100644 --- a/modules/CIAO/MPC/config/dds4ccm_base.mpb +++ b/modules/CIAO/MPC/config/dds4ccm_base.mpb @@ -3,5 +3,5 @@ project : ciao_connector_base { after += DDS4CCM_stub DDS4CCM_lem_gen - libs += DDS4CCM_stub + libs += DDS4CCM_stub DDS4CCM_lem_stub } diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc index 85413b73f1e..fff8b2f1438 100644 --- a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc +++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc @@ -1,7 +1,7 @@ // $Id$ // This file is generated with "generate_component_mpc.pl -o ../lib -u DDS -n Quoter_Base" -project(DDS_Quoter_Base_idl_gen) : taoidldefaults { +project(DDS_Quoter_Base_idl_gen) : taoidldefaults, anytypecode { custom_only = 1 idlflags -= -St -Sa idlflags += -SS -Gxhst \ diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc index 55803f7c775..8772c36f5b8 100644 --- a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc +++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc @@ -29,8 +29,8 @@ project(DDS_Broker_lem_gen) : connectoridldefaults, { } project(DDS_Broker_lem_stub) : ccm_svnt , dds4ccm_base { - after += DDS_Broker_lem_gen DDS_Broker_stub - libs += Broker_stub + after += DDS_Broker_lem_gen DDS_Broker_stub DDS_Quoter_Connector_stub DDS_Quoter_Base_stub + libs += Broker_stub DDS_Quoter_Connector_stub DDS_Quoter_Base_stub libpaths += ../lib libout = ../lib includes += .. @@ -55,8 +55,8 @@ project(DDS_Broker_lem_stub) : ccm_svnt , dds4ccm_base { } project(DDS_Broker_stub) : ccm_stub , dds4ccm_base { - after += DDS_Broker_idl_gen - libs += + after += DDS_Broker_idl_gen DDS_Quoter_Connector_stub DDS_Quoter_Base_stub + libs += DDS_Quoter_Connector_stub DDS_Quoter_Base_stub libpaths += ../lib libout = ../lib includes += .. @@ -81,9 +81,9 @@ project(DDS_Broker_stub) : ccm_stub , dds4ccm_base { } project(DDS_Broker_exec) : ciao_executor , dds4ccm_base { - after += DDS_Broker_lem_stub DDS_Broker_stub + after += DDS_Broker_lem_stub DDS_Broker_stub DDS_Quoter_Base_stub sharedname = Broker_exec - libs += Broker_stub Broker_lem_stub + libs += Broker_stub Broker_lem_stub DDS_Quoter_Base_stub libpaths += ../lib libout = ../lib includes += .. @@ -107,9 +107,9 @@ project(DDS_Broker_exec) : ciao_executor , dds4ccm_base { project(DDS_Broker_svnt) : ciao_servant , dds4ccm_base { - after += DDS_Broker_lem_stub + after += DDS_Broker_lem_stub DDS_Quoter_Base_stub DDS_Quoter_Connector_stub DDS_Quoter_Connector_svnt sharedname = Broker_svnt - libs += Broker_stub Broker_lem_stub + libs += Broker_stub Broker_lem_stub DDS_Quoter_Base_stub DDS_Quoter_Connector_stub DDS_Quoter_Connector_svnt libpaths += ../lib libout = ../lib includes += .. diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc index a7709f70a8d..7c0fdd55dce 100644 --- a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc +++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc @@ -83,9 +83,9 @@ project(DDS_Quoter_Connector_stub) : ccm_stub, dds4ccm_base { } project(DDS_Quoter_Connector_exec) : ciao_executor, dds4ccm_skel, nddslib { - after += DDS_Quoter_Connector_lem_stub DDS_Quoter_Connector_stub + after += DDS_Quoter_Connector_lem_stub DDS_Quoter_Connector_stub DDS_Quoter_Base_NDDS_TS sharedname = DDS_Quoter_Connector_exec - libs += DDS_Quoter_Connector_stub DDS_Quoter_Connector_lem_stub DDS_Quoter_Base_stub + libs += DDS_Quoter_Connector_stub DDS_Quoter_Connector_lem_stub DDS_Quoter_Base_stub CIAO_DDS4CCM_NDDS_Impl DDS_Quoter_Base_NDDS_TS libpaths += ../lib libout = ../lib includes += .. diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp index e19781e93a9..099d7e6a1c3 100644 --- a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp +++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp @@ -111,6 +111,13 @@ namespace CIAO_Quoter_Quoter_Connector_Impl //============================================================ Quoter_Connector_exec_i::Quoter_Connector_exec_i (void) + : default_domain_configured_ (false), + domain_id_ (0), + default_topic_configured_ (false), + topic_name_ ("Quoter_Topic"), + __info_in_configured_ (false), + __info_out_configured_ (false) + { } @@ -196,6 +203,9 @@ namespace CIAO_Quoter_Quoter_Connector_Impl void Quoter_Connector_exec_i::configure_default_domain_ (void) { + CIAO_DEBUG ((LM_TRACE, CLINFO "Quoter_Connector_exec_i::configure_default_domain_ - " + "Configuring default domain\n")); + if (this->default_domain_configured_) return; try @@ -220,6 +230,8 @@ namespace CIAO_Quoter_Quoter_Connector_Impl void Quoter_Connector_exec_i::configure_default_topic_ (void) { + CIAO_DEBUG ((LM_TRACE, CLINFO "Quoter_Connector_exec_i::configure_default_topic_ - " + "Configuring default topic\n")); if (this->default_topic_configured_) return; this->configure_default_domain_ (); @@ -380,7 +392,7 @@ namespace CIAO_Quoter_Quoter_Connector_Impl this->context_->get_connection_info_out_status ()); ::DDS::DataReaderQos drqos; - this->__info_out_datareaderlistener = + this->__info_out_datareader_ = this->__info_out_subscriber_->create_datareader (this->topic_.in (), drqos, this->__info_out_datareaderlistener.in (), @@ -398,6 +410,8 @@ namespace CIAO_Quoter_Quoter_Connector_Impl ::CCM_DDS::CCM_Stock_Info_Writer_ptr Quoter_Connector_exec_i::get_info_in_data (void) { + std::cerr << "get_info_in_data" << std::endl; + this->configure_port_info_in_ (); return new CIAO::DDS4CCM::RTI::Writer_T<Stock_Info_Traits, diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h index bc47276e9ea..fe53f7ad2fb 100644 --- a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h +++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h @@ -244,7 +244,7 @@ namespace CIAO_Quoter_Quoter_Connector_Impl CCM_DDS::PortStatusListener_var __info_out_portstatus_; ::DDS::Subscriber_var __info_out_subscriber_; ::DDS::DataReaderListener_var __info_out_listener_; - ::DDS::CCM_DataReader_var __info_out_datareader_; + ::DDS::DataReader_var __info_out_datareader_; ::DDS::DataReaderListener_var __info_out_datareaderlistener; }; diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc index 0fb6a755d24..33b5e228ed0 100644 --- a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc +++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc @@ -56,8 +56,8 @@ project(DDS_Distributor_lem_stub) : ccm_svnt, dds4ccm_base { } project(DDS_Distributor_stub) : ccm_stub, dds4ccm_base { - after += DDS_Distributor_idl_gen DDS_Quoter_Base_stub - libs += DDS_Quoter_Base_stub + after += DDS_Distributor_idl_gen DDS_Quoter_Base_stub DDS_Quoter_Connector_stub + libs += DDS_Quoter_Base_stub DDS_Quoter_Connector_stub includes += .. libpaths += ../lib libout = ../lib @@ -84,7 +84,7 @@ project(DDS_Distributor_stub) : ccm_stub, dds4ccm_base { project(DDS_Distributor_exec) : ciao_executor, dds4ccm_base { after += DDS_Distributor_lem_stub DDS_Distributor_stub sharedname = Distributor_exec - libs += Distributor_stub Distributor_lem_stub DDS_Quoter_Base_stub + libs += Distributor_stub Distributor_lem_stub DDS_Quoter_Base_stub libpaths += ../lib includes += .. libout = ../lib @@ -140,7 +140,7 @@ project(DDS_Distributor_svnt) : ciao_servant, dds4ccm_base { project (DDS_controller) : ccm_stub, valuetype { exename = controller after += DDS_Distributor_stub - libs += Distributor_stub DDS_Quoter_Base_stub + libs += Distributor_stub DDS_Quoter_Base_stub DDS_Quoter_Connector_stub libpaths += ../lib libout = ../lib includes += .. diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp index 56cd45df8c9..df2c6963701 100644 --- a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp +++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp @@ -80,10 +80,13 @@ namespace CIAO_Quoter_Distributor_Impl { return -1; } - + // calculate the interval time long usec = 1000000 / hertz; + std::cerr << "Starting pulse_generator with hertz of " << hertz << ", interval of " + << usec << std::endl; + if (this->reactor ()->schedule_timer (this, 0, ACE_Time_Value (0, usec), @@ -188,7 +191,11 @@ namespace CIAO_Quoter_Distributor_Impl if (i->second->current < i->second->low) i->second->low = i->second->current; - this->writer_->write (i->second); + if (!CORBA::is_nil (this->writer_)) + this->writer_->write (i->second); + else + std::cerr << "Writer reference is nil!" << std::endl; + } } } @@ -280,12 +287,16 @@ namespace CIAO_Quoter_Distributor_Impl Distributor_exec_i::configuration_complete (void) { /* Your code here. */ + this->writer_ = this->context_->get_connection_info_in_data (); + + this->ticker_->activate (); } void Distributor_exec_i::ccm_activate (void) { this->start (); + this->add_stock ("MSFT"); } void diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl b/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl new file mode 100755 index 00000000000..728c251c06c --- /dev/null +++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl @@ -0,0 +1,189 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::Run_Test; + +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$TAO_ROOT = "$ENV{'TAO_ROOT'}"; +$DAnCE = "$ENV{'DANCE_ROOT'}"; + +$daemons_running = 0; +$em_running = 0; +$ns_running = 0; + +$daemons = 2; +@ports = ( 60001, 60002 ); +@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" ); +@nodenames = ( "DistributorNode", "BrokerNode" ); + +$status = 0; +$cdp_file = "Plan.cdp"; + +$nsior = PerlACE::LocalFile ("ns.ior"); + +PerlACE::add_lib_path ('../lib'); + +unlink $nsior; + +$E = 0; +$EM = 0; + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $daemons; ++$i) { + unlink $iorfiles[$i]; + } + unlink PerlACE::LocalFile ("EM.ior"); + unlink PerlACE::LocalFile ("DAM.ior"); + unlink PerlACE::LocalFile ("ns.ior"); +} + +sub kill_node_daemons { + for ($i = 0; $i < $daemons; ++$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemons (); + } + + if ($em_running == 1) { + $EM->Kill (); + $EM->TimedWait (1); + } + + if ($ns_running == 1) { + $NS->Kill (); + $NS->TimedWait (1); + } + +} + +sub run_node_daemons { + for ($i = 0; $i < $daemons; ++$i) + { + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + $nodename = $nodenames[$i]; + $iiop = "iiop://localhost:$port"; + $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + + $d_cmd = "$DAnCE/bin/dance_node_manager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; + + print "Run dance_node_manager with $d_param\n"; + + $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param); + $result = $Daemons[$i]->Spawn (); + push(@processes, $Daemons[$i]); + + if (PerlACE::waitforfile_timed ($iorfile, + 30) == -1) { + print STDERR + "ERROR: The ior $iorfile file of node daemon $i could not be found\n"; + for (; $i >= 0; --$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } + return -1; + } + } + return 0; +} + +delete_ior_files (); + +# Invoke naming service + +$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior"); + +$NS->Spawn (); + +print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n"; + +if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1) +{ + print STDERR "ERROR: cannot find naming service IOR file\n"; + $NS->Kill (); + exit 1; +} + +$ns_running = 1; + +# Set up NamingService environment +$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService"; + + +# Invoke node daemons. +print "Invoking node daemons\n"; +$status = run_node_daemons (); + +if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemons\n"; + kill_open_processes (); + exit 1; +} + +$daemons_running = 1; + +# Invoke execution manager. +print "Invoking execution manager (dance_execution_manager.exe) with -eEM.ior \n"; +$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager", + "-eEM.ior --domain-nc corbaloc:rir:/NameService"); +$EM->Spawn (); + +if (PerlACE::waitforfile_timed ("EM.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; +} + +$em_running = 1; + +# Invoke executor - start the application -. +print "Invoking executor - start the application -\n"; + +print "Start dance_plan_launcher.exe with -x $cdp_file -k file://EM.ior\n"; +$E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-x $cdp_file -k file://EM.ior"); + +$E->SpawnWaitKill (50); + + +print "Sleeping 60 seconds to allow task to complete\n"; +sleep (60); + +# print "Invoking the controller ($controller_exec -k file://Sender.ior)\n"; +# $controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior"); +# $result = $controller->SpawnWaitKill (30); + +# if ($result != 0) { +# print STDERR "ERROR: The controller returned $result\n"; +# $status = 1; +# } + +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +print "by running dance_plan_launcher.exe with -k file://EM.ior -x $cdp_file -q\n"; + +$E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-k file://EM.ior -x $cdp_file -q"); +$E->SpawnWaitKill (30); + +print "Executor returned.\n"; +print "Shutting down rest of the processes.\n"; + +delete_ior_files (); +kill_open_processes (); + +exit $status; |