summaryrefslogtreecommitdiff
path: root/modules/CIAO/examples/Hello/descriptors_RTCCM
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/examples/Hello/descriptors_RTCCM')
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat2
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf5
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr70
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp215
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr73
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp271
-rwxr-xr-xmodules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl163
7 files changed, 799 insertions, 0 deletions
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat b/modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat
new file mode 100644
index 00000000000..fe88523971e
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat
@@ -0,0 +1,2 @@
+SenderNode corbaloc:iiop:localhost:60001/NodeManager
+ReceiverNode corbaloc:iiop:localhost:60002/NodeManager
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf b/modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf
new file mode 100644
index 00000000000..1bfd9e8eaba
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf
@@ -0,0 +1,5 @@
+# No options required for regular testing
+
+# For real-time testing, uncomment the following line:
+static RT_ORB_Loader "-ORBSchedPolicy SCHED_FIFO -ORBScopePolicy SYSTEM"
+
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr b/modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr
new file mode 100644
index 00000000000..a3881225930
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr
@@ -0,0 +1,70 @@
+
+<CIAO:ServerResources
+ xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.dre.vanderbilt.edu/ServerResources CIAOServerResources.xsd">
+
+ <cmdline>
+ <arg> -ORBDebugLevel 10 -ORBEndpoint corbaloc://foo/bar</arg>
+ </cmdline>
+
+ <svcconf>
+ <uri>
+ svcconf.uri
+ </uri>
+ </svcconf>
+
+ <orbConfigs>
+ <resources>
+ <threadpool id="threadpool-1">
+ <stacksize>100</stacksize>
+ <static_threads>50</static_threads>
+ <dynamic_threads>25</dynamic_threads>
+ <default_priority>5</default_priority>
+ <allow_request_buffering>true</allow_request_buffering>
+ <max_buffered_requests>10</max_buffered_requests>
+ <max_request_buffered_size>20</max_request_buffered_size>
+ </threadpool>
+
+ <threadpoolWithLanes id="threadpool-2">
+ <threadpoolLane>
+ <static_threads>50</static_threads>
+ <dynamic_threads>25</dynamic_threads>
+ <priority>36</priority>
+ </threadpoolLane>
+ <stacksize>100</stacksize>
+ <allow_borrowing>true</allow_borrowing>
+ <allow_request_buffering>true</allow_request_buffering>
+ <max_buffered_requests>10</max_buffered_requests>
+ <max_request_buffered_size>20</max_request_buffered_size>
+ </threadpoolWithLanes>
+
+ <connectionBands id="cb-1">
+ <band>
+ <low>0</low>
+ <high>10</high>
+ </band>
+ <band>
+ <low>11</low>
+ <high>20</high>
+ </band>
+ </connectionBands>
+ </resources>
+
+ <policySet id="test_policy_set_id">
+ <priorityModel server_priority="10">
+ <priority_model>SERVER_DECLARED</priority_model>
+ </priorityModel>
+ <priorityModel>
+ <priority_model>CLIENT_PROPAGATED</priority_model>
+ </priorityModel>
+
+ <threadpool>threadpool-1</threadpool>
+ <threadpool>threadpool-2</threadpool>
+
+ <priorityBandedConnection>cb-1</priorityBandedConnection>
+
+ </policySet>
+ </orbConfigs>
+</CIAO:ServerResources> \ No newline at end of file
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp
new file mode 100644
index 00000000000..72e1694b1c3
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:deploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Modified_Deployment.xsd">
+
+ <label>Hello-DeploymentPlan</label>
+
+ <UUID>Hello_Plan_UUID_0001</UUID>
+
+ <realizes>
+ <label>BasicSP-realizes-cid</label>
+ <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID>
+ <specificType/>
+ <supportedType>IDL:Hello/Sender:1.0</supportedType>
+ <port>
+ <name>read_message</name>
+ <specificType>IDL:Hello/ReadMessage:1.0</specificType>
+ <supportedType>IDL:Hello/ReadMessage:1.0</supportedType>
+ <provider>false</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>false</optional>
+ <kind>SimplexReceptacle</kind>
+ </port>
+ </realizes>
+
+ <implementation id="Hello-Sender-mdd">
+ <name>Hello-Sender-mdd</name>
+ <source/>
+ <artifact>Hello-Sender_exec</artifact>
+ <artifact>Hello-Sender_svnt</artifact>
+ </implementation>
+
+ <implementation id="Hello-Receiver-mdd">
+ <name>Hello-Receiver-mdd</name>
+ <source/>
+ <artifact>Hello-Receiver_exec</artifact>
+ <artifact>Hello-Receiver_svnt</artifact>
+ </implementation>
+
+ <instance id="Hello-Sender-idd">
+ <name>Hello-Sender-idd</name>
+ <node>SenderNode</node>
+ <source/>
+ <implementation>Hello-Sender-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>local_message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This is a test message passed in through XML.</string>
+ </value>
+ </value>
+ </configProperty>
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:PolicySet</requirementName>
+ <resourceName>test_server_resource_id</resourceName>
+ <resourceValue>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>test_policy_set_id</string>
+ </value>
+ </resourceValue>
+ </deployedResource>
+ </instance>
+
+ <instance id="Hello-Receiver-idd">
+ <name>Hello-Receiver-idd</name>
+ <node>ReceiverNode</node>
+ <source/>
+ <implementation>Hello-Receiver-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>hell_event_connection</name>
+ <internalEndpoint>
+ <portName>click_out</portName>
+ <kind>EventPublisher</kind>
+ <instance>Hello-Sender-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>click_in</portName>
+ <kind>EventConsumer</kind>
+ <instance>Hello-Receiver-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>hello_facet_connection</name>
+ <internalEndpoint>
+ <portName>push_message</portName>
+ <kind>Facet</kind>
+ <instance>Hello-Sender-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>read_message</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Hello-Receiver-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <artifact id="Hello-Sender_exec">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_DnC_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createSenderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Sender_svnt">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_DnC_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_SenderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Receiver_exec">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_DnC_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createReceiverHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Receiver_svnt">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_DnC_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_ReceiverHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <infoProperty>
+ <name>CIAOServerResources</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rt-config-example.csr</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:deploymentPlan>
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr
new file mode 100644
index 00000000000..fa567f78c90
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr
@@ -0,0 +1,73 @@
+
+<CIAO:ServerResources
+ xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.dre.vanderbilt.edu/ServerResources CIAOServerResources.xsd"
+ id="test_server_resource_id">
+
+ <cmdline>
+ <arg>-r</arg>
+ </cmdline>
+
+ <svcconf>
+ <uri>RTsvc.conf</uri>
+ </svcconf>
+
+ <orbConfigs>
+ <resources>
+ <threadpool id="threadpool-1">
+ <stacksize>0</stacksize>
+ <static_threads>5</static_threads>
+ <dynamic_threads>0</dynamic_threads>
+ <default_priority>1</default_priority>
+ <allow_request_buffering>false</allow_request_buffering>
+ <max_buffered_requests>0</max_buffered_requests>
+ <max_request_buffered_size>0</max_request_buffered_size>
+ </threadpool>
+
+ <threadpoolWithLanes id="threadpool-2">
+ <threadpoolLane>
+ <static_threads>5</static_threads>
+ <dynamic_threads>0</dynamic_threads>
+ <priority>2</priority>
+ </threadpoolLane>
+ <threadpoolLane>
+ <static_threads>5</static_threads>
+ <dynamic_threads>0</dynamic_threads>
+ <priority>1</priority>
+ </threadpoolLane>
+ <stacksize>0</stacksize>
+ <allow_borrowing>false</allow_borrowing>
+ <allow_request_buffering>false</allow_request_buffering>
+ <max_buffered_requests>0</max_buffered_requests>
+ <max_request_buffered_size>0</max_request_buffered_size>
+ </threadpoolWithLanes>
+
+ <connectionBands id="cb-1">
+ <band>
+ <low>0</low>
+ <high>10</high>
+ </band>
+ <band>
+ <low>11</low>
+ <high>20</high>
+ </band>
+ </connectionBands>
+ </resources>
+
+ <policySet id="test_policy_set_id">
+ <priorityModel server_priority="1">
+ <priority_model>SERVER_DECLARED</priority_model>
+ </priorityModel>
+ </policySet>
+
+ <policySet id="test_policy_set_2">
+ <priorityModel>
+ <priority_model>CLIENT_PROPAGATED</priority_model>
+ </priorityModel>
+ <threadpool>threadpool-2</threadpool>
+ </policySet>
+
+ </orbConfigs>
+</CIAO:ServerResources>
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp
new file mode 100644
index 00000000000..6dc5b078d58
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp
@@ -0,0 +1,271 @@
+<Deployment:deploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+
+ <label>Hello-DeploymentPlan</label>
+ <UUID>Hello_Plan_UUID_0001</UUID>
+ <!-- Could be ZERO -->
+ <realizes>
+ <label>BasicSP-realizes-cid</label>
+ <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID>
+ <specificType><!-- @@ What does here? --></specificType>
+ <supportedType>IDL:BasicSP/EC:1.0</supportedType>
+ <port>
+ <name>read_message</name>
+ <specificType>IDL:Hello/ReadMessage:1.0</specificType>
+ <supportedType>IDL:Hello/ReadMessage:1.0</supportedType>
+ <provider>false</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>false</optional>
+ <kind>SimplexReceptacle</kind>
+ </port>
+ </realizes>
+
+ <implementation id="Hello-Sender-mdd">
+ <name>Hello-Sender-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>Hello-Sender_exec</artifact>
+ <artifact>Hello-Sender_svnt</artifact>
+ <!--
+ <execParameter></execParameter>
+ <deployRequirement></deployRequirement>
+ -->
+ </implementation>
+
+ <implementation id="Hello-Receiver-mdd">
+ <name>Hello-Receiver-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>Hello-Receiver_exec</artifact>
+ <artifact>Hello-Receiver_svnt</artifact>
+ <!--
+ <execParameter></execParameter>
+ <deployRequirement></deployRequirement>
+ -->
+ </implementation>
+
+ <instance id="Hello-Sender-idd">
+ <name>Hello-Sender-idd</name>
+ <node>SenderNode</node>
+ <source><!-- @@ What goes here --></source>
+ <implementation>Hello-Sender-mdd</implementation>
+
+ <!-- Add this property if you want to write component reference to IOR -->
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <!-- Add this property if you want to initialize component attribute -->
+ <configProperty>
+ <name>local_message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This is a test message passed in through XML.</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <!-- This attribute initializes an enumerated value -->
+ <configProperty>
+ <name>color</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>COLOR_SELECTION</name>
+ <typeId>IDL:Hello/COLOR_SELECTION:1.0</typeId>
+ <member>empty</member>
+ <member>white</member>
+ <member>red</member>
+ <member>yellow</member>
+ </enum>
+ </type>
+ <value>
+ <enum>yellow</enum>
+ </value>
+ </value>
+ </configProperty>
+
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:PolicySet</requirementName>
+ <resourceName>test_server_resource_id</resourceName>
+ <property>
+ <name>CIAO:PolicySetName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>test_policy_set_id</string>
+ </value>
+ </value>
+ </property>
+ </deployedResource>
+
+ </instance>
+
+ <instance id="Hello-Receiver-idd">
+ <name>Hello-Receiver-idd</name>
+ <node>SenderNode</node>
+ <source><!-- @@ What goes here --></source>
+ <implementation>Hello-Receiver-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:PolicySet</requirementName>
+ <resourceName>test_server_resource_id</resourceName>
+ <property>
+ <name>CIAO:PolicySetName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>test_policy_set_id</string>
+ </value>
+ </value>
+ </property>
+ </deployedResource>
+
+ </instance>
+
+
+ <connection>
+ <name>hell_event_connection</name>
+ <internalEndpoint>
+ <portName>click_out</portName>
+ <kind>EventPublisher</kind>
+ <instance>Hello-Sender-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>click_in</portName>
+ <kind>EventConsumer</kind>
+ <instance>Hello-Receiver-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>hello_facet_connection</name>
+ <internalEndpoint>
+ <portName>push_message</portName>
+ <kind>Facet</kind>
+ <instance>Hello-Sender-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>read_message</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Hello-Receiver-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <!-- @@ Runtime library name must match exactly in "location" tag -->
+ <artifact id="Hello-Sender_exec">
+ <name>Sender_exec</name>
+ <source><!-- @@ Not sure about this--></source>
+ <node><!-- blank --></node>
+ <location>Sender_DnC_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createSenderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Sender_svnt">
+ <name>Sender_svnt</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>Sender_DnC_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_SenderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Receiver_exec">
+ <name>Receiver_exec</name>
+ <source><!-- @@ Not sure about this--></source>
+ <node><!-- blank --></node>
+ <location>Receiver_DnC_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createReceiverHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Receiver_svnt">
+ <name>Receiver_svnt</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>Receiver_DnC_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_ReceiverHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <infoProperty>
+ <name>CIAOServerResources</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rt-config-example.csr</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:deploymentPlan>
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl
new file mode 100755
index 00000000000..a790fef1be0
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl
@@ -0,0 +1,163 @@
+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'}";
+$DAnCE = "$ENV{'ACE_ROOT'}/TAO/CIAO/DAnCE";
+
+$daemons_running = 0;
+$em_running = 0;
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" );
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "DeploymentPlan.cdp";
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+$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 ("Receiver.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.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);
+ }
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$DAnCE/NodeApplication/NodeApplication";
+
+ $d_cmd = "$DAnCE/NodeManager/NodeManager";
+
+ # NON-RT
+# $d_param = "-ORBEndpoint $iiop -s $node_app -o $iorfile";
+
+ # RT enabled
+ $d_param = "-ORBEndpoint $iiop -s $node_app -a \"-r\" -o $iorfile";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR
+ "ERROR: The ior file of node daemon $i could not be found\n";
+ for (; $i > 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ $daemons_running = 1;
+ return 0;
+}
+
+delete_ior_files ();
+
+# 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";
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Invoke execution manager.
+print "Invoking execution manager\n";
+$EM = new PerlACE::Process ("$DAnCE/ExecutionManager/Execution_Manager",
+ "-o EM.ior -i $dat_file");
+$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";
+$E =
+ new PerlACE::Process ("$DAnCE/Plan_Launcher/plan_launcher",
+ "-p rt-example.cdp -k file://EM.ior -o DAM.ior");
+
+$E->SpawnWaitKill (5000);
+
+if (PerlACE::waitforfile_timed (
+ "Receiver.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ("Sender.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Invoking the controller\n";
+$controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+$result = $controller->SpawnWaitKill (3000);
+
+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";
+$E =
+ new PerlACE::Process ("$DAnCE/Plan_Launcher/plan_launcher",
+ "-k file://EM.ior -i file://DAM.ior");
+$E->SpawnWaitKill (3000);
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;