[omniORB] FW: Errors in OMNI

Ravindra Ravindra.Chinchore@datamatics.co.in
Thu, 22 Jun 2000 11:16:23 +0530


 Hi,
We are facing the difficulty of using omniORB with circular references i.e.
one class calls other one and vice versa.
Can somebody tell us is it possible to do such implementation in omni and
How? The details are as given below:




  Attached are two IDL files, having circular inclusions ( each one
including the other ).

  The .hh file generated by OmniORB(2.8) IDL compiler do not manage such
circular inclusions properly.

  Following is an excerpt from Customer.hh :--

#ifndef __Customer_hh__
#define __Customer_hh__

#ifndef USE_omniORB_logStream
#define USE_omniORB_logStream
#endif

#ifndef __CORBA_H_EXTERNAL_GUARD__
#define __CORBA_H_EXTERNAL_GUARD__
#include <omniORB2/CORBA.h>
#endif

#ifndef __Account_hh_EXTERNAL_GUARD__
#define __Account_hh_EXTERNAL_GUARD__
#include <Account.hh>
#endif ...

  Following is an excerpt from Account.hh :--

// This file is generated by omniidl2- omniORB_2_8. Do not edit.
#ifndef __Account_hh__
#define __Account_hh__

#ifndef USE_omniORB_logStream
#define USE_omniORB_logStream
#endif

#ifndef __CORBA_H_EXTERNAL_GUARD__
#define __CORBA_H_EXTERNAL_GUARD__
#include <omniORB2/CORBA.h>
#endif

#ifndef __Customer_hh_EXTERNAL_GUARD__
#define __Customer_hh_EXTERNAL_GUARD__
#include <Customer.hh>
#endif ...

  Now, if some program tries to include these files in this way :

#include "Customer.hh"
...
  we get compiler errors in the second .hh file ( i.e. Account.hh ), which
is automatically included in Customer.hh because Account.hh cannot find some
definitions defined in Customer.hh

  The following are some sample errors :--

D:\OmniBank2\Account.hh(207) : error C2433: 'CustomerList' : 'virtual' not
permitted on data declarations
D:\OmniBank2\Account.hh(207) : error C2501: 'CustomerList' : missing
decl-specifiers
D:\OmniBank2\Account.hh(207) : error C2143: syntax error : missing ';'
before '*'
D:\OmniBank2\Account.hh(207) : error C2501: 'getCustomers' : missing
decl-specifiers
D:\OmniBank2\Account.hh(207) : error C2253: 'getCustomers' : pure specifier
only applies to virtual function - specifier ignored
D:\OmniBank2\Account.hh(276) : error C2433: 'CustomerList' : 'virtual' not
permitted on data declarations
D:\OmniBank2\Account.hh(276) : error C2501: 'CustomerList' : missing
decl-specifiers

 & so on.

  We will be highly obliged if you could reply us back with a solution.


[Ravindra Chinchore]

With Best Regards,
Ravindra
----------------------------------------------------------------------
Datamatics Ltd. (Embedded Systems Division),
SDF-6, Unit 189,
SEEPZ,
Andheri (East),
Mumbai - 400 096,
INDIA.

Board	: +91 (22) 829 2410 (2 lines)Ext: 619
Fax  	: +91 (22) 829 2412
E-Mail: Ravindra.Chinchore@Datamatics.Co.in
----------------------------------------------------------------------

[demime 0.97b removed an attachment of type application/octet-stream which had a name of Customer.idl]

[demime 0.97b removed an attachment of type application/octet-stream which had a name of Account.idl]