diff options
author | msmit <msmit@remedy.nl> | 2010-06-18 11:43:13 +0000 |
---|---|---|
committer | msmit <msmit@remedy.nl> | 2010-06-18 11:43:13 +0000 |
commit | 1d21a473269bf7373af0e1b86c5070a17e0246ef (patch) | |
tree | bf44b5e49d1613caaac0bba67db9c5ee2559bdcc | |
parent | 0621064e1e4a1310c2050c9e48029288dc5e39a6 (diff) | |
download | ATCD-1d21a473269bf7373af0e1b86c5070a17e0246ef.tar.gz |
Fri Jun 18 11:40:01 UTC 2010 Marcel Smit <msmit@remedy.nl>
* connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html:
* connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment:
* connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp:
* connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp:
* connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp:
* connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp:
* connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp:
Update.
7 files changed, 925 insertions, 0 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog index 9ec9e0115b4..14bf4c5e790 100644 --- a/CIAO/ChangeLog +++ b/CIAO/ChangeLog @@ -1,3 +1,14 @@ +Fri Jun 18 11:40:01 UTC 2010 Marcel Smit <msmit@remedy.nl> + + * connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html: + * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment: + * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp: + * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp: + * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp: + * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp: + * connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp: + Update. + Fri Jun 18 11:41:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl> * connectors/dds4ccm/impl/dds/DataReader_T.h: diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html index 29045da4b0d..8a79df3619d 100644 --- a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html +++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/06_compilation.html @@ -50,8 +50,193 @@ </p> <h2>Deployment</h2> <p> + Once all binaries are compiled, they're ready to be deployed. In this tutorial + we are using DAnCE to deploy our system.<br/> + DAnCE starts a system in two phases : + <ol> + <li>configuration_complete</li> + <li>ccm_activate</li> + </ol> + DAnCE shuts down a system again in two phases : + <ol> + <li>passivate</li> + <li>ccm_remove</li> + </ol> + Each component should have these four methods implemented. The business logic + implemented in each step depends on you implementation.<br/> + + There're several processes taking care of the total deployment process. + See the DAnCE documentation for more information about which processes there + are and what their responsibilities are.<br/> + DAnCE will start and shutdown a system with the aid of a deployment plan. A + deployment plan describes which artifacts must run on which nodes and which + components are connected to eachother via which interface (more on this later). + All connections between components are made before 'configuration_complete' is + called. + <p> + The deployment plan will be generated by the modelling tools but we take a + brief look at the most important items of a deployment plan. A deployment plan + is a XML based file which is devided into the following (main) sections:<br/> + <ul> + <li>Implementations</li> + <li>Entry points</li> + <li>Instances</li> + <li>Connections</li> + <li>Artifacts</li> + </ul> + </p> + + <b><i>All deployment code fragments mentioned in the rest of this tutorial are + *NO* exports of any modelling tool.</i></b> + + <h3>Implementations and Entry Points</h3> + <p> + This defines which executor and servant artifacts (binaries) should be + used. Implementations also defines which entry points in the binaries + should be used. <a href="./Code/Deployment/implementation.cdp">This<a> file shows the + implementation section of the controller.<br/> + Beware that artifacts and entry points are exact otherwise deployment will + fail.<br> </p> + <h3>Instances</h3> + <p> + Instances define which artifacts run on which node. Every fysical artifact in + the system results in one instance. The <node> section refers to the + fysical node on which this instance will be deployed.<br/> + An instance always refers to an implementation. + It's possible that more than one instance refers to the same implementation.<br/> + The instance section also provide the initial values of all attributes + defined on the component.<br/> + <a href="./Code/Deployment/instance.cdp">This</a> file shows the instance section of + the controller.<br/> + </p> + + <h3>Connections</h3> + <p> + A connection section defines which components are connected together. + To define a connection one should know which type of DDS4CCM connector is used. + <br/><br/> + <b>Example</b><br/> + The sender component is connected to a DDS4CCM connector via the DDS_Write + extented port of the DDS_Event basic port. The DDS_Write port for the + DDS_Event connector is called 'supplier' and the Writer interface on this + extented port is called 'data' (see ccm_dds.idl). In Shapes_Sender_comp.idl, + the DDS_Write port is called 'info_write'. The DDS4CCM connector provide + the writer interface, the Sender component uses this.<br/> + The connection is 'local' since a connector and a component are always running + in the same process.<br/> + Now that we have got all the data we need to know to make a connection + between the Sender and DDS4CCM connector regarding the writer port.<br/><br/> + + <<b>connection</b>><br/> + <<b>name</b>>writer_connection<<b>/name</b>> + <font color="grey">//unique name of the connection</font><br/> + <<b>deployRequirement</b>><br/> + <<b>name</b>>edu.dre.vanderbilt.DAnCE.ConnectionType<<b>/name</b>><br/> + <<b>resourceType</b>>Local_Interface<<b>/resourceType</b>> + <font color="grey">//The connection between the Sender and the DDS4CCM connector is 'local'</font><br/> + <<b>deployRequirement</b>><br/> + <<b>internalEndpoint</b>> + <font color="grey">//First endpoint (the Sender component).</font><br/> + <font color="grey">//PortName is defined as follows</font><br/> + <font color="grey">//<name_of_port_in_sender_component_idl>_< + name_of_interface_in_extended_port>(see ccm_dds.idl)</font><br/> + <<b>portName</b>>info_write_data<<b>/portName</b>><br/> + <<b>provider</b>>false<<b>/provider</b>> + <font color="grey">//The Sender component doens't provide the interface</font><br/> + <<b>kind</b>>SimplexReceptacle<<b>/kind</b>><br/> + <<b>instance</b> xmi:idref="SenderComponentInstance" /> + <font color="grey">//Reference to the artifact (the Sender component instance in this case)</font><br/> + <<b>/internalEndpoint</b>><br/> + <<b>internalEndpoint</b>> + <font color="grey">//First endpoint (the Sender component).</font><br/> + <font color="grey">//PortName is defined as follows</font><br/> + <font color="grey">//<name_of_port_in_dds4ccm_connector>_< + name_of_interface_in_extended_port>(see ccm_dds.idl)</font><br/> + <<b>portName</b>>supplier_data<<b>/portName</b>><br/> + <<b>provider</b>>true<<b>/provider</b>> + <font color="grey">//The DDS4CCM connector provides this interface</font><br/> + <<b>kind</b>>Facet<<b>/kind</b>><br/> + <<b>instance</b> xmi:idref="Shapes_SenderConnectorInstance" /> + <font color="grey">//The reference to the connector instance.</font><br/> + <<b>/internalEndpoint</b>><br/> + <<b>/connection</b>><br/> + </p> + <p> + Take a look at <a href="./Code/Deployment/connections.cdp">this</a> file to see which + connection should be made by DAnCE in order to run the shapes system properly. + Also take a look at the connection between the Controller and the Sender. This + one is different because no DDS4CCM connector is used. + </p> + <p> + When the deployment tools (in this case DAnCE) deploys this system, it'll connect + all defined connectors before the system is started (i.e. before configuration_complete + is called on a component).<br/> + </p> + <h4>Coding connections</h4> + <p> + Every component has got a context. The context is set by DAnCE and is + the 'gateway' to all other component your component is connected to. The + context caches all these connections so that the user doesn't need to + cache those in his/her component. + </p> + <p> + <b><u>Sender</u></b><br/> + The Sender uses the writer connection of the DDS_Write extented port of the + DDS_Event basic port. The following code retrieves the connection to the + Writer interface from the context. + <br/> + <code>::Shapes::ShapesConnector::Writer_var writer = + this->context_->get_connection_info_write_data ();</code> + <br/> + </p> + + <p> + <b><u>Controller</u></b><br/> + The Controller uses the 'Control_obj' interface of the Sender component. + Since this isn't a connection to a DDS4CCM connector, the code is rather + simple. Looking at the IDL of the sender and receiver, the following code can be + constructed in order to get the connection the Control_obj interface: + <br/> + <code>::Shapes::Control_obj_var control = + this->context_->get_connection_control ();</code> + <br/> + </p> + + <p> + <b><u>Receiver</u></b><br/> + The Receiver 'listens' to DDS and thus should provide a callback for the + DDS4CCM connector. Please take a look at the generated code of the executor + <a href="./Code/Shapes_Receiver_comp/Shapes_Receiver_comp_exec.cpp">code</a> + of the receiver to see how this can be done.<br/> + By default, a DDS4CCM connector is not listening so one should instruct the + DDS4CCM connector to start listening to samples. Therefor + a DataListenerControl interface (data_control) is available. The following + code ensures that the DDS4CCM connector starts listening to the desired samples. + <br/> + <code> + ::CCM_DDS::DataListenerControl_var lc = + this->context_->get_connection_info_out_data_control ();<br/> + lc->mode (::CCM_DDS::ONE_BY_ONE);<br/> + </code><br/> + This ensures that 'on_one_data' is gets invoked by the DDS4CCM connector + for each sample.<br/> + It's also possible to use ::CCM_DDS::MANY_BY_MANY. This will make sure that + on_many_data on the listeners callback gets invoked by the DDS4CCM connector.<br/> + To turn off listening, just call <code>lc->mode (::CCM_DDS::NOT_ENABLED); + <br/> + </p> + + <h3>Artifacts</h3> + Artifacts sections contains the names of the binaries. See + <a href="./Code/Deployment/artifacts.cdp">this</a>files for an overview of all + artifacts in the shapes system. + + <h3>Complete plan</h3> + <a href="./Code/Deployment/Plan.cdp">This</a> file shows the complete deployment + plan.<br/> + <hr /> <table width="100%" border="0"> <tr> diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp new file mode 100644 index 00000000000..68ec6cc0e32 --- /dev/null +++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/Plan.cdp @@ -0,0 +1,476 @@ +<!-- $Id $ --> +<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>Shapes_Depl_1</label> + <UUID>Shapes_Depl_1</UUID> + + <implementation xmi:id="ReceiverComponentImplementation"> + <name>ReceiverComponentImplementation</name> + <source/> + <artifact xmi:idref="Receiver_ExecArtifact" /> + <artifact xmi:idref="Receiver_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Shapes_Receiver_comp_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Shapes_Receiver_comp_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Shapes_Receiver_comp_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Shapes_Receiver_comp_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="ControlComponentImplementation"> + <name>ControlComponentImplementation</name> + <source/> + <artifact xmi:idref="Control_ExecArtifact" /> + <artifact xmi:idref="Control_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Shapes_Control_comp_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Shapes_Control_comp_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Shapes_Control_comp_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Shapes_Control_comp_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="Shapes_ConnectorComponentImplementation"> + <name>Shapes_ConnectorComponentImplementation</name> + <source/> + <artifact xmi:idref="Shapes_Connector_ExecArtifact" /> + <artifact xmi:idref="Shapes_Connector_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Shapes_ShapesConnector_DDS_Event_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Shapes_ShapesConnector_DDS_Event_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Shapes_conn_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Shapes_conn_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="SenderComponentImplementation"> + <name>SenderComponentImplementation</name> + <source/> + <artifact xmi:idref="Sender_ExecArtifact" /> + <artifact xmi:idref="Sender_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Shapes_Sender_comp_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Shapes_Sender_comp_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Shapes_Sender_comp_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Shapes_Sender_comp_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <instance xmi:id="ReceiverComponentInstance"> + <name>ReceiverComponent</name> + <node>ReceiverNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="ReceiverComponentImplementation" /> + </instance> + + <instance xmi:id="ControlComponentInstance"> + <name>ControlComponent</name> + <node>ControlNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="ControlComponentImplementation" /> + <configProperty> + <name>rate</name> + <value> + <type> + <kind>tk_ulong</kind> + </type> + <value> + <ulong>100</ulong> + </value> + </value> + </configProperty> + <configProperty> + <name>max_x</name> + <value> + <type> + <kind>tk_ushort</kind> + </type> + <value> + <ushort>225</ushort> + </value> + </value> + </configProperty> + <configProperty> + <name>max_y</name> + <value> + <type> + <kind>tk_ushort</kind> + </type> + <value> + <ushort>250</ushort> + </value> + </value> + </configProperty> + <configProperty> + <name>max_size</name> + <value> + <type> + <kind>tk_ushort</kind> + </type> + <value> + <ushort>25</ushort> + </value> + </value> + </configProperty> + <configProperty> + <name>resize_shape</name> + <value> + <type> + <kind>tk_boolean</kind> + </type> + <value> + <boolean>true</boolean> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="Shapes_SenderConnectorInstance"> + <name>Shapes_ConnectorComponent</name> + <node>SenderNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Shapes_ConnectorComponentImplementation" /> + <configProperty> + <name>topic_name</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Square</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="Shapes_ReceiverConnectorInstance"> + <name>Shapes_ReceiverConnectorInstance</name> + <node>ReceiverNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Shapes_ConnectorComponentImplementation" /> + <configProperty> + <name>topic_name</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Square</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="SenderComponentInstance"> + <name>SenderComponent</name> + <node>SenderNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="SenderComponentImplementation" /> + </instance> + + <connection> + <name>_listenercontrol</name> + <deployRequirement> + <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name> + <resourceType>Local_Interface</resourceType> + </deployRequirement> + <internalEndpoint> + <portName>info_out_data_control</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="ReceiverComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>push_consumer_data_control</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="Shapes_ReceiverConnectorInstance" /> + </internalEndpoint> + </connection> + <connection> + <name>_listener</name> + <deployRequirement> + <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name> + <resourceType>Local_Interface</resourceType> + </deployRequirement> + <internalEndpoint> + <portName>info_out_data_listener</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="ReceiverComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>push_consumer_data_listener</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="Shapes_ReceiverConnectorInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>writer_connection</name> + <deployRequirement> + <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name> + <resourceType>Local_Interface</resourceType> + </deployRequirement> + <internalEndpoint> + <portName>info_write_data</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="SenderComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>supplier_data</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="Shapes_SenderConnectorInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>control_connection</name> + <internalEndpoint> + <portName>control</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="ControlComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>control</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="SenderComponentInstance" /> + </internalEndpoint> + </connection> + + <artifact xmi:id="Sender_ExecArtifact"> + <name>Shapes_Sender_comp_exec</name> + <source/> + <node/> + <location>Shapes_Sender_comp_exec</location> + </artifact> + <artifact xmi:id="Sender_SvntArtifact"> + <name>Shapes_Sender_comp_svnt</name> + <source/> + <node/> + <location>Shapes_Sender_comp_svnt</location> + </artifact> + <artifact xmi:id="Sender_StubArtifact"> + <name>Sender_stub</name> + <source/> + <node/> + <location>Sender_stub</location> + </artifact> + <artifact xmi:id="Shapes_Connector_ExecArtifact"> + <name>Shapes_conn_exec</name> + <source/> + <node/> + <location>Shapes_conn_exec</location> + </artifact> + <artifact xmi:id="Shapes_Connector_SvntArtifact"> + <name>Shapes_conn_svnt</name> + <source/> + <node/> + <location>Shapes_conn_svnt</location> + </artifact> + <artifact xmi:id="Receiver_ExecArtifact"> + <name>Shapes_Receiver_comp_exec</name> + <source/> + <node/> + <location>Shapes_Receiver_comp_exec</location> + </artifact> + <artifact xmi:id="Receiver_SvntArtifact"> + <name>Shapes_Receiver_comp_svnt</name> + <source/> + <node/> + <location>Shapes_Receiver_comp_svnt</location> + </artifact> + <artifact xmi:id="Receiver_StubArtifact"> + <name>Receiver_stub</name> + <source/> + <node/> + <location>Receiver_stub</location> + </artifact> + <artifact xmi:id="Control_ExecArtifact"> + <name>Shapes_Control_comp_exec</name> + <source/> + <node/> + <location>Shapes_Control_comp_exec</location> + </artifact> + <artifact xmi:id="Control_SvntArtifact"> + <name>Shapes_Control_comp_svnt</name> + <source/> + <node/> + <location>Shapes_Control_comp_svnt</location> + </artifact> + <artifact xmi:id="Control_StubArtifact"> + <name>Control_stub</name> + <source/> + <node/> + <location>Control_stub</location> + </artifact> +</Deployment:DeploymentPlan> diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp new file mode 100644 index 00000000000..e565a127fbe --- /dev/null +++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/artifacts.cdp @@ -0,0 +1,66 @@ +<artifact xmi:id="Sender_ExecArtifact"> + <name>Shapes_Sender_comp_exec</name> + <source/> + <node/> + <location>Shapes_Sender_comp_exec</location> +</artifact> +<artifact xmi:id="Sender_SvntArtifact"> + <name>Shapes_Sender_comp_svnt</name> + <source/> + <node/> + <location>Shapes_Sender_comp_svnt</location> +</artifact> +<artifact xmi:id="Sender_StubArtifact"> + <name>Sender_stub</name> + <source/> + <node/> + <location>Sender_stub</location> +</artifact> +<artifact xmi:id="Shapes_Connector_ExecArtifact"> + <name>Shapes_conn_exec</name> + <source/> + <node/> + <location>Shapes_conn_exec</location> +</artifact> +<artifact xmi:id="Shapes_Connector_SvntArtifact"> + <name>Shapes_conn_svnt</name> + <source/> + <node/> + <location>Shapes_conn_svnt</location> +</artifact> +<artifact xmi:id="Receiver_ExecArtifact"> + <name>Shapes_Receiver_comp_exec</name> + <source/> + <node/> + <location>Shapes_Receiver_comp_exec</location> +</artifact> +<artifact xmi:id="Receiver_SvntArtifact"> + <name>Shapes_Receiver_comp_svnt</name> + <source/> + <node/> + <location>Shapes_Receiver_comp_svnt</location> +</artifact> +<artifact xmi:id="Receiver_StubArtifact"> + <name>Receiver_stub</name> + <source/> + <node/> + <location>Receiver_stub</location> +</artifact> +<artifact xmi:id="Control_ExecArtifact"> + <name>Shapes_Control_comp_exec</name> + <source/> + <node/> + <location>Shapes_Control_comp_exec</location> +</artifact> +<artifact xmi:id="Control_SvntArtifact"> + <name>Shapes_Control_comp_svnt</name> + <source/> + <node/> + <location>Shapes_Control_comp_svnt</location> +</artifact> +<artifact xmi:id="Control_StubArtifact"> + <name>Control_stub</name> + <source/> + <node/> + <location>Control_stub</location> +</artifact> diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp new file mode 100644 index 00000000000..a550afaa590 --- /dev/null +++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/connections.cdp @@ -0,0 +1,74 @@ +<connection> + <name>_listenercontrol</name> + <deployRequirement> + <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name> + <resourceType>Local_Interface</resourceType> + </deployRequirement> + <internalEndpoint> + <portName>info_out_data_control</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="ReceiverComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>push_consumer_data_control</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="Shapes_ReceiverConnectorInstance" /> + </internalEndpoint> +</connection> +<connection> + <name>_listener</name> + <deployRequirement> + <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name> + <resourceType>Local_Interface</resourceType> + </deployRequirement> + <internalEndpoint> + <portName>info_out_data_listener</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="ReceiverComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>push_consumer_data_listener</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="Shapes_ReceiverConnectorInstance" /> + </internalEndpoint> +</connection> + +<connection> + <name>writer_connection</name> + <deployRequirement> + <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name> + <resourceType>Local_Interface</resourceType> + </deployRequirement> + <internalEndpoint> + <portName>info_write_data</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="SenderComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>supplier_data</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="Shapes_SenderConnectorInstance" /> + </internalEndpoint> +</connection> + +<connection> + <name>control_connection</name> + <internalEndpoint> + <portName>control</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="ControlComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>control</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="SenderComponentInstance" /> + </internalEndpoint> +</connection> diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp new file mode 100644 index 00000000000..b33920234e6 --- /dev/null +++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/implementation.cdp @@ -0,0 +1,51 @@ +<implementation xmi:id="ControlComponentImplementation"> + <name>ControlComponentImplementation</name> + <source/> + <artifact xmi:idref="Control_ExecArtifact" /> + <artifact xmi:idref="Control_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Shapes_Control_comp_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Shapes_Control_comp_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Shapes_Control_comp_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Shapes_Control_comp_exec</string> + </value> + </value> + </execParameter> +</implementation> diff --git a/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp new file mode 100644 index 00000000000..897b94c6a49 --- /dev/null +++ b/CIAO/connectors/dds4ccm/tutorials/Shapes/Tutorial/Code/Deployment/instance.cdp @@ -0,0 +1,62 @@ +<instance xmi:id="ControlComponentInstance"> + <name>ControlComponent</name> + <node>ControlNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="ControlComponentImplementation" /> + <configProperty> + <name>rate</name> + <value> + <type> + <kind>tk_ulong</kind> + </type> + <value> + <ulong>100</ulong> + </value> + </value> + </configProperty> + <configProperty> + <name>max_x</name> + <value> + <type> + <kind>tk_ushort</kind> + </type> + <value> + <ushort>225</ushort> + </value> + </value> + </configProperty> + <configProperty> + <name>max_y</name> + <value> + <type> + <kind>tk_ushort</kind> + </type> + <value> + <ushort>250</ushort> + </value> + </value> + </configProperty> + <configProperty> + <name>max_size</name> + <value> + <type> + <kind>tk_ushort</kind> + </type> + <value> + <ushort>25</ushort> + </value> + </value> + </configProperty> + <configProperty> + <name>resize_shape</name> + <value> + <type> + <kind>tk_boolean</kind> + </type> + <value> + <boolean>true</boolean> + </value> + </value> + </configProperty> +</instance> |