diff options
Diffstat (limited to 'CIAO/docs/static_config_example.html')
-rw-r--r-- | CIAO/docs/static_config_example.html | 1353 |
1 files changed, 0 insertions, 1353 deletions
diff --git a/CIAO/docs/static_config_example.html b/CIAO/docs/static_config_example.html deleted file mode 100644 index 5e8c806e2cd..00000000000 --- a/CIAO/docs/static_config_example.html +++ /dev/null @@ -1,1353 +0,0 @@ -<!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.76 [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. -For an example using RTCORBA policies, see <a - href="static_config_rtexample.html">BasicSP with RTCORBA extensions</a>. -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> -<p>The following files are generated - -</p> -<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> -<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%20config%20engine">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%20Static_CCM_App.cpp">modified</a> -to add code to trigger the pulser object on. The generated .mpc file is -<a href="#Modified%20Static_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 file -names -in the .mpc file. These filenames are obtained from the XML descriptor -files. All other necessary files have to be added manually as -indicated. -</p> -<p>Now the static build files can be generated by running the mpc -utility. -</p> -<p><b><tt>> cd ..</tt></b> -<br> -<b><tt>> $ACE_ROOT/bin/mpc -static Static_CCM_App.mpc</tt></b> -</p> -<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> -<p><tt><font color="#3333ff">#include "CCM_ContainerC.h"</font></tt> -<br> -<tt><font color="#3333ff">#include "Container_Base.h"</font></tt> -</p> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<p><tt><font color="#3333ff">#include "Static_Assembly_Config.h"</font></tt> -</p> -<p><tt><font color="#3333ff">char *ior_file_name_ = "comp_serv.ior";</font></tt> -</p> -<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> -<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> -<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> -<p><tt><font color="#3333ff"> return 0;</font></tt> -<br> -<tt><font color="#3333ff">}</font></tt> -<br> - -</p> -<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> -<p><tt><font color="#3333ff"> -CIAO::Server_init -(orb.in ());</font></tt> -</p> -<p><tt><font color="#3333ff"> if -(parse_args -(argc, argv) != 0)</font></tt> -<br> -<tt><font color="#3333ff"> -return -1;</font></tt> -</p> -<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> -<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> -<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> -<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> -<p><tt><font color="#3333ff"> -CIAO::ComponentServer_Impl -*comserv_servant;</font></tt> -</p> -<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> -<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> -<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> -<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> -<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> -<p><tt><font color="#3333ff"> -PortableServer::ServantBase_var -safe_servant (comserv_servant);</font></tt> -</p> -<p><tt><font color="#3333ff"> -Components::ConfigValues -configs;</font></tt> -</p> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<p><tt><font color="#3333ff"> ACE_DEBUG -((LM_DEBUG,</font></tt> -<br> -<tt><font color="#3333ff"> -"Running ComponentServer...\n"));</font></tt> -</p> -<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> -<p><tt><font color="#3333ff"> return 0;</font></tt> -<br> -<tt><font color="#3333ff">}</font></tt> -</p> -<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> -<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> -<p><tt><font color="#3333ff"> IDL_Files {</font></tt> -<br> -<tt><font color="#3333ff"> }</font></tt> -<br> -<tt><font color="#3333ff">}</font></tt> -</p> -<p><a name="Modified Static_CCM_App.cpp"></a><b><u>Modified -Static_CCM_App.cpp</u></b> <br> -</p> -<p><small><span style="font-weight: bold;">(Highlighted text is -manually added to the -generated .cpp file)<br> -<br> -</span></small><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> -<p><tt>#include "Static_Assembly_Config.h"</tt> -</p> -<p><tt>char *ior_file_name_ = "comp_serv.ior";</tt> -<br> -<b><tt><font color="#990000">int rate = 2;</font></tt></b> -</p> -<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> -<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> -<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> -<p><tt> return 0;</tt> -<br> -<tt>}</tt> -<br> - -</p> -<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> -<p><tt> CIAO::Server_init (orb.in ());</tt> -</p> -<p><tt> if (parse_args (argc, argv) != 0)</tt> -<br> -<tt> return -1;</tt> -</p> -<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> -<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> -<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> -<p><tt> mgr->activate -(ACE_ENV_SINGLE_ARG_PARAMETER);</tt> -<br> -<tt> ACE_TRY_CHECK;</tt> -</p> -<p><tt> CIAO::ComponentServer_Impl -*comserv_servant;</tt> -</p> -<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> -<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> -<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> -<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> -<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> -<p><tt> PortableServer::ServantBase_var -safe_servant -(comserv_servant);</tt> -</p> -<p><tt> Components::ConfigValues configs;</tt> -</p> -<p><tt> comserv_servant->init (configs</tt> -<br> -<tt> -ACE_ENV_ARG_PARAMETER);</tt> -<br> -<tt> ACE_TRY_CHECK;</tt> -</p> -<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> -<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> -<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> -<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> -<p><tt> -Components::Deployment::ServerActivator_var -activator;</tt> -<br> -<tt> Components::ConfigValues_var config -= new Components::ConfigValues;</tt> -</p> -<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> -<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> -<p><tt> CORBA::String_var str = -orb->object_to_string -(comserv_obj.in ()</tt> -<br> -<tt> -ACE_ENV_ARG_PARAMETER);</tt> -</p> -<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> -<p><tt> ACE_DEBUG ((LM_DEBUG,</tt> -<br> -<tt> -"Running ComponentServer...\n"));</tt> -</p> -<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> -<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> -<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> -<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> -<p><b><tt><font color="#990000"> -ACE_DEBUG -((LM_DEBUG, "Start up the Event services\n"));</font></tt></b> -</p> -<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> -<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> -<p><tt> return 0;</tt> -<br> -<tt>}</tt> -</p> -<p><a name="Modified Static_CCM_App.mpc"></a><b><u>Modified -Static_CCM_App.mpc</u></b> <br> -</p> -<p><small><span style="font-weight: bold;">(Highlighted text is -manually added to the -generated .cpp file)<br> -<br> -</span></small><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> -<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> -<p><tt> Source_Files {</tt> -<br> -<tt> Static_CCM_App.cpp</tt> -<br> -<tt> }</tt> -</p> -<p><tt> IDL_Files {</tt> -<br> -<tt> }</tt> -<br> -<tt>}</tt> -<br> - -</p> -</body> -</html> |