[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. &gt;&gt;= and &lt;&lt;=). 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-&gt;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--