[omniORB] Problem with case sensitive IDLs

Morris, Steve (SW/FW - Rehovot) morris at hp.com
Tue Jan 1 16:23:40 GMT 2008


Thanks - the -nc switch solved most of the problems.
I agree with "broken IDL compiler", but I have no control over that. The existing CORBA application was written by another team and is a given.
omniIDL also picked up on a number of errors, such as oneway calls that raise exceptions.

I still have one compiler error that I cannot see my way round. The following code fails because PropertyManagerException is not a type.

    exception PropertyManagerException
    {
        ExceptionCode exceptionCode;
        wstring why;
    };
    typedef sequence<PropertyManagerException> ExceptionList;

I do not see how I can change this without changing the interface. Any ideas?

Regards,
Steve

-----Original Message-----
From: Duncan Grisby [mailto:duncan at grisby.org]
Sent: Tuesday, 01 January, 2008 16:49
To: Morris, Steve (SW/FW - Rehovot)
Cc: omniorb-list at omniorb-support.com
Subject: Re: [omniORB] Problem with case sensitive IDLs

On Monday 31 December, "Morris, Steve (SW/FW - Rehovot)" wrote:

> I need to write a Python application that will connect to a large,
> existing CORBA application that uses a case sensitive IDL compiler.

Case sensitive, i.e. broken IDL compiler...

> I think that can change some things in the IDL without causing
> problems, such as changing PropertyList getMany(in PropertyList
> propertyList) to PropertyList getMany(in PropertyList myPropertyList).
>
> However, I cannot change others.  For instance, I do not have any
> solution for
> struct ForcedDrawer {.....};
> struct PaperSource
> {
>                         :
>             ForcedDrawer forcedDrawer;
>                         :
> };

You can fix that by fully qualifying the ForcedDrawer type. e.g. if it's
in the global scope you can use

 struct ForcedDrawer {.....};
 struct PaperSource
 {
   ::ForcedDrawer forcedDrawer;
 };

Alternatively, and much more easily, you can cheat and tell omniidl to
permit identifiers that differ only in case, using the -nc command line
flag.

Cheers,

Duncan.

--
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the omniORB-list mailing list