[omniORB] Bugs, bugs ...
Stanislav Ievlev
inger@altlinux.ru
Mon, 30 Jul 2001 18:31:00 +0400
This is a multi-part message in MIME format.
--------------030007090507080503070604
Content-Type: multipart/alternative;
boundary="------------020001000408030009070308"
--------------020001000408030009070308
Content-Type: text/plain; charset=KOI8-R; format=flowed
Content-Transfer-Encoding: 7bit
Thank you very much!
Duncan Grisby wrote:
>On Monday 30 July, Stanislav Ievlev wrote:
>
>>1. Why you haven't some usefull *_ptr classes like ObjectId_ptr and Any_ptr?
>>
>
>Because the C++ mapping specification doesn't say there should be such
>definitions. Just use ObjectId* and Any* or the _var classes.
>
>>2. Why do you use ORB as a DynAny factory, and haven't special
>>DynAnyFactory.
>>
>
>Because omniORB's DynAny support only conforms to CORBA 2.2. The
>DynAnyFactory was added in 2.3.
>
Are you planning support of CORBA 2.3?
>
>
>>3. All *_forany classes are useless 'cause there are not operators
>>between Any and *_forany (e.g. >>= and <<=). Why?
>>
>
>I don't understand this. omniidl does generate the insertion /
>extraction operators, and it works fine. Do you have some example code
>which fails?
>
Well. I've tried to write some code. IDL file contains only "typedef
long MyArray[2]".
>
>>4. function orb->create_basic_dyn_any(tc) with tc from create_array_tc()
>>go to CORBA::SystemException. Appropriate code applied to this letter.
>>
>
>That function is for creating DynAnys of _basic_ types. Arrays are not
>a basic type. You must use create_dyn_array() to create a dynamic
>array.
>
>Cheers,
>
>Duncan.
>
----------------------------------
With best regards
Stanislav Ievlev
>
--------------020001000408030009070308
Content-Type: text/html; charset=KOI8-R
Content-Transfer-Encoding: 8bit
<html>
<head>
</head>
<body>
Thank you very much!<br>
<br>
Duncan Grisby wrote:<br>
<blockquote type="cite" cite="mid:200107301330.OAA22552@pineapple.uk.research.att.com">
<pre wrap="">On Monday 30 July, Stanislav Ievlev wrote:<br><br></pre>
<blockquote type="cite">
<pre wrap="">1. Why you haven't some usefull *_ptr classes like ObjectId_ptr and Any_ptr?<br></pre>
</blockquote>
<pre wrap=""><!----><br>Because the C++ mapping specification doesn't say there should be such<br>definitions. Just use ObjectId* and Any* or the _var classes.<br><br></pre>
<blockquote type="cite">
<pre wrap="">2. Why do you use ORB as a DynAny factory, and haven't special <br>DynAnyFactory.<br></pre>
</blockquote>
<pre wrap=""><!----><br>Because omniORB's DynAny support only conforms to CORBA 2.2. The<br>DynAnyFactory was added in 2.3.</pre>
</blockquote>
šAre you planning support of CORBA 2.3? <br>
<blockquote type="cite" cite="mid:200107301330.OAA22552@pineapple.uk.research.att.com">
<pre wrap=""><br><br></pre>
<blockquote type="cite">
<pre wrap="">3. All *_forany classes are useless 'cause there are not operators <br>between Any and *_forany (e.g. >>= and <<=). Why?<br></pre>
</blockquote>
<pre wrap=""><!----><br>I don't understand this. omniidl does generate the insertion /<br>extraction operators, and it works fine. Do you have some example code<br>which fails?<br></pre>
</blockquote>
Well. I've tried to write some code. IDL file contains only "typedef long
MyArray[2]".<br>
<blockquote type="cite" cite="mid:200107301330.OAA22552@pineapple.uk.research.att.com">
<pre wrap=""><br></pre>
<blockquote type="cite">
<pre wrap="">4. function orb->create_basic_dyn_any(tc) with tc from create_array_tc() <br>go to CORBA::SystemException. Appropriate code applied to this letter.<br></pre>
</blockquote>
<pre wrap=""><!----><br>That function is for creating DynAnys of _basic_ types. Arrays are not<br>a basic type. You must use create_dyn_array() to create a dynamic<br>array.<br><br>Cheers,<br><br>Duncan.<br></pre>
</blockquote>
----------------------------------<br>
With best regards<br>
Stanislav Ievlev<br>
<br>
<blockquote type="cite" cite="mid:200107301330.OAA22552@pineapple.uk.research.att.com">
<pre wrap=""><br></pre>
</blockquote>
<br>
<br>
<br>
</body>
</html>
--------------020001000408030009070308--
--------------030007090507080503070604
Content-Type: text/plain;
name="test-2.cc"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="test-2.cc"
#include <iostream>
#include "echo.hh"
int main(int argc, char** argv)
{
try {
MyArray tmp;
MyArray_forany tmp_forany;
CORBA::Any_var any;
any>>=tmp_forany;
}
catch(CORBA::SystemException&) {
cerr << "Caught CORBA::SystemException." << endl;
}
catch(CORBA::Exception&) {
cerr << "Caught CORBA::Exception." << endl;
}
catch(omniORB::fatalException& fe) {
cerr << "Caught omniORB::fatalException:" << endl;
cerr << " file: " << fe.file() << endl;
cerr << " line: " << fe.line() << endl;
cerr << " mesg: " << fe.errmsg() << endl;
}
catch(...) {
cerr << "Caught unknown exception." << endl;
}
return 0;
}
--------------030007090507080503070604--