[omniORB] Skeletons failing to compile

Frode Haugen fh@dynamica.no
Mon, 3 Aug 1998 11:31:44 +0200

hello omniORBers:

The following construct has been handed to us as a part of a specification
for a server we are to implement. Clients (java) and a demo server has
apparently been succesfully implemented in omniBroker:

 ------------------- a.idl ---------------
#ifndef A_idl   // Mandatory to avoid recursive includes
#define A_idl 

interface A;    // Forward declaraton to be used in b.idl

#include "b.idl"

interface A {
  B x(in long index);

 ------------------- b.idl ---------------
#ifndef B_idl    // Mandatory to avoid recursive includes
#define B_idl 

interface B;    // Forward declaraton to be used in a.idl
#include "a.idl"

interface B {
  A y(in long index);


omniidl2 swallows this without complaints, but when compiling
(egcs-1.0.1/rh-5.0) I get errors:

 g++ -c -pthread -Wall -Wno-unused  -D__OMNIORB2__ -I/usr/local/omniORB/include -I. -D__x86__   -D__linux__  -D__OSVERSION__=2  -D_REENTRANT -g  aSK.cc
In file included from a.hh:6,
                 from aSK.cc:1:
b.hh:57: `A_ptr' declared as a `virtual' field
b.hh:57: parse error before `('
b.hh:117: `A_ptr' declared as a `virtual' field
b.hh:117: parse error before `('
b.hh:137: `A_ptr' declared as a `virtual' field
b.hh:137: parse error before `('
b.hh:156: syntax error before `('
b.hh:165: semicolon missing after declaration of `_nil_B'
b.hh:165: parse error at null character

Presumably this is not excellent idl code, but is it _illegal_ ?

Frode Haugen                                        e-mail : fh@dynamica.no
Dynamica AS,   Modelling - Control - Optimization   http://www.dynamica.no
Pirterminalen, N-7010 Trondheim                     Phone:   (+47) 73929160
Norway                                              Fax:     (+47) 73929165