summaryrefslogtreecommitdiff
path: root/CIAO/connectors/ami4ccm/tutorials/Hello/Tutorial/04_ami4ccm.html
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/connectors/ami4ccm/tutorials/Hello/Tutorial/04_ami4ccm.html')
-rw-r--r--CIAO/connectors/ami4ccm/tutorials/Hello/Tutorial/04_ami4ccm.html102
1 files changed, 0 insertions, 102 deletions
diff --git a/CIAO/connectors/ami4ccm/tutorials/Hello/Tutorial/04_ami4ccm.html b/CIAO/connectors/ami4ccm/tutorials/Hello/Tutorial/04_ami4ccm.html
deleted file mode 100644
index f60fe364d2e..00000000000
--- a/CIAO/connectors/ami4ccm/tutorials/Hello/Tutorial/04_ami4ccm.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--// -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
- <TITLE>AMICCM Tutorial Hello - Implementation exec</TITLE>
-</HEAD>
-<BODY>
-<TABLE WIDTH="100%" BORDER=0 CELLPADDING=2 CELLSPACING=2 STYLE="PAGE-BREAK-BEFORE: always">
- <TR>
- <TD ALIGN=left><A href="03_executors.html">Previous</A></TD>
- <TD ALIGN=center></TD>
- <TD ALIGN=right><A href="05_compilation.html">Next</A></TD>
-</TR></TABLE>
-<HR>
-<H1>Implementation executors</H1>
-<H2 CLASS="western">AMI4CCM basics</H2>
-<UL>
- <LI><P>The writer has basically only to write 3 idl files, first the
- one that defines the common interface between the Sender and
- Receiver , second the interface for the Sender and third the
- interface for the Receiver. In this tutorial are that the IDL files
- Hello_MyFoo_obj.idl, Hello_Sender_comp.idl and the
- Hello_Receiver_comp.idl.<BR>
- Naturally, it is possible that there are more IDL-files
- to be used, as in this example the Hello_Common_defn.idl file for the common
- definitions.</P></LI>
- <LI><P>The Receiver component ('server') has no idea which
- component (AMI connector or Sender) uses his interface.</P></LI>
- <LI><P>The Connector, the AMI-Component, will be generated by
- the IDL compiler by implying ami4ccm.idl</P></LI>
- <LI><P>In the Sender executor the handling of the AMI
- callbacks and also the asynchronous and synchronous invocations must be
- coded.</P></LI>
-</UL>
-<H2 CLASS="western">Example</H2>
-<P>The Sender component of this Hello tutorial invokes some
-asynchronous methods and some synchronous methods. For asynchronous invocations,
-the Sender component uses the AMI4CCM_MyFoo_obj interface of the AMI component
-and provides the AMI4CCM_MyFoo_objReplyHandler interface to the AMI
-component.</P>
-<P>For synchronous invocations, the Sender component uses
-the MyFoo_obj interface (which the Receiver provides).</P>
-<P STYLE="MARGIN-BOTTOM: 0cm">The receiver just implements
-the interface provided by the application programmer. The Receiver should have
-no idea which component (in this case Sender or AMI) uses his interface!</P>
-<p><B><u>Sender_comp_exec.cpp</u></B><br><br>
-In de ccm_activate method, first retrieve the
-receptacles:<br>
-Asynchronous:<br><CODE>::Hello::AMI4CCM_MyFoo_obj_var asynch_foo<B> = </B><FONT COLOR="#0000ff">this</FONT>-&gt;context_-&gt;
-get_connection_sendc_run_my_foo();</CODE><br>
-Synchronous:<br>
-<CODE>::Hello::MyFoo_obj_var synch_foo = <FONT COLOR="#0000ff">this</FONT>-&gt;context_-&gt;get_connection_run_my_foo ();</CODE>
-</P>
-<P>After retrieving the receptacles, make the desired
-asynchronus and synchronous invocations.<br>
-The asynchronous methods have the prefix sendc_. The first
-argument is the Reply handler.<br>
-<CODE>my_foo_ami_-&gt;sendc_foo (<FONT COLOR="blue">new</FONT> AMI4CCM_MyFoo_objReplyHandler_run_my_foo_i (), <FONT COLOR="red">"Do something
-asynchronous"</FONT>);</CODE><br>
-The same synchronous method:<br>
-<CODE>CORBA::Long result = my_foo_ami_-&gt;foo(<FONT COLOR="red">"Do something synchronous"</FONT>, out_str.out());</P>
-
-<P>For the asynchronus methods the implied Reply Handler
-interface for each method must be coded.</P>
-<P>Example foo callback:<br>
-<CODE><FONT COLOR="#0000ff">void<BR></FONT>
-AMI4CCM_MyFoo_objReplyHandler_run_my_foo_i::foo (::CORBA::Long
-ami_return_val, <FONT COLOR="blue">const char</FONT> * answer)<BR>
-{<BR>
-<FONT COLOR="green">&nbsp;&nbsp;/*Your code here. */<BR></FONT>
-</FONT><FONT COLOR="#000000">
-&nbsp;&nbsp;&nbsp;ACE_DEBUG
-((LM_DEBUG,<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACE_TEXT(<FONT COLOR="red">"Sender:\tMyFoo AMI Callback from
-foo:"</FONT>);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACE_TEXT(<FONT COLOR="red">"result &lt;%u&gt; answer
-&lt;%C&gt;\n"</FONT>),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ami_return_val,answer));<BR>
-}<br><br>
-<FONT COLOR="blue">void<BR></FONT>
-AMI4CCM_MyFoo_objReplyHandler_run_my_foo_i::foo_excep (::CCM_AMI::ExceptionHolder * excep_holder)<BR>
-{<BR>
-<FONT COLOR="green">&nbsp;&nbsp;&nbsp;&nbsp;/* Your code here. */</FONT><BR>
-}</CODE></P>
-
-<P><B><u>Receiver_comp_exec.cpp</u></B></P>
-<P> In this file the interface methods must be programmed.<br><br>
-Example foo method:<br>
-<CODE>::CORBA::Long MyFoo_obj_exec_i::foo (<FONT COLOR="#0000ff">const char</FONT> * in_str, ::CORBA::String_out answer)<BR>
-{<BR>&nbsp;&nbsp;&nbsp;<FONT color="green">/* Your code here. */</FONT><BR>
-&nbsp;&nbsp;&nbsp;answer = CORBA::string_dup (<FONT COLOR="red">"This is my answer : Hi"</FONT>);<BR>
-&nbsp;&nbsp;&nbsp;return ACE_OS::rand () % 100;<BR>
-}</CODE>
-</P>
-
-<TABLE WIDTH="100%" BORDER=0 CELLPADDING=2 CELLSPACING=2>
-<TR>
- <TD ALIGN=left><A href="03_executors.html">Previous</A></TD>
- <TD ALIGN=center></TD>
- <TD ALIGN=right><A href="05_compilation.html">Next</A></TD></TR></TABLE>
-<P><BR><BR></P>
-</BODY>
-</HTML>