diff options
author | venkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-03-16 04:35:13 +0000 |
---|---|---|
committer | venkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-03-16 04:35:13 +0000 |
commit | 6ccbfd066a93af871e4aeada0a7105cc7c365145 (patch) | |
tree | d66dc2b3df9fba233562e630e8e8a7365ad3a43d /TAO/CIAO/docs | |
parent | beb2d9bc4dd151f34df997eba00b1a2fe3434482 (diff) | |
download | ATCD-6ccbfd066a93af871e4aeada0a7105cc7c365145.tar.gz |
ChangeLogTag: 2004-03-15 Venkita Subramonian <venkita@harry.cs.wustl.edu>
Diffstat (limited to 'TAO/CIAO/docs')
-rw-r--r-- | TAO/CIAO/docs/index.html | 202 | ||||
-rwxr-xr-x | TAO/CIAO/docs/static_ciao_contents.html | 15 | ||||
-rwxr-xr-x | TAO/CIAO/docs/static_ciao_toc.html | 4 | ||||
-rw-r--r-- | TAO/CIAO/docs/static_config_example.html | 737 |
4 files changed, 864 insertions, 94 deletions
diff --git a/TAO/CIAO/docs/index.html b/TAO/CIAO/docs/index.html index 84a542e3185..c43fb8a5e1b 100644 --- a/TAO/CIAO/docs/index.html +++ b/TAO/CIAO/docs/index.html @@ -1,101 +1,133 @@ -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="GENERATOR" content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]"> + <title>CIAO - Component-Integrated ACE ORB</title> <!-- $Id$ --> -<html> <head> -<title>CIAO - Component-Integrated ACE ORB</title> </head> - <body> -<h1>CIAO - Component-Integrated ACE ORB</h1> -<h2>Introduction</h2> -CIAO is TAO's implementation of <a -href="http://cgi.omg.org/cgi-bin/doc?formal/02-06-65"> CORBA Component -Model (CCM)</a> specially optimized for distributed real-time embedded -(DRE) systems. +<h1> +CIAO - Component-Integrated ACE ORB</h1> -This page contains links to other documents and +<h2> +Introduction</h2> +CIAO is TAO's implementation of <a href="http://cgi.omg.org/cgi-bin/doc?formal/02-06-65">CORBA +Component Model (CCM)</a> specially optimized for distributed real-time +embedded (DRE) systems. This page contains links to other documents and resources for using <i>CIAO</i>. +<h2> +The CIAO Project</h2> -<h2>The CIAO Project</h2> <ul> - <li>The main - <a href="http://www.cs.wustl.edu/~nanbor/projects/CIAO/"> - CIAO project page</a>.<p> - - <li>Project <a href="releasenotes/index.html">Status (aka. Release - Notes.)</a><p> - - <li>This <a href="new_components.html">page on implementing new - component</a> explains all the user-defined and tool-generated - files when implementing a component.<p> - - <li>A <a href="todo.html">list of things</a> that we know need to be - done. :) <p> - - <li>The <a href="ConfigValues.html">Configuration Name/Value - lists</a> lists all the configuration values that CIAO will pass - into vaious CCM mechanisms. The information shown in this page - is not visible to CIAO end-users, which include modeling tool - developers. The information that matters for most users is how - these configurations are represented in various XML - descriptors and CIDL specifications.<p> -</ul> - -<h2>CCM-defined Interface Diagrams</h2> - -Here is a set of UML diagrams that we use to figure out the -relationship among all the different interfaces in CCM. You can -browse the related part from the following list: - -<UL> - <li><a href="imgs/component-basic.png"> Basic component interfaces - </a></li> - <li><a href="imgs/home-config.png"> Home and configuration interfaces - </a></li> - <li><a href="imgs/basic-container.png"> Basic container interfaces - </a></li> - <li><a href="imgs/extended-container.png"> Extended container - interfaces </a></li> - <li><a href="img/deployment.png"> Deployment and installation - interfaces </a></li> -</UL> -All these diagrams are generating from the <a href="imgs/CCM.vsd">CCM.vsd -Visio file</a> (The same file in Visio V.5 format is <a href="imgs/CCM-v5.vsd">here</a>.) - -<h2>CIAO part-by-part</h2> - -Here is a list of the major parts (I don't want to use the word "component" to confuse you :) of CIAO that a user should be aware of. - -<UL> - <li><a href="http://www.dre.vanderbilt.edu/Doxygen/Current/html/tao/ciao/tools/daemon/index.html"><strong>Daemon:</strong></a> A CIAO Daemon is the per-host Daemon process which is used to create/spawn the ComponentServer.</li> - - <li><a href="http://www.dre.vanderbilt.edu/Doxygen/Current/html/tao/ciao/ciao/index.html"><strong>ComponentServer:</strong></a> A ComponentServer is the center part of CIAO. It's responsible for component/home creation.</li> +<li> +The main <a href="http://www.cs.wustl.edu/~nanbor/projects/CIAO/">CIAO +project page</a>.</li> + +<br> +<p> +<li> +Project <a href="releasenotes/index.html">Status (aka. Release Notes.)</a></li> + +<br> +<p> +<li> +This <a href="new_components.html">page on implementing new component</a> +explains all the user-defined and tool-generated files when implementing +a component.</li> + +<br> +<p> +<li> +A <a href="todo.html">list of things</a> that we know need to be done. +:)</li> + +<li> +The <a href="ConfigValues.html">Configuration Name/Value lists</a> lists +all the configuration values that CIAO will pass into vaious CCM mechanisms. +The information shown in this page is not visible to CIAO end-users, which +include modeling tool developers. The information that matters for most +users is how these configurations are represented in various XML descriptors +and CIDL specifications.</li> + +<br> +<p> </ul> + +<h2> +CCM-defined Interface Diagrams</h2> +Here is a set of UML diagrams that we use to figure out the relationship +among all the different interfaces in CCM. You can browse the related part +from the following list: +<ul> +<li> +<a href="imgs/component-basic.png">Basic component interfaces</a></li> - <li><a href="http://www.dre.vanderbilt.edu/Doxygen/Current/html/tao/ciao/tools/assembly_deployer/index.html"><strong>AssemblyDeployer:</strong></a> A AssemblyDeployer is responsible for starting the Assembly process.</li> +<li> +<a href="imgs/home-config.png">Home and configuration interfaces</a></li> - <li><a href="http://www.dre.vanderbilt.edu/Doxygen/Current/html/tao/ciao/tools/assembly_deployer/index.html"><strong>AssemblyManager:</strong></a> A AssemblyManager is the center part to do the Assembly work.</li> -</UL> +<li> +<a href="imgs/basic-container.png">Basic container interfaces</a></li> +<li> +<a href="imgs/extended-container.png">Extended container interfaces</a></li> -<h2>CIAO-tutorials</h2> +<li> +<a href="img/deployment.png">Deployment and installation interfaces</a></li> +</ul> +All these diagrams are generating from the <a href="imgs/CCM.vsd">CCM.vsd +Visio file</a> (The same file in Visio V.5 format is <a href="imgs/CCM-v5.vsd">here</a>.) +<h2> +CIAO part-by-part</h2> +Here is a list of the major parts (I don't want to use the word "component" +to confuse you :) of CIAO that a user should be aware of. +<ul> +<li> +<b><a href="http://www.dre.vanderbilt.edu/Doxygen/Current/html/tao/ciao/tools/daemon/index.html">Daemon:</a></b> +A CIAO Daemon is the per-host Daemon process which is used to create/spawn +the ComponentServer.</li> + +<li> +<b><a href="http://www.dre.vanderbilt.edu/Doxygen/Current/html/tao/ciao/ciao/index.html">ComponentServer:</a></b> +A ComponentServer is the center part of CIAO. It's responsible for component/home +creation.</li> + +<li> +<b><a href="http://www.dre.vanderbilt.edu/Doxygen/Current/html/tao/ciao/tools/assembly_deployer/index.html">AssemblyDeployer:</a></b> +A AssemblyDeployer is responsible for starting the Assembly process.</li> + +<li> +<b><a href="http://www.dre.vanderbilt.edu/Doxygen/Current/html/tao/ciao/tools/assembly_deployer/index.html">AssemblyManager:</a></b> +A AssemblyManager is the center part to do the Assembly work.</li> + +<li> +<b><a href="static_ciao_index.html">Static Configurator: </a></b>The CIAO +Static Configurator acts as a pre-processor that parses the XML descriptor +files into intermediate representation that gets linked into the main application. +This reduces the initialization time for an application that is statically +built. It is mainly aimed at RTOS' like VxWorks that lacks facilities like +shared objects or DLL.</li> +</ul> +<h2> +CIAO-tutorials</h2> We have two Hello tutorials to help the user to understand CCM/CIAO. - -<UL> - <li><a href="./tutorial/Hello"><code>$(CIAO_ROOT)/docs/tutorial/Hello.</code></a> This example shows the low level infomation about CIAO Component/Component Home creation and deletion.</li> - - <li><a href="../examples/Hello"><code>$(CIAO_ROOT)/examples/Hello.</code></a> This example illustrates how to build a CIAO based application <a href="../examples/Hello/step-by-step.html">step-by-step</a>. There is also a detailed documentation explaining this example avalable in both <a href="http://www.dre.vanderbilt.edu/~lu/CCM/CCM_Hello_example.PDF"> PDF</a> and <a href="http://www.dre.vanderbilt.edu/~lu/CCM/CCM_Hello_example.ppt"> PowerPoint</a> format.</li> - -</UL> - - -<!--#include virtual="/~nanbor/signature.html" --> -<!-- <hr> --> -<!-- <\!-- hhmts start -\-> --> -<!-- Last modified: Mon Nov 04 07:55:22 Central Standard Time 2002 --> -<!-- <\!-- hhmts end -\-> --> -<!-- <address>Nanbor Wang <nanbor@cs.wustl.edu></address> --> -</body> </html> - +<ul> +<li> +<tt><a href="tutorial/Hello">$(CIAO_ROOT)/docs/tutorial/Hello.</a></tt> +This example shows the low level infomation about CIAO Component/Component +Home creation and deletion.</li> + +<li> +<tt><a href="../examples/Hello">$(CIAO_ROOT)/examples/Hello.</a></tt> This +example illustrates how to build a CIAO based application <a href="../examples/Hello/step-by-step.html">step-by-step</a>. +There is also a detailed documentation explaining this example avalable +in both <a href="http://www.dre.vanderbilt.edu/~lu/CCM/CCM_Hello_example.PDF">PDF</a> +and <a href="http://www.dre.vanderbilt.edu/~lu/CCM/CCM_Hello_example.ppt">PowerPoint</a> +format.</li> +</ul> +<!--#include virtual="/~nanbor/signature.html" --><!-- <hr> --><!-- <\!-- hhmts start -\-> --><!-- Last modified: Mon Nov 04 07:55:22 Central Standard Time 2002 --><!-- <\!-- hhmts end -\-> --><!-- <address>Nanbor Wang <nanbor@cs.wustl.edu></address> --> +</body> <!-- LocalWords: CCM UML vsd Visio --> +</html> diff --git a/TAO/CIAO/docs/static_ciao_contents.html b/TAO/CIAO/docs/static_ciao_contents.html index dda9a3be94c..5ee1698c08a 100755 --- a/TAO/CIAO/docs/static_ciao_contents.html +++ b/TAO/CIAO/docs/static_ciao_contents.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="Author" content="Venkita Subramonian"> - <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]"> + <meta name="GENERATOR" content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]"> <title>CIAO Static Configuration</title> <base target="main"> <!-- $Id$ --> @@ -57,7 +57,7 @@ them to use only the services available on the target real-time platforms. <a NAME="currentarch"></a>2. Current CIAO Configuration Architecture</h3> <center> -<p><br><img SRC="imgs/ciao-dynamic1.jpg" height=462 width=774> +<p><br><img SRC="ciao-dynamic1.jpg" height=462 width=774> <p><b>Figure 1. Current configuration process in CIAO</b></center> <p>The first stage of the CIAO system lifecycle occurs off-line, when component @@ -87,7 +87,7 @@ information about the component implementations available on that endsystem – each component UUID is mapped to a disk path for the .dll or .so file within which a factory method for its home factory is defined. <center> -<p><img SRC="imgs/ciao-dynamic2.jpg" height=384 width=699> +<p><img SRC="ciao-dynamic2.jpg" height=384 width=699> <p><b>Figure 2. Intermediate representation of configuration information</b></center> <p>The following steps are optional, and will only be performed if they @@ -134,7 +134,7 @@ time (managed by the same project/Makefile processes that do the compilation) into C++ header and source files that are then compiled and linked with the main application. <center> -<p><img SRC="imgs/ciao-static1.jpg" height=523 width=800> +<p><img SRC="ciao-static1.jpg" height=523 width=800> <p><b>Figure 3. Static Configuration in CIAO</b></center> <p>First, one of the generated files is a C++ header file, so that it can @@ -148,7 +148,7 @@ Third, it declares information so that later information depends on earlier information (<b>Figure 4</b>), and the components are directly configured within that header file. <center> -<p><img SRC="imgs/ciao-static2.jpg" height=476 width=816> +<p><img SRC="ciao-static2.jpg" height=476 width=816> <p><b>Figure 4. All XML files are parsed offline and stored as cross-referenced tables in Static_Assembly_Config.h</b></center> @@ -201,7 +201,7 @@ configurations for different system modes). <br> <br> <center> -<p><img SRC="imgs/ciao-static-vs-dynamic.jpg" height=384 width=735> +<p><img SRC="ciao-static-vs-dynamic.jpg" height=384 width=735> <br><b>Figure 5. CIAO Dynamic vs Static Configuration</b></center> <h3> @@ -220,7 +220,8 @@ this file so as to include files that are not known to the static configurator. <p><b><tt>Static_Assembly_Config.h</tt></b> - this file contains the C++ intermediate representation of all the information in the .cad, .csd and .ssd XML files. -<br> +<p><a NAME="Example"></a><b>Example</b> - An <a href="static_config_example.html">example</a> +run is shown using the <a href="../examples/OEP/BasicSP">BasicSP</a> scenario. <h3> <a NAME="futurework"></a><b>5. Future work</b></h3> The current implementation does not have support for processing RTCORBA diff --git a/TAO/CIAO/docs/static_ciao_toc.html b/TAO/CIAO/docs/static_ciao_toc.html index 710276e2880..35adb51ec1c 100755 --- a/TAO/CIAO/docs/static_ciao_toc.html +++ b/TAO/CIAO/docs/static_ciao_toc.html @@ -18,9 +18,9 @@ Architecture</a></li> <li><a target="main" href="static_ciao_contents.html#staticapproach">Static Configuration Approach</a></li> -<li><a target="main" href="static_ciao_contents.html#status">Status of CIAO Static Configuration</a></li> +<li><a target="main" href="static_ciao_contents.html#status">Status of CIAO Static Configuration</a><br> +<a target="main" href="static_ciao_contents.html#Example">Example</a></li> <li><a target="main" href="static_ciao_contents.html#futurework">Future work</a></li> </ol> </body> </html> - diff --git a/TAO/CIAO/docs/static_config_example.html b/TAO/CIAO/docs/static_config_example.html new file mode 100644 index 00000000000..fa2a54b0854 --- /dev/null +++ b/TAO/CIAO/docs/static_config_example.html @@ -0,0 +1,737 @@ +<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="Author" content="Venkita Subramonian"> + <meta name="GENERATOR" content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]"> + <title>BasicSP example using CIAO Static Configurator</title> +<!-- $Id$ --> +</head> +<body> +This example illustrates +how to use the CIAO static configurator for building applications statically. +From the <a href="../examples/OEP/BasicSP">BasicSP</a> directory do the +following. +<p><b><tt>> cd descriptors</tt></b> +<br><b><tt>> $CIAO_ROOT/tools/static_configurator/Static_Assembly_Parser +-a BasicSP.cad</tt></b> +<p>The following files are generated - +<p><a href="#Static_Assembly_Config.h">Static_Assembly_Config.h</a> +<br><a href="#Static_CCM_App.cpp">Static_CCM_App.cpp</a> +<br><a href="#Static_CCM_App.mpc">Static_CCM_App.mpc</a> +<p><a href="#Static_Assembly_Config.h">Static_Assembly_Config.h</a> contains +the intermediate representation of all the parsed component and assembly +information obtained from the XML files. <a href="#Static_CCM_App.cpp">Static_CCM_App.cpp</a> +contains the main driver application. Here a runtime <a href="#static config engine">static +configuration engine</a> is used to create containers, homes, components, +etc and then establish necessary connections between the components. In +the BasicSP example, an external controller (see <tt><a href="../examples/OEP/BasicSP/README">$CIAO_ROOT/examples/OEP/BasicSP/README</a></tt>) +is used to start or stop a pulser. The generated main driver application +(Static_CCM_App.cpp) is <a href="#Modified Static_CCM_App.cpp">modified</a> +to add code to trigger the pulser object on. The generated mpc file is +<a href="#Modified Static_CCM_App.mpc">modified</a> +to add all other necessary files so that the application can be built statically. +Note that the static configurator only generates only certain files in +the mpc. These filenames are obtained from the XML descriptor files. All +other necessary files have to be added manually as indicated. +<p><a NAME="Static_Assembly_Config.h"></a><b><u>Static_Assembly_Config.h</u></b> +<br><tt><font color="#3333FF">#include "Static_Assembly.h"</font></tt> +<p><tt><font color="#3333FF">#include "CCM_ContainerC.h"</font></tt> +<br><tt><font color="#3333FF">#include "Container_Base.h"</font></tt> +<p><tt><font color="#3333FF">//Containers</font></tt> +<br><tt><font color="#3333FF">CIAO::Static_Config::ContainerAttributes +containers_table_[]=</font></tt> +<br><tt><font color="#3333FF">{</font></tt> +<br><tt><font color="#3333FF"> {"", 0}</font></tt> +<br><tt><font color="#3333FF">};</font></tt> +<br> +<p><tt><font color="#3333FF">extern "C" ::Components::HomeExecutorBase_ptr +createECHome_Impl (void);</font></tt> +<br><tt><font color="#3333FF">extern "C" ::PortableServer::Servant createECHome_Servant</font></tt> +<br><tt><font color="#3333FF"> (::Components::HomeExecutorBase_ptr +p,</font></tt> +<br><tt><font color="#3333FF"> ::CIAO::Session_Container *c</font></tt> +<br><tt><font color="#3333FF"> ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt> +<br><tt><font color="#3333FF">extern "C" ::Components::HomeExecutorBase_ptr +createBMDeviceHome_Impl (void);</font></tt> +<br><tt><font color="#3333FF">extern "C" ::PortableServer::Servant createBMDeviceHome_Servant</font></tt> +<br><tt><font color="#3333FF"> (::Components::HomeExecutorBase_ptr +p,</font></tt> +<br><tt><font color="#3333FF"> ::CIAO::Session_Container *c</font></tt> +<br><tt><font color="#3333FF"> ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt> +<br><tt><font color="#3333FF">extern "C" ::Components::HomeExecutorBase_ptr +createBMClosedEDHome_Impl (void);</font></tt> +<br><tt><font color="#3333FF">extern "C" ::PortableServer::Servant createBMClosedEDHome_Servant</font></tt> +<br><tt><font color="#3333FF"> (::Components::HomeExecutorBase_ptr +p,</font></tt> +<br><tt><font color="#3333FF"> ::CIAO::Session_Container *c</font></tt> +<br><tt><font color="#3333FF"> ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt> +<br><tt><font color="#3333FF">extern "C" ::Components::HomeExecutorBase_ptr +createBMDisplayHome_Impl (void);</font></tt> +<br><tt><font color="#3333FF">extern "C" ::PortableServer::Servant createBMDisplayHome_Servant</font></tt> +<br><tt><font color="#3333FF"> (::Components::HomeExecutorBase_ptr +p,</font></tt> +<br><tt><font color="#3333FF"> ::CIAO::Session_Container *c</font></tt> +<br><tt><font color="#3333FF"> ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt> +<br><tt><font color="#3333FF">//Homes</font></tt> +<br><tt><font color="#3333FF">CIAO::Static_Config::HomeAttributes homes_table_[]=</font></tt> +<br><tt><font color="#3333FF">{</font></tt> +<br><tt><font color="#3333FF"> {"a_ECHome", "DCE:3148F760-F2ED-4204-A775-6B972C10E8CB", +"createECHome_Impl", createECHome_Impl, "DCE:75309233-0E0A-4cfb-B186-3E99F69B1D40", +"createECHome_Servant", createECHome_Servant, 0, 0 },</font></tt> +<br><tt><font color="#3333FF"> {"a_BMDeviceHome", "DCE:82C2B032-37F0-4315-A59F-7020D3264E4D", +"createBMDeviceHome_Impl", createBMDeviceHome_Impl, "DCE:93D254CF-9538-44e8-BB98-AABCD134ADD3", +"createBMDeviceHome_Servant", createBMDeviceHome_Servant, 0, 0 },</font></tt> +<br><tt><font color="#3333FF"> {"a_BMClosedEDHome", "DCE:8E6C468D-A39F-46b4-962B-265F1AA8D538", +"createBMClosedEDHome_Impl", createBMClosedEDHome_Impl, "DCE:CDC06FCA-50FC-43ca-8ECC-BEFBD33FEE78", +"createBMClosedEDHome_Servant", createBMClosedEDHome_Servant, 0, 0 },</font></tt> +<br><tt><font color="#3333FF"> {"a_BMDisplayHome", "DCE:8E92655E-CA07-46C8-B127-0F0872A8CC29", +"createBMDisplayHome_Impl", createBMDisplayHome_Impl, "DCE:D7984625-8561-431d-9927-4E498B317C02", +"createBMDisplayHome_Servant", createBMDisplayHome_Servant, 0, 0 }</font></tt> +<br><tt><font color="#3333FF">};</font></tt> +<br> +<p><tt><font color="#3333FF">//Components</font></tt> +<br><tt><font color="#3333FF">CIAO::Static_Config::ComponentAttributes +components_table_[]=</font></tt> +<br><tt><font color="#3333FF">{</font></tt> +<br><tt><font color="#3333FF"> {"a_EC", 0, 0, 0 },</font></tt> +<br><tt><font color="#3333FF"> {"a_BMDevice", -1, -1, 1 },</font></tt> +<br><tt><font color="#3333FF"> {"a_BMClosedED", -1, -1, 2 },</font></tt> +<br><tt><font color="#3333FF"> {"a_BMDisplay", -1, -1, 3 }</font></tt> +<br><tt><font color="#3333FF">};</font></tt> +<br> +<p><tt><font color="#3333FF">//Component Registrations</font></tt> +<br><tt><font color="#3333FF">CIAO::Assembly_Placement::componentinstantiation::Register_Info +component_registrations_table_[]=</font></tt> +<br><tt><font color="#3333FF">{</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Placement::componentinstantiation::COMPONENT, +CIAO::Assembly_Placement::componentinstantiation::IORFILE, "", "ec.ior" +}</font></tt> +<br><tt><font color="#3333FF">};</font></tt> +<br> +<p><tt><font color="#3333FF">//Connections</font></tt> +<br><tt><font color="#3333FF">CIAO::Static_Config::ConnectionAttributes +connections_table_[]=</font></tt> +<br><tt><font color="#3333FF">{</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::PUBLISHER_CONSUMER, +"", "timeout", 0, 1, 0, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::PUBLISHER_CONSUMER, +"", "data_available", 3, 4, 0, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::PUBLISHER_CONSUMER, +"", "out_avail", 6, 7, 0, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::INTERFACE, +"", "datain", 9, 10, 0, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::INTERFACE, +"", "comp_data", 12, 13, 0, 0 }</font></tt> +<br><tt><font color="#3333FF">};</font></tt> +<br> +<p><tt><font color="#3333FF">//Resolver Infos</font></tt> +<br><tt><font color="#3333FF">CIAO::Static_Config::ResolveInfoAttributes +resolvers_table_[]=</font></tt> +<br><tt><font color="#3333FF">{</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::COMP_IDREF, +"a_EC", -1, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::CONSUMER, +"timeout", 2, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::COMP_IDREF, +"a_BMDevice", -1, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::COMP_IDREF, +"a_BMDevice", -1, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::CONSUMER, +"in_avail", 5, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::COMP_IDREF, +"a_BMClosedED", -1, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::COMP_IDREF, +"a_BMClosedED", -1, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::CONSUMER, +"data_ready", 8, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::COMP_IDREF, +"a_BMDisplay", -1, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::COMP_IDREF, +"a_BMClosedED", -1, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::PROVIDER, +"data_read", 11, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::COMP_IDREF, +"a_BMDevice", -1, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::COMP_IDREF, +"a_BMDisplay", -1, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::PROVIDER, +"dataout", 14, 0 },</font></tt> +<br><tt><font color="#3333FF"> {CIAO::Assembly_Connection::COMP_IDREF, +"a_BMClosedED", -1, 0 }</font></tt> +<br><tt><font color="#3333FF">};</font></tt> +<p><a NAME="Static_CCM_App.cpp"></a><b><u>Static_CCM_App.cpp</u></b> +<br><tt><font color="#3333FF">#include "ComponentServer_Impl.h"</font></tt> +<br><tt><font color="#3333FF">#include "CIAO_ServersC.h"</font></tt> +<br><tt><font color="#3333FF">#include "Server_init.h"</font></tt> +<br><tt><font color="#3333FF">#include "Static_Configurator.h"</font></tt> +<br><tt><font color="#3333FF">#include "ace/SString.h"</font></tt> +<br><tt><font color="#3333FF">#include "ace/Get_Opt.h"</font></tt> +<p><tt><font color="#3333FF">#include "Static_Assembly_Config.h"</font></tt> +<p><tt><font color="#3333FF">char *ior_file_name_ = "comp_serv.ior";</font></tt> +<p><tt><font color="#3333FF">int</font></tt> +<br><tt><font color="#3333FF">parse_args (int argc, char *argv[])</font></tt> +<br><tt><font color="#3333FF">{</font></tt> +<br><tt><font color="#3333FF"> ACE_Get_Opt get_opts (argc, argv, +"k:o:");</font></tt> +<br><tt><font color="#3333FF"> int c;</font></tt> +<p><tt><font color="#3333FF"> while ((c = get_opts ()) != -1)</font></tt> +<br><tt><font color="#3333FF"> switch (c)</font></tt> +<br><tt><font color="#3333FF"> {</font></tt> +<br><tt><font color="#3333FF"> case 'o': +// get the file name to write to</font></tt> +<br><tt><font color="#3333FF"> ior_file_name_ += get_opts.opt_arg ();</font></tt> +<br><tt><font color="#3333FF"> break;</font></tt> +<p><tt><font color="#3333FF"> case '?': +// display help for use of the server.</font></tt> +<br><tt><font color="#3333FF"> default:</font></tt> +<br><tt><font color="#3333FF"> +ACE_ERROR_RETURN ((LM_ERROR,</font></tt> +<br><tt><font color="#3333FF"> +"usage: %s\n"</font></tt> +<br><tt><font color="#3333FF"> +"-o <ior_output_file>\n"</font></tt> +<br><tt><font color="#3333FF"> +"\n",</font></tt> +<br><tt><font color="#3333FF"> +argv [0]),</font></tt> +<br><tt><font color="#3333FF"> +-1);</font></tt> +<br><tt><font color="#3333FF"> }</font></tt> +<p><tt><font color="#3333FF"> return 0;</font></tt> +<br><tt><font color="#3333FF">}</font></tt> +<br> +<p><tt><font color="#3333FF">int</font></tt> +<br><tt><font color="#3333FF">main (int argc, char *argv[])</font></tt> +<br><tt><font color="#3333FF">{</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_NEW_ENV</font></tt> +<br><tt><font color="#3333FF"> {</font></tt> +<br><tt><font color="#3333FF"> // Initialize +orb</font></tt> +<br><tt><font color="#3333FF"> CORBA::ORB_var +orb = CORBA::ORB_init (argc,</font></tt> +<br><tt><font color="#3333FF"> +argv,</font></tt> +<br><tt><font color="#3333FF"> +0</font></tt> +<br><tt><font color="#3333FF"> +ACE_ENV_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK;</font></tt> +<p><tt><font color="#3333FF"> CIAO::Server_init +(orb.in ());</font></tt> +<p><tt><font color="#3333FF"> if (parse_args +(argc, argv) != 0)</font></tt> +<br><tt><font color="#3333FF"> +return -1;</font></tt> +<p><tt><font color="#3333FF"> // Get reference +to Root POA.</font></tt> +<br><tt><font color="#3333FF"> CORBA::Object_var +obj</font></tt> +<br><tt><font color="#3333FF"> += orb->resolve_initial_references ("RootPOA"</font></tt> +<br><tt><font color="#3333FF"> +ACE_ENV_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK;</font></tt> +<p><tt><font color="#3333FF"> PortableServer::POA_var +poa</font></tt> +<br><tt><font color="#3333FF"> += PortableServer::POA::_narrow (obj.in ()</font></tt> +<br><tt><font color="#3333FF"> +ACE_ENV_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK;</font></tt> +<p><tt><font color="#3333FF"> // Activate +POA manager</font></tt> +<br><tt><font color="#3333FF"> PortableServer::POAManager_var +mgr</font></tt> +<br><tt><font color="#3333FF"> += poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK;</font></tt> +<p><tt><font color="#3333FF"> mgr->activate +(ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK;</font></tt> +<p><tt><font color="#3333FF"> CIAO::ComponentServer_Impl +*comserv_servant;</font></tt> +<p><tt><font color="#3333FF"> CIAO::Static_Configurator +configurator;</font></tt> +<br><tt><font color="#3333FF"> int containers_table_size +=</font></tt> +<br><tt><font color="#3333FF"> +sizeof (containers_table_)/sizeof(CIAO::Static_Config::ContainerAttributes);</font></tt> +<br><tt><font color="#3333FF"> int homes_table_size +=</font></tt> +<br><tt><font color="#3333FF"> +sizeof (homes_table_)/sizeof(CIAO::Static_Config::HomeAttributes);</font></tt> +<br><tt><font color="#3333FF"> int components_table_size +=</font></tt> +<br><tt><font color="#3333FF"> +sizeof (components_table_)/sizeof(CIAO::Static_Config::ComponentAttributes);</font></tt> +<br><tt><font color="#3333FF"> int component_registrations_table_size +=</font></tt> +<br><tt><font color="#3333FF"> +sizeof (component_registrations_table_)/sizeof(CIAO::Assembly_Placement::componentinstantiation::Register_Info);</font></tt> +<br><tt><font color="#3333FF"> int connections_table_size +=</font></tt> +<br><tt><font color="#3333FF"> +sizeof (connections_table_)/sizeof(CIAO::Static_Config::ConnectionAttributes);</font></tt> +<br><tt><font color="#3333FF"> int resolvers_table_size +=</font></tt> +<br><tt><font color="#3333FF"> +sizeof (resolvers_table_)/sizeof(CIAO::Static_Config::ResolveInfoAttributes);</font></tt> +<p><tt><font color="#3333FF"> CIAO::HOMECREATOR_FUNCPTR_MAP +home_creator_fptr_map;</font></tt> +<br><tt><font color="#3333FF"> CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP +homesvnt_creator_fptr_map;</font></tt> +<br><tt><font color="#3333FF"> CIAO::Static_Config_EntryPoints_Maps +maps;</font></tt> +<br><tt><font color="#3333FF"> maps.home_creator_funcptr_map_ += &home_creator_fptr_map;</font></tt> +<br><tt><font color="#3333FF"> maps.home_servant_creator_funcptr_map_ += &homesvnt_creator_fptr_map;</font></tt> +<p><tt><font color="#3333FF"> int i=0;</font></tt> +<br><tt><font color="#3333FF"> for (i=0; +i<homes_table_size; ++i)</font></tt> +<br><tt><font color="#3333FF"> +{</font></tt> +<br><tt><font color="#3333FF"> +home_creator_fptr_map.bind (homes_table_[i].executor_entrypt_,</font></tt> +<br><tt><font color="#3333FF"> +homes_table_[i].executor_fptr_);</font></tt> +<p><tt><font color="#3333FF"> +homesvnt_creator_fptr_map.bind (homes_table_[i].servant_entrypt_,</font></tt> +<br><tt><font color="#3333FF"> +homes_table_[i].servant_fptr_);</font></tt> +<br><tt><font color="#3333FF"> +}</font></tt> +<p><tt><font color="#3333FF"> ACE_NEW_RETURN +(comserv_servant,</font></tt> +<br><tt><font color="#3333FF"> +CIAO::ComponentServer_Impl (orb.in (),</font></tt> +<br><tt><font color="#3333FF"> +poa.in (),</font></tt> +<br><tt><font color="#3333FF"> +1,</font></tt> +<br><tt><font color="#3333FF"> +&maps),</font></tt> +<br><tt><font color="#3333FF"> +-1);</font></tt> +<p><tt><font color="#3333FF"> PortableServer::ServantBase_var +safe_servant (comserv_servant);</font></tt> +<p><tt><font color="#3333FF"> Components::ConfigValues +configs;</font></tt> +<p><tt><font color="#3333FF"> comserv_servant->init +(configs</font></tt> +<br><tt><font color="#3333FF"> +ACE_ENV_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK;</font></tt> +<p><tt><font color="#3333FF"> // Configuring +ComponentServer.</font></tt> +<br><tt><font color="#3333FF"> PortableServer::ObjectId_var +cs_oid</font></tt> +<br><tt><font color="#3333FF"> += poa->activate_object (comserv_servant</font></tt> +<br><tt><font color="#3333FF"> +ACE_ENV_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK;</font></tt> +<p><tt><font color="#3333FF"> obj = poa->id_to_reference +(cs_oid.in ()</font></tt> +<br><tt><font color="#3333FF"> +ACE_ENV_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK;</font></tt> +<p><tt><font color="#3333FF"> Components::Deployment::ComponentServer_var +comserv_obj =</font></tt> +<br><tt><font color="#3333FF"> +Components::Deployment::ComponentServer::_narrow (obj.in ()</font></tt> +<br><tt><font color="#3333FF"> +ACE_ENV_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK;</font></tt> +<p><tt><font color="#3333FF"> if (CORBA::is_nil +(comserv_obj.in ()))</font></tt> +<br><tt><font color="#3333FF"> +ACE_ERROR_RETURN ((LM_ERROR, "Unable to activate ComponentServer object\n"), +-1);</font></tt> +<br> +<p><tt><font color="#3333FF"> Components::Deployment::ServerActivator_var +activator;</font></tt> +<br><tt><font color="#3333FF"> Components::ConfigValues_var +config = new Components::ConfigValues;</font></tt> +<p><tt><font color="#3333FF"> comserv_servant->set_objref +(activator.in (),</font></tt> +<br><tt><font color="#3333FF"> +config,</font></tt> +<br><tt><font color="#3333FF"> +comserv_obj.in ()</font></tt> +<br><tt><font color="#3333FF"> +ACE_ENV_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK;</font></tt> +<p><a NAME="static config engine"></a><tt><font color="#FF0000">configurator.configure +(orb.in (),</font></tt> +<br><tt><font color="#FF0000"> +comserv_obj.in (),</font></tt> +<br><tt><font color="#FF0000"> +containers_table_,</font></tt> +<br><tt><font color="#FF0000"> +containers_table_size,</font></tt> +<br><tt><font color="#FF0000"> +homes_table_,</font></tt> +<br><tt><font color="#FF0000"> +homes_table_size,</font></tt> +<br><tt><font color="#FF0000"> +components_table_,</font></tt> +<br><tt><font color="#FF0000"> +components_table_size,</font></tt> +<br><tt><font color="#FF0000"> +component_registrations_table_,</font></tt> +<br><tt><font color="#FF0000"> +component_registrations_table_size,</font></tt> +<br><tt><font color="#FF0000"> +connections_table_,</font></tt> +<br><tt><font color="#FF0000"> +connections_table_size,</font></tt> +<br><tt><font color="#FF0000"> +resolvers_table_,</font></tt> +<br><tt><font color="#FF0000"> +resolvers_table_size);</font></tt> +<p><tt><font color="#3333FF"> CORBA::String_var +str = orb->object_to_string (comserv_obj.in ()</font></tt> +<br><tt><font color="#3333FF"> +ACE_ENV_ARG_PARAMETER);</font></tt> +<p><tt><font color="#3333FF"> CIAO::Utility::write_IOR +(ior_file_name_, str.in ());</font></tt> +<br><tt><font color="#3333FF"> ACE_DEBUG +((LM_INFO, "ComponentServer IOR: %s\n", str.in ()));</font></tt> +<p><tt><font color="#3333FF"> ACE_DEBUG ((LM_DEBUG,</font></tt> +<br><tt><font color="#3333FF"> +"Running ComponentServer...\n"));</font></tt> +<p><tt><font color="#3333FF"> // Run the +main event loop for the ORB.</font></tt> +<br><tt><font color="#3333FF"> orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt> +<br><tt><font color="#3333FF"> ACE_TRY_CHECK</font></tt> +<br><tt><font color="#3333FF"> }</font></tt> +<br><tt><font color="#3333FF"> ACE_CATCHANY</font></tt> +<br><tt><font color="#3333FF"> {</font></tt> +<br><tt><font color="#3333FF"> ACE_PRINT_EXCEPTION +(ACE_ANY_EXCEPTION,</font></tt> +<br><tt><font color="#3333FF"> +"server::main \n");</font></tt> +<br><tt><font color="#3333FF"> return 1;</font></tt> +<br><tt><font color="#3333FF"> }</font></tt> +<br><tt><font color="#3333FF"> ACE_ENDTRY;</font></tt> +<p><tt><font color="#3333FF"> return 0;</font></tt> +<br><tt><font color="#3333FF">}</font></tt> +<p><a NAME="Static_CCM_App.mpc"></a><b><u>Static_CCM_App.mpc</u></b> +<br><tt><font color="#3333FF">project(Static_CCM_App) : ciao_server, ciao_client, +rtcorba, rtportableserver, iortable, acexml {</font></tt> +<br><tt><font color="#3333FF">includes += $(ACE_ROOT)/TAO/CIAO/tools/Assembly_Deployer</font></tt> +<br><tt><font color="#3333FF">includes += $(ACE_ROOT)/TAO/CIAO/tools/static_configurator</font></tt> +<br><tt><font color="#3333FF">libs += CIAO_XML_Helpers Static_Configurator</font></tt> +<br><tt><font color="#3333FF">after += CIAO_XML_Helpers Static_Configurator</font></tt> +<br> +<p><tt><font color="#3333FF">libs += EC_exec</font></tt> +<br><tt><font color="#3333FF">after += EC_exec</font></tt> +<br><tt><font color="#3333FF">libs += EC_svnt</font></tt> +<br><tt><font color="#3333FF">after += EC_svnt</font></tt> +<br><tt><font color="#3333FF">libs += BMDevice_exec</font></tt> +<br><tt><font color="#3333FF">after += BMDevice_exec</font></tt> +<br><tt><font color="#3333FF">libs += BMDevice_svnt</font></tt> +<br><tt><font color="#3333FF">after += BMDevice_svnt</font></tt> +<br><tt><font color="#3333FF">libs += BMClosedED_exec</font></tt> +<br><tt><font color="#3333FF">after += BMClosedED_exec</font></tt> +<br><tt><font color="#3333FF">libs += BMClosedED_svnt</font></tt> +<br><tt><font color="#3333FF">after += BMClosedED_svnt</font></tt> +<br><tt><font color="#3333FF">libs += BMDisplay_exec</font></tt> +<br><tt><font color="#3333FF">after += BMDisplay_exec</font></tt> +<br><tt><font color="#3333FF">libs += BMDisplay_svnt</font></tt> +<br><tt><font color="#3333FF">after += BMDisplay_svnt</font></tt> +<br><tt><font color="#3333FF"> Source_Files {</font></tt> +<br><tt><font color="#3333FF"> Static_CCM_App.cpp</font></tt> +<br><tt><font color="#3333FF"> }</font></tt> +<p><tt><font color="#3333FF"> IDL_Files {</font></tt> +<br><tt><font color="#3333FF"> }</font></tt> +<br><tt><font color="#3333FF">}</font></tt> +<p><a NAME="Modified Static_CCM_App.cpp"></a><b><u>Modified Static_CCM_App.cpp</u></b> +<br><tt>#include "ComponentServer_Impl.h"</tt> +<br><tt>#include "CIAO_ServersC.h"</tt> +<br><tt>#include "Server_init.h"</tt> +<br><tt>#include "Static_Configurator.h"</tt> +<br><tt>#include "ace/SString.h"</tt> +<br><tt>#include "ace/Get_Opt.h"</tt> +<p><tt>#include "Static_Assembly_Config.h"</tt> +<p><tt>char *ior_file_name_ = "comp_serv.ior";</tt> +<br><b><tt><font color="#990000">int rate = 2;</font></tt></b> +<p><tt>int</tt> +<br><tt>parse_args (int argc, char *argv[])</tt> +<br><tt>{</tt> +<br><tt> ACE_Get_Opt get_opts (argc, argv, "k:o:");</tt> +<br><tt> int c;</tt> +<p><tt> while ((c = get_opts ()) != -1)</tt> +<br><tt> switch (c)</tt> +<br><tt> {</tt> +<br><tt> case 'o': // get the file +name to write to</tt> +<br><tt> ior_file_name_ = get_opts.opt_arg +();</tt> +<br><tt> break;</tt> +<p><tt> case '?': // display help for +use of the server.</tt> +<br><tt> default:</tt> +<br><tt> ACE_ERROR_RETURN ((LM_ERROR,</tt> +<br><tt> +"usage: %s\n"</tt> +<br><tt> +"-o <ior_output_file>\n"</tt> +<br><tt> +"\n",</tt> +<br><tt> +argv [0]),</tt> +<br><tt> +-1);</tt> +<br><tt> }</tt> +<p><tt> return 0;</tt> +<br><tt>}</tt> +<br> +<p><tt>int</tt> +<br><tt>main (int argc, char *argv[])</tt> +<br><tt>{</tt> +<br><tt> ACE_TRY_NEW_ENV</tt> +<br><tt> {</tt> +<br><tt> // Initialize orb</tt> +<br><tt> CORBA::ORB_var orb = CORBA::ORB_init +(argc,</tt> +<br><tt> +argv,</tt> +<br><tt> +0</tt> +<br><tt> +ACE_ENV_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK;</tt> +<p><tt> CIAO::Server_init (orb.in ());</tt> +<p><tt> if (parse_args (argc, argv) != 0)</tt> +<br><tt> return -1;</tt> +<p><tt> // Get reference to Root POA.</tt> +<br><tt> CORBA::Object_var obj</tt> +<br><tt> = orb->resolve_initial_references +("RootPOA"</tt> +<br><tt> +ACE_ENV_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK;</tt> +<p><tt> PortableServer::POA_var poa</tt> +<br><tt> = PortableServer::POA::_narrow +(obj.in ()</tt> +<br><tt> +ACE_ENV_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK;</tt> +<p><tt> // Activate POA manager</tt> +<br><tt> PortableServer::POAManager_var mgr</tt> +<br><tt> = poa->the_POAManager +(ACE_ENV_SINGLE_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK;</tt> +<p><tt> mgr->activate (ACE_ENV_SINGLE_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK;</tt> +<p><tt> CIAO::ComponentServer_Impl *comserv_servant;</tt> +<p><tt> CIAO::Static_Configurator configurator;</tt> +<br><tt> int containers_table_size =</tt> +<br><tt> sizeof (containers_table_)/sizeof(CIAO::Static_Config::ContainerAttributes);</tt> +<br><tt> int homes_table_size =</tt> +<br><tt> sizeof (homes_table_)/sizeof(CIAO::Static_Config::HomeAttributes);</tt> +<br><tt> int components_table_size =</tt> +<br><tt> sizeof (components_table_)/sizeof(CIAO::Static_Config::ComponentAttributes);</tt> +<br><tt> int component_registrations_table_size +=</tt> +<br><tt> sizeof (component_registrations_table_)/sizeof(CIAO::Assembly_Placement::componentinstantiation::Register_Info);</tt> +<br><tt> int connections_table_size =</tt> +<br><tt> sizeof (connections_table_)/sizeof(CIAO::Static_Config::ConnectionAttributes);</tt> +<br><tt> int resolvers_table_size =</tt> +<br><tt> sizeof (resolvers_table_)/sizeof(CIAO::Static_Config::ResolveInfoAttributes);</tt> +<p><tt> CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map;</tt> +<br><tt> CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP +homesvnt_creator_fptr_map;</tt> +<br><tt> CIAO::Static_Config_EntryPoints_Maps +maps;</tt> +<br><tt> maps.home_creator_funcptr_map_ = +&home_creator_fptr_map;</tt> +<br><tt> maps.home_servant_creator_funcptr_map_ += &homesvnt_creator_fptr_map;</tt> +<p><tt> int i=0;</tt> +<br><tt> for (i=0; i<homes_table_size; +++i)</tt> +<br><tt> {</tt> +<br><tt> home_creator_fptr_map.bind +(homes_table_[i].executor_entrypt_,</tt> +<br><tt> +homes_table_[i].executor_fptr_);</tt> +<p><tt> homesvnt_creator_fptr_map.bind +(homes_table_[i].servant_entrypt_,</tt> +<br><tt> +homes_table_[i].servant_fptr_);</tt> +<br><tt> }</tt> +<p><tt> ACE_NEW_RETURN (comserv_servant,</tt> +<br><tt> +CIAO::ComponentServer_Impl (orb.in (),</tt> +<br><tt> +poa.in (),</tt> +<br><tt> +1,</tt> +<br><tt> +&maps),</tt> +<br><tt> +-1);</tt> +<p><tt> PortableServer::ServantBase_var safe_servant +(comserv_servant);</tt> +<p><tt> Components::ConfigValues configs;</tt> +<p><tt> comserv_servant->init (configs</tt> +<br><tt> +ACE_ENV_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK;</tt> +<p><tt> // Configuring ComponentServer.</tt> +<br><tt> PortableServer::ObjectId_var cs_oid</tt> +<br><tt> = poa->activate_object +(comserv_servant</tt> +<br><tt> +ACE_ENV_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK;</tt> +<p><tt> obj = poa->id_to_reference (cs_oid.in +()</tt> +<br><tt> +ACE_ENV_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK;</tt> +<p><tt> Components::Deployment::ComponentServer_var +comserv_obj =</tt> +<br><tt> Components::Deployment::ComponentServer::_narrow +(obj.in ()</tt> +<br><tt> +ACE_ENV_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK;</tt> +<p><tt> if (CORBA::is_nil (comserv_obj.in +()))</tt> +<br><tt> ACE_ERROR_RETURN ((LM_ERROR, +"Unable to activate ComponentServer object\n"), -1);</tt> +<br> +<p><tt> Components::Deployment::ServerActivator_var +activator;</tt> +<br><tt> Components::ConfigValues_var config += new Components::ConfigValues;</tt> +<p><tt> comserv_servant->set_objref (activator.in +(),</tt> +<br><tt> +config,</tt> +<br><tt> +comserv_obj.in ()</tt> +<br><tt> +ACE_ENV_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK;</tt> +<p><tt> configurator.configure (orb.in (),</tt> +<br><tt> +comserv_obj.in (),</tt> +<br><tt> +containers_table_,</tt> +<br><tt> +containers_table_size,</tt> +<br><tt> +homes_table_,</tt> +<br><tt> +homes_table_size,</tt> +<br><tt> +components_table_,</tt> +<br><tt> +components_table_size,</tt> +<br><tt> +component_registrations_table_,</tt> +<br><tt> +component_registrations_table_size,</tt> +<br><tt> +connections_table_,</tt> +<br><tt> +connections_table_size,</tt> +<br><tt> +resolvers_table_,</tt> +<br><tt> +resolvers_table_size);</tt> +<p><tt> CORBA::String_var str = orb->object_to_string +(comserv_obj.in ()</tt> +<br><tt> +ACE_ENV_ARG_PARAMETER);</tt> +<p><tt> CIAO::Utility::write_IOR (ior_file_name_, +str.in ());</tt> +<br><tt> ACE_DEBUG ((LM_INFO, "ComponentServer +IOR: %s\n", str.in ()));</tt> +<p><tt> ACE_DEBUG ((LM_DEBUG,</tt> +<br><tt> +"Running ComponentServer...\n"));</tt> +<p><b><tt><font color="#990000"> CORBA::Object_var +pulser_obj</font></tt></b> +<br><b><tt><font color="#990000"> += orb->string_to_object ("file://ec.ior"</font></tt></b> +<br><b><tt><font color="#990000"> +ACE_ENV_ARG_PARAMETER);</font></tt></b> +<br><b><tt><font color="#990000"> ACE_TRY_CHECK;</font></tt></b> +<p><b><tt><font color="#990000"> BasicSP::EC_var +pulser</font></tt></b> +<br><b><tt><font color="#990000"> += BasicSP::EC::_narrow (pulser_obj.in ()</font></tt></b> +<br><b><tt><font color="#990000"> +ACE_ENV_ARG_PARAMETER);</font></tt></b> +<br><b><tt><font color="#990000"> ACE_TRY_CHECK;</font></tt></b> +<p><b><tt><font color="#990000"> if (CORBA::is_nil +(pulser.in ()))</font></tt></b> +<br><b><tt><font color="#990000"> +ACE_ERROR_RETURN ((LM_ERROR, "Unable to acquire 'EC' objref\n"), -1);</font></tt></b> +<p><b><tt><font color="#990000"> pulser->hertz +(rate</font></tt></b> +<br><b><tt><font color="#990000"> +ACE_ENV_ARG_PARAMETER);</font></tt></b> +<br><b><tt><font color="#990000"> ACE_TRY_CHECK;</font></tt></b> +<p><b><tt><font color="#990000"> ACE_DEBUG +((LM_DEBUG, "Start up the Event services\n"));</font></tt></b> +<p><b><tt><font color="#990000"> pulser->start +(ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt></b> +<br><b><tt><font color="#990000"> ACE_TRY_CHECK;</font></tt></b> +<p><tt> // Run the main event loop for the +ORB.</tt> +<br><tt> orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);</tt> +<br><tt> ACE_TRY_CHECK</tt> +<br><tt> }</tt> +<br><tt> ACE_CATCHANY</tt> +<br><tt> {</tt> +<br><tt> ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,</tt> +<br><tt> +"server::main \n");</tt> +<br><tt> return 1;</tt> +<br><tt> }</tt> +<br><tt> ACE_ENDTRY;</tt> +<p><tt> return 0;</tt> +<br><tt>}</tt> +<p><a NAME="Modified Static_CCM_App.mpc"></a><b><u>Modified Static_CCM_App.mpc</u></b> +<br><tt>project(Static_CCM_App) : ciao_server, ciao_client, rtcorba, rtportableserver, +iortable, acexml {</tt> +<br><tt>includes += $(ACE_ROOT)/TAO/CIAO/tools/Assembly_Deployer</tt> +<br><tt>includes += $(ACE_ROOT)/TAO/CIAO/tools/static_configurator</tt> +<br><tt>libs += CIAO_XML_Helpers Static_Configurator</tt> +<br><tt>after += CIAO_XML_Helpers Static_Configurator</tt> +<p><b><tt><font color="#990000">libs += BasicSP_stub BasicSP_svnt</font></tt></b> +<br><b><tt><font color="#990000">after += BasicSP_stub BasicSP_svnt</font></tt></b> +<br><tt>libs += EC_exec</tt> +<br><tt>after += EC_exec</tt> +<br><tt>libs += EC_svnt <b><font color="#990000">EC_stub</font></b></tt> +<br><tt>after += EC_svnt <b><font color="#990000">EC_stub</font></b></tt> +<br><tt>libs += BMDevice_exec</tt> +<br><tt>after += BMDevice_exec</tt> +<br><tt>libs += BMDevice_svnt <b><font color="#990000">BMDevice_stub</font></b></tt> +<br><tt>after += BMDevice_svnt <b><font color="#990000">BMDevice_stub</font></b></tt> +<br><tt>libs += BMClosedED_exec</tt> +<br><tt>after += BMClosedED_exec</tt> +<br><tt>libs += BMClosedED_svnt <b><font color="#990000">BMClosedED_stub</font></b></tt> +<br><tt>after += BMClosedED_svnt <b><font color="#990000">BMClosedED_stub</font></b></tt> +<br><tt>libs += BMDisplay_exec</tt> +<br><tt>after += BMDisplay_exec</tt> +<br><tt>libs += BMDisplay_svnt <b><font color="#990000">BMDisplay_stub</font></b></tt> +<br><tt>after += BMDisplay_svnt <b><font color="#990000">BMDisplay_stub</font></b></tt> +<p><tt> Source_Files {</tt> +<br><tt> Static_CCM_App.cpp</tt> +<br><tt> }</tt> +<p><tt> IDL_Files {</tt> +<br><tt> }</tt> +<br><tt>}</tt> +<br> +</body> +</html> |