<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///R:%5CTEMP%5Cmsohtml1%5C01%5Cclip_filelist.xml"><style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-parent:"";
        margin:0cm;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;
        mso-header-margin:36.0pt;
        mso-footer-margin:36.0pt;
        mso-paper-source:0;}
div.Section1
        {page:Section1;}
-->
</style>

<p class="MsoNormal">Hello,</p>

<p class="MsoNormal">I have a following problem with typeCode and Any. It will be
a little bit long but it is complicated. I am using the latest omniorb, compiled from source<br></p>

<p class="MsoNormal">I have a self made idl file. I do no use omniidl for cc
creation, everything is done by hand, and must be done by hand.</p>

<p class="MsoNormal">Idl:</p>

<p class="MsoNormal"><span style="">  </span>struct a</p>

<p class="MsoNormal"><span style="">  </span>{</p>

<p class="MsoNormal"><span style="">    </span>string n;</p>

<p class="MsoNormal"><span style="">    </span>any v;</p>

<p class="MsoNormal"><span style="">    </span>long f;</p>

<p class="MsoNormal"><span style="">    </span>short l;</p>

<p class="MsoNormal"><span style="">  </span>};</p>

<p class="MsoNormal"><span style="">  </span></p>

<p class="MsoNormal"><span style="">  </span>typedef
sequence&lt;a&gt; alist;</p>

<p class="MsoNormal"><span style="">  </span>typedef
sequence&lt;alist&gt; alistlist;</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal"><span style="">  </span>interface _interface</p>

<p class="MsoNormal"><span style="">  </span>{</p>

<p class="MsoNormal"><span style="">    </span>alist exec (in
string s,<span style="">  </span>in alist arg )</p>

<p class="MsoNormal">}</p>

<p class="MsoNormal">First problem, that the a.v is type any, and the software is
using this opportunity, and putting a alist in there from a, what contains a
alistlist.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">CORBA::Request_ptr req = obj-&gt;_request(&quot;exec&quot;);</p>

<p class="MsoNormal"><span style="color: black;">req-&gt;add_in_arg(</span><span style="color: rgb(42, 0, 255);">&quot;arguments&quot;</span><span style="color: black;">) =
the string </span></p>

<p class="MsoNormal"><span style="color: black;">req-&gt;add_in_arg(</span><span style="color: rgb(42, 0, 255);">&quot;arguments&quot;</span><span style="color: black;">) =
the arg</span></p>

<p class="MsoNormal"><span style="color: black;"> </span></p>

<p class="MsoNormal"><span style="color: black;">I create a TypeCode for the “a”</span></p>

<p class="MsoNormal" style=""><span style="color: black;">CORBA::StructMemberSeq tc;</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc.length(4);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc [0].name = CORBA::string_dup(</span><span style="color: rgb(42, 0, 255);">&quot;n&quot;</span><span style="color: black;">);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc [0].type =
CORBA::TypeCode::_duplicate(CORBA::_tc_string);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tcs[1].name = CORBA::string_dup(</span><span style="color: rgb(42, 0, 255);">&quot;v&quot;</span><span style="color: black;">);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc[1].type = CORBA::TypeCode::_duplicate(CORBA::_tc_any);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc [2].name = CORBA::string_dup(</span><span style="color: rgb(42, 0, 255);">&quot;f&quot;</span><span style="color: black;">);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc [2].type = CORBA::TypeCode::_duplicate(CORBA::_tc_long);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc [3].name = CORBA::string_dup(</span><span style="color: rgb(42, 0, 255);">&quot;l&quot;</span><span style="color: black;">);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc [3].type =
CORBA::TypeCode::_duplicate(CORBA::_tc_short);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">CORBA::TypeCode_var tc_var = orb-&gt;create_struct_tc(</span><span style="color: rgb(42, 0, 255);">&quot;IDL:c/<u>l</u>/<u>c</u>/<u>s</u>/a:1.0&quot;</span><span style="color: black;">,</span><span style="color: rgb(42, 0, 255);">&quot;a&quot;</span><span style="color: black;">, tc);</span></p>


<p class="MsoNormal" style=""><span style="color: black;"> </span></p>

<p class="MsoNormal" style=""><span style="color: black;">CORBA::Object_ptr dafo =
orb-&gt;resolve_initial_references(</span><span style="color: rgb(42, 0, 255);">&quot;__&quot;</span><span style="color: black;">);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">DynamicAny::DynAnyFactory_var daf =
DynamicAny::DynAnyFactory::_narrow(dafo);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">DynamicAny::DynAny_var dv =
daf-&gt;create_dyn_any_from_type_code(tc_var);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">The first string insertion is easy</span></p>

<p class="MsoNormal" style=""><span style="color: black;">dv-&gt;insert_string(_<a href="http://par.name">par.name</a>());</span></p>

<p class="MsoNormal" style=""><span style="color: black;">dv-&gt;next();</span></p>

<p class="MsoNormal" style="">//if
the list type code creation is needed then</p>

<p class="MsoNormal" style=""><span style="color: black;">CORBA::TypeCode_var tc_list= orb-&gt;create_sequence_tc(0,
tc_var );</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc_list = orb-&gt;create_alias_tc(</span><span style="color: rgb(42, 0, 255);">&quot;IDL:c/<u>l</u>/<u>c</u>/<u>s</u>/alist:1.0&quot;</span><span style="color: black;">,</span><span style="color: rgb(42, 0, 255);">&quot;alist&quot;</span><span style="color: black;">,tc_list);</span></p>


<p class="MsoNormal" style=""><span style="color: black;">CORBA::TypeCode_var tc_listlist= orb-&gt;create_sequence_tc(0,
tc_list );</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc_listlist = orb-&gt;create_alias_tc(</span><span style="color: rgb(42, 0, 255);">&quot;IDL:c/<u>l</u>/<u>c</u>/<u>s</u>/alistlist:1.0&quot;</span><span style="color: black;">,</span><span style="color: rgb(42, 0, 255);">&quot;alistlist&quot;</span><span style="color: black;">,tc_listlist);</span></p>


<p class="MsoNormal" style=""><span style="color: black;"> </span></p>

<p class="MsoNormal" style=""><span style="color: black;">//after that dynamic arrays are created, the dynamic
listlist is the same</span></p>

<p class="MsoNormal" style=""><span style="color: black;">DynamicAny::DynAny_var dv = daf-&gt;create_dyn_any_from_type_code(tc_list);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">DynamicAny::DynSequence_var
daSeq=DynamicAny::DynSequence::_narrow(dv);</span></p>

<p class="MsoNormal" style=""><span style="color: black;"> </span></p>

<p class="MsoNormal" style=""><span style="color: black;">DynamicAny::DynAny_var dv =
daf-&gt;create_dyn_any_from_type_code(tc_listlist);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">DynamicAny::DynSequence_var
daSeq=DynamicAny::DynSequence::_narrow(dv);</span></p>

<p class="MsoNormal" style=""><span style="color: black;"> </span></p>

<p class="MsoNormal" style=""><span style="color: black;"> </span></p>

<p class="MsoNormal" style=""><span style="color: black;">//I wont list here the whole code, from these sequence an
any type _any is created, an that _any is put to</span></p>

<p class="MsoNormal" style=""><span style="color: black;">dv-&gt;insert_any(_any);</span></p>

<p class="MsoNormal" style=""><span style="color: black;">dv-&gt;next();</span></p>

<p class="MsoNormal" style=""><span style="color: black;">and the dv is filled with other values.</span></p>

<p class="MsoNormal" style=""><span style="color: black;"> </span></p>

<p class="MsoNormal" style=""><span style="color: black;">Finally the dv-&gt;to_any() is called and this is handed to
the </span></p>

<p class="MsoNormal"><span style="color: black;">req-&gt;add_in_arg(</span><span style="color: rgb(42, 0, 255);">&quot;arguments&quot;</span><span style="color: black;">) =
</span></p>

<p class="MsoNormal" style=""><span style="color: black;"> </span></p>

<p class="MsoNormal" style=""><span style="color: black;">The problem is that in the “request” not all the type code
is listed only for the tc_list one.</span></p>

<p class="MsoNormal" style=""><span style="color: black;">A chomped example from the log</span></p><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///R:%5CTEMP%5Cmsohtml1%5C01%5Cclip_filelist.xml"><style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-parent:"";
        margin:0cm;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;
        mso-header-margin:36.0pt;
        mso-footer-margin:36.0pt;
        mso-paper-source:0;}
div.Section1
        {page:Section1;}
-->
</style>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">4749 4f50 0102 0000 0000 0196
0000 0002 GIOP............</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0300 0000 0000 5cdc 0000 0031
afab cb00 ......\....1....</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0020 8cb5 fb27 0000 0001
0000 0000 ... ...&#39;........</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0001 0000 0008 526f 6f74
504f 4100 ........RootPOA.</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0008 0000 002d 0000 0000
14da 5e64 .......-......^d</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0009 6578 ffff ffff ffff
00da 5ed4 ....exec......^.</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0001 0000 0001 0000 000c
0000 0000 ................</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0001 0001 0001 0109 0000 000f
ffff ffff ............XXXX</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">ffff ffff ffff ffff ffff 0008
0000 0001 XXX.XXXXXX......</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0007 7661 6c75 6573 0078
0000 0013 ....values.x....</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 00a4 00ff 0000 0000 0013
0000 0094 ................</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">00d7 0b20 0000 000f 0000 0084
00bf f598 ... ............</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0023 4944 4c3a ffff ffff
ffff ffff ...#IDL:c/l/</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">ffff ffff ffff ffff ffff ffff
ffff ffff c/s/a</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">ffff ffff ffff ffff 0000 000b
ffff ffff :1.0.(....tc</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">ffff ffff ffff 0020 0000 0004
0000 0005 ............</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">6e61 6d65 0000 0001 0000 0012
0000 0000 n............</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0007 7661 6c75 655f 0065
0000 000b ....v.....</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0006 666c 6167 ff00 0007
0000 0003 ....f.......</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0008 6c65 6e67 ffff ff00
0000 0002 ....l.....</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0000 0000 0000 0000 0001
0000 0002 ................</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0004 ffff 5900 0000 00ff
0000 0000 ....K.........</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 000a ffff 5fff ffff ffff
ffff ffff ....B</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000 0000 0000 667c 0000 00ff
ffff 4c55 ......f|....VALU</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">4500 66d0 0000 0012 0000 0000
0000 0002 E.f.............</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">3200 ffff 0000 0000 0000 ffff
0000 0000 2.g@......gx....</span></p>

<p class="MsoNormal" style=""><span style="font-family: &quot;Courier New&quot;; color: black;">0000<span style="">                                    </span>..</span></p>

<p class="MsoNormal" style=""><span style="color: black;">To my opinion and this way is excepted from the “server”
side, all the</span></p>

<p class="MsoNormal" style=""><span style="color: black;">tc_listlist, tc_list and tc description/id should be
visible in the logs, and the server is answering that it cannot interpret the
values.</span></p>

<p class="MsoNormal" style=""><span style="color: black;">My question is that how should I enforce that the
description/id content to be part of the request? What am I using wrong?</span></p><p class="MsoNormal" style="">Thanks in advance<br></p><p class="MsoNormal" style="">BR</p><p class="MsoNormal" style="">PK<br><span style="color: black;"></span></p>