[omniORB] Forward declarations and includes (IDL)

Matej Kenda matej.kenda@hermes.si
Tue, 25 Sep 2001 09:10:49 +0200


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01C14591.34569AF0
Content-Type: text/plain


Hi,

I have investigated this case a bit deeply. Solution to the case of
interdependent IDL files (and interfaces) is the following:

omniidl should strictly follow the order of forward declarations and
includes as they are in IDL files. I did that manually and the sources
compiled fine. I put forward declarations for C++ classes (e.g. i_classA) in
front of #include "i_class_b.h" and vice versa.

I have noticed one anomaly in one of the header files, namely a block of
code is repeated twice. It made no harm, because it was enclosed between
#ifndef and #endif clauses.

Please see the attached archive for omniidl generated and corrected header
files.

Regards,

Matej

P.S.: I use omniORB 3.0.4 with latest updates.


------_=_NextPart_000_01C14591.34569AF0
Content-Type: application/octet-stream;
	name="corrected.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="corrected.tar.gz"

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
U53qVKc61alOdarTEtP/A9Ip0IoA8AAA

------_=_NextPart_000_01C14591.34569AF0
Content-Type: application/octet-stream;
	name="original.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="original.tar.gz"

H4sIAEJFqDsAA+1d/1fjuLXfX+u/QmW28xIaMoEwsBsGXjGwU14Z4ADT9py+Hh8nFuBOYqe2wwxv
O/u3v6uvluSvhATYWfvsApale6+urq6kK+kzvjN0Y9wdTaffLe3prfd6W5ub3/V6/e23W1vwu9db
p+/02e6vQ9p2/+1Gr7+x1YP09Y2Njbffod7yREqfWZy4EULfTdwE/+tTWT4cxU8h0NM+b96gq1s/
Rtf+GCP4fYMDHIEqPDS8R+Ek8H1vjFoHf/wjGrqjTzjw2ms0+ezCdvpOr4sOQxSECcKen3Qt65Uf
jMYzD6MVnxnW7Uqa9o4X7L8ZuePxIY5HkT9Nwqh7u2dZ0AyJP0KjMIgTNLp1o1Xk9C5OnLE/jNzo
3rkD9fthgHZV9juW5Ts28HGmSYT4n3/G4ymOBgMn8MetNvrZQijCySwKeAbxZcf6alkHQGl/MLDD
cIzdwCThxzSrwmOqEeSlebYpkCQ070LfMylFGOjHOIcUpyEyTJlceTS82XTsj6Bxcqj41y00Ra9f
o99P1/ac03OHy9RGbUQ1phQ/G/7rAl8LTrH/f9hJTF5AwR37NwH2LuG7yjAc/quDeKHw+jrGSb6O
1eK0DM9cWL2JG8W37phLZ3I8xYk9u77GEZBMIuxOXqOYV11w1AkwORm7YiOZBXqpYjZm/cyS8bw1
+4AnT1GzYjY1a5aysmTWXJME+dqWMEp4oWYJv+saJikPPUkKBu+FAgRuFIWfW7wTAQE8SrJCEO7o
P/9BWSGMxGmMZ15IhePMha9AiJB1kvspRhi8UEu+tjmF8wvnBifwd6sNb6Dh8SkTzjk/hNdpeOxR
OpwwRv8N/w+Q4oxyK0i+0opwD+kAhwhfOywHeMnkFpNctNa7qLcj6qx9YC0tNA6poOiTcPSp1e6O
6a+iYib9AH82RNgpIjwLUtJf04qrBGm1VZ8v6y11BjxXjg9PBvzLere3AsahizAY/KInEL//NZvL
yKQynniR3yE1OT47Hwyu3Jsb7J1HIRkXT/w4WUXTDq3jsYeDxE/uQVSPpUBt3XGaPPa9NhoQShZX
i9bv1ap1GFdCmhAjJWlLE1OKmSklMDinjmU1WyNQ4lXIOWiK9BTzj5NoNJm2CBOtp6jCgM3ThuSt
lO1SbUSE2cmhma2ZSSy17JRKahE9WkGYilBVIjI7oD/WyJwDXc+CUQJDf1fMEYgmLDY5GF0Hzvr6
eh9v9H7c8PrruO/1HD6v7LWI8g+0qcYqGvFWu8TRnRtAu8Z3QcJURTTvT6Zj2bXIC+3qamqbloAe
TjV/HCQ4unZHOKd5WZ+Comt7hyF89PEI5lrBTdxShgqzQc2cVDIqcOKJugwGpKhD9UR/Oh6ktmqo
pINWdAYrHbT+toN67R2hgOAu/IRbKVn2hXSmaaj2t/SNd7bU1Ff1vOAycgyUmX5xb6P2ozy1O5+l
jGlZb9XKdLmceaAuP4wLrtm32EQ1t4dV9ob1POtn9BW+zE+yd+5nLdUQSRsor7wRzHpoBRzPj6du
MrptvQe9O5ev0Y0fTp046ylYejecksUA9L1WO2s5bTmo0B+8yAX+9wzHyQUeYf8Oe8z78yyk5+f1
BZmBiMDpRDiegkqwg79MwQERSpIfEvPPSXxD/iJ9lKW0EavZYHCBp+P7P2PXwxGdgnI2nJEU9zjw
Ex+mqjGmBahiYPZ75hz9/eDo/Or47LQjXeHHkzC4aQumOsGvug6A1EEIqsdJqgK19b9aZvtz9663
l+FiFurfKcM2E+fhDt1wiUU+XZHYrNskjJNDHBEjuaAsWlrPzYpACZ6f7af2n75w63/u1fSv7xHL
9GXyKI//rK9vbm8Y8Z/1re1eE/95imex8Z9X/nXg4WvkkDGLGJZze+s41itI8wNsJsvsHy+PHEF0
HN6w5aksVfAVZPGvLYUl9XzOn8FzXx1dnO6fOO8/7l8cEvbZABTNS+JOJhnKbRRG2ImT2RBmQ06Q
ON54bL1Cijg5GZzTsyvn8Oin49OjQ1FNQV0j7t0HpbSz38tIE9pChSZVRbu5NSqvkCl8keyloksi
urSMn5vAQvcVwrBIjtDKPhrT2f/B+TmauKMoVHKhWzdG7hga3rtHQ4wDrjCvuwKkx0QdiFEuaT+h
ZIWsc/bh9JjY1enV4cmJc/zh/OziiojESGZLkG+5FSJVr6yPyPTA6uRajJRNEq1bGVVUsy5p76Xr
NaPr8jRrNHbjGInVP3szYwI8VRnzYf5KwiWUgxHDSJeHOzJPJrIFC4gdnTePdcGscDobjv0RWXXn
FJeRGhpUEmEUGc1JIzziE/MkMibMYkVpvEfJSpdwInRbnCMNk+Xm4bNZI+Yqs4pwa4asHqZT8mej
mFr9ZNWro5/1eWbji/V45pb7qhoLaw6W3fmrG73TzaejW8OeeL1zFWvSiZx9vHLc6MYkpFuVJBTO
EhBH9BLVADXLg6H0EMNXtmKCIRW8AJkXI19M4KlxdiuNNPMdaoLIjzIjrjAx1dwLQqZF2VnvSL/5
wZh4BG609U2Wl2NRjzlNtx6NXJPKEFHqWH8XAKHcUDOsQMUiMfigi6VE+2K+Ekw5wyp3Nk6gtGgV
FvtW+Ajnkn7gCyRWVC4ma9eteB/gpddNGbi1bUJlhci64VlyC/33+PBEjKvosw89MWDdMR6FrBdS
L5M3etHwLevY6M6PkhkZxlXVdMyvaezLUl0CtdO8eAdZc/OWysSt1fBvr72DvtI6QTck4bnCAHZh
KM0IW+eFzUjvmEZhQuMsVG5erUxUnWb078DNqNloKAEVhaJZ38uVXE9kPd1IQywGFZK9h5JSREOw
DCHTDTyBamFPbV0lqjYQTQcV/nLPmvMndwQM7jVvLjuSGuYc5JTKC/ySYISqRZUI1UbWblZRbpi0
uFnN+GjmqdPsqSTZSY8W8+QBzx1Vq8rcLq/HKFF2vVNItWjhS00vuR1H7G4JWrTVL7A7Ht8jab4d
9DmMPrlROAs8OgR/GR8UVzMTEa1h4bnxOE2XmnfKiXOpWkxjWHk6VFXUyX4+D6PEHY4xUTPZ8+Xq
JrnzVa5GzKjCuZmrExHiJFtiRMjbwHG8kGUq2PL4Sqv3ahaYSz2eIhcgljaVSPc85zt5wD30Pius
7pWr4xTZ7VBPIigzilSAeY8icBE+ZLfrTRHiubkXj98P5s4Xr4WL5vzAA5pVRUrKM1RESlKJ6kZC
VH65a+XS7+XRFfqbOhozePXckbvFPCz+6/jd0WhpPCrO/73tr2+b5//6/e0m/vsUz5s3ZN/96ItL
Jk4wcHmYDppyHgUjL51IyzUsWc7yaDHbOvC9MZBQjv6982HEI46JxlfTVL7TsEd2+jWmbEFdyJEP
TqSUFvzx5VQuHdWysyKRxRgpwTUewBQhUUZMMv1LR34Q8IP7CcamWYQR2Wj3YUx3A6IAF1KGMx/W
NiFZUmB0i90piZdP3E9EekhiBDwMipiRWSJMToM1Jgr9JAdkURcyHGuhBMLMcyOPTSYYFQshNb8y
rqvJrPwEJ7ehF0PxiG2lelS0UC6JiI7JKOwPZwmpFEyX5HZvXLp2IaO73oSy8WhpOgPihlTUkrIN
B6noPzPJXc9D+EsSuWrVGUVY1mEYuNLCv5SUVrSvFoY8CAbRAu2Ua0U93Odnz2pwEcBScJSkTCmV
CE/CO0zN5bMbBVDAesX/QCsHJOvEj2PyRvoXP/KC3lVw3FvhJ2eOiKDXUPOSBiHTjQSM1A9a5A83
uhl12Cx1lbzcsf3XhC6ESNcBsun2OJUcJhhdLVBwYdPgVBgN0ygBSfShXIsxIJQ7aEVsvawwC2Xr
9GECwiAXlEPmMwGJkIWUURTCYg66tc6NhSUoQxqWALZre9B+4fgOU5YgqiNpxa2VCyADVFZ4dMF0
AsRvEGrT0AVqOV/TA4byTCIV/G/UJYQk3EbFDalkseoPughd+rRGtxi0R3yGlEyQGREPBF2RF++Q
vPfosw/eZojBfunxAeJYCFEQB32+xQHLROgFoSA0DoMbDE4GYw97TGfCZlbR5F78zY/v6T6EH2AA
Kvtgc3dGlaAadH8wweNxLOVIbt1EqziII6iwXQ1oR3c0wtME3umBkLib2wSsTY892g6ppD459gfN
srbncqEcxqqV5jGkzzcm7I5uuZSsM8+S6YzJDt4BOpF/7WNPmvvZBSkUJx7ko4niwAn5qLqygfBl
7HPWQkEKqEIq7doeX1jt6EUuqRS0SOyHUYvaNBPYSUKHCdkCam1ZEswmQe/e0WORom58CUkqsIv+
a4V8brGFKaFKc7NUmNCOd5QjKxn1Qft+cAMX7KlDNUZaPm14ohwXnBtrXOLFZLOzZiZ9wCe/uP0U
dTzOg/W/iRuI9iaHntLPQl0kR2oLLdEVmQOYBSIbfad+P7xPz52O6AJf6Ps+TvDk6AsVPwxei4Xu
CEdMTQfu7OY2QfnZu5oOM8Rrk60kyN3lYHDtJu44pYuucRHpgiIDo9llMUSncQNEv1/jLnmDdX9R
ZrJQTTOTt5LMExzfpJkhfRLf6NnTqna73aIqzYJPQfg5gGGtQF3meaPnnk7/6p50Er88HhXrv95G
r8fXf5vrm/0Nsv5b3+4367+neNJN/2PH3r88cmBMUXb91UTLnMerpz8LVwt8vSAiKSSQohJ97vr/
1h/foWtqx13iFdCK83/9ra11Gf/Z3uiR/r+93sR/nuRZ4v1PYVhLvwKqn5ZA8riRPPuhblQ5+pGk
/BNJkMs4zmT5zgGpzz4/kMRfyu6asizlt00NMvK+qcLrATdODWrpndMsudJbpwYd9ZJfltICbp4a
/DJ3TxWmlbdPpdbr3D81GJsbLybfsjuokm/ZXc0yE5rjJqrkWX4X9YG1LLuPuvBa1riVWlVLlaGl
ZC8w2+XdTs0X4xu7oVpQyeJbqizPM99TZUIs+KaqrH3OXVX+LXNbVZT5xUzK3FiV1M2MS7616lTd
l6P8LGTcbc0q41G3WyW5l3G/NVu77A3XtGe81JuyuIdH23h9a7u/PXI3e8NF3JQV3du8K8vTi2/L
5qhUvS+7n39JVpSiGea6G1uoBHrDcX+lgzbr3YeFVjgnp8FYK3hSc2xDs4s+uMHNGCbSMcxDXGg9
PKB7T1Q8mB37DquMLY5TEQlHXla+dS4fsJU7ntn2svIOr1WRbFEzIoR+ChDRTkebfYfTdK41HWP4
ahyfCsHLuveyg9jU97pOrz2w5BE0XcwW40Ioc5KMRpvv3LrRjdNrERLUHSLz/CW9g4nUuZ32gUrr
B9rmqHpsfT+6mZFtsZid9zp4LU9jajUgQsitTo1BpUoHg0LhxMVRarbp1VXJumD+S6XpaNdOU4fA
U5WuUi1gkS7Y9dXR2Mein2dE0ydgTDK1lNI3FuOhNub0UJVqWEXJyKMOqzJnGxjtLN3lfYwx/d4C
udb2qGpLPaDMb3Q+6k1qKqGmhxSNAB5ScAU3+SO4yY5kWBs/IJ0Bqe/FGAIi/4tBEeACPwRHQNTh
wUgClfOO+a5vVyMQMMYaBoGYQ1u6vSs4BFpTFiARpMuzR2IR7D8CgGD/N4w6UKla2cUN/Uo/Q7Zs
iX/iXV/RpJKaN7CZC3je4jtztKH0fgrLrg8V+G03bBHeB9c0Mo5118Ki0Jdiz4JGUb38yozBRSsw
p3oJ5uSCW+S7Sx3aIg2PVYFbZGukwFtIx6q+LgfiQgnTL5hy+pTv/2xsbG1vmvs//Qb/4WmeJeI/
MMMC55zFgNA/fdM4EKKqS8KCMMnnQXDkaCILyFGiLhXLVa+E2pjDSkalGTMbh0OFX4Ny0aBcLAXl
gsdsDUOVqfLCgVj7mLeFjXRtGpCLdyFjB0q4WMW8yNk703EvtP20AuQLhUiDffHNYl+wVu6YNrGX
JjwIAYOTMy1MIZePg8E+kniLkzCOuZ/S2DUX5GMwJHd0sedcktVeMMJctneZ7tIxhD9idxvyMmaU
kZNU2mvSiqiQG8pFWTVbi9/0zv/IVgh6ItnepouNwfProRWLIHu+/EJAFvieuF9ejuRUmjLdZ2SX
EvAkuveguspV0t7jzBYHrM7Gu72XVfMOF58LDBKWNmQehkLWKnlk4NlrOBgIaXdbsR7rWBWL+q/K
BXqj4zInVeScanR9dLVT7hauuJcr0Db5SqEinKnnxPjfrV6ZodLcV6tE/2mJuLIEa0QqidJ2JNYR
dzkVeiaC/8mOQ1y1VuVXrlgya9Li42mJnjgMwaX4JbeaP7OwU8qS3VoSKTtINUsur2qNrOqp+MWU
LF28uMgyyrjVU5uICrJjJoXaFAG71TQ91S+/YsMUrFdMkM+rX6YBRCgwW09lm3fu7pcq5x//RLrP
jI1QYUtUs/2P+J+mBFerKaU1cFLELsQZmtQQYOYtlgAtx3l/+vG947TJ8SvxgnZ30YZMOHA+HJ+e
XbDk7ZSZ5HT1mnBibSr5raoM6aIgW5CbQVXxIo4FvNi0SBaSTEhUuhYbyMsNLwAvBoXgqSixyouw
/Hnd6OdMj1QtTLcuxRQ1JmSISQJac3hJJlMC6pRLjhOCLLznX0c+KAaVuGrlzjXhJEQoc/BP4cWJ
Rol6mWP23MSlbpn9mequpLDwMmLqwGhIBwy0YuYB29XE8gZt8kGXr0t/lw4etEzVdEBS5lMCXmVO
v8Dx1uaounxJutKbp31w9TXpGqmDoTKZvQImdKwDoYqskvDanua2RNYlu1k/62ZpG/7DT50sqQ/X
vNpbcsyEHSco0f+uNgTyxWYTEWkiIk1EZNERkcdjg+YbbU6OBh+0wQcNG3zQJ8EH5Z07D6tPOzef
hwPKjx3Rt/Lje+JUqokRmh4FqIcSyvM/IU6okHARSKGa9GayiRbKU0vxQtWSdRBDRWPPhRkq26oA
NZR9r4Ebqqj020IOLelLygmccvDQXOWk/U3EUbQv5X3vG4YZrVY4n/NkM6QYa2XIolprGOvBUnTR
NIuGL5rTR9L47zwIo5LgvDdMa6KMbpehjEoh5r9wWhPrc7sAabS2BI9GG92eG22UGi492rJoxNGU
8lyoo/mCPR551BQrgz4qMiwQgVSe/1siBGgF/svW+lbPOP/X721sNef/nuJ5FP4nN50HQICKEnOh
gDLfpOKAcm9lIoGmg5j+vHgsUFGf+migagkND1T9YC0UEfRhq5jlwIimpqAYwUCt9c9WbTDRlMAv
pRSWByiaSkDVyzkvAUfUYMTgQzPfylv1KaQrl6BA7KeDYy3m2QCyNoCsRYCswmoYJKt4k6Csuit/
YbCsQrhyYFaR69mhWfn4wDKUgbMKiZcOz8qX3g1AawPQ2gC0Ns9LebRF3JJ4VOG/br7dNvFft3ub
zfr/KR4V//XgZP/y0tnPQMBq6QoKbPZJD3qIPeqYnx5+Jz7tmQdUdqzsTTOwxZXcK2H0g5VdCSKB
x56DSSsv+xsrVnkN11YWrFmsWq32z91cC39S1T4b/uvbt/23sv/33zL81431pv8/xbN0/Nfht4X/
aqsH0exq/Fe7Bv6rXYD/as+F/2oX4b9q5KrxX+1i/FeN0qLwXwvxrzSmFbtzitZr478WoVtl+Vbi
v9p1kFELTGhe/Fe7Hv5r/VpW4r8uspZ18V9LaqkytJTsBWYbLhf/NSPGt4j/mq1kBf6r/RLwX+2d
ItKPwH+1S/Bf7QL8VzuL/2rn47/aGfxX+yXjv2rKeDz+q/2y8F/tMnJqz3gC/NdFII/uG8ij1z/+
sLm5vfHD1uaPvS13oy+RUa25kUcLSS4YeXT/V488ul8XebRQpXMjjxYi78+HPFoi4IORR4tQ6xeP
PJqRWmLkzok8WqiGDPJocc5c5FG7AHnUrkIetTPn6OZAHrWzm7P72uZsPSXkI48WNsLjkEfn9JeK
p6ShKiepcpgCKHWBDlMC4C7EYc7hHg1vSG1CzsQvqC/A3l/d8Qzrrk09wK5H/Fb5+X31vt3Uc/ih
fjoBs8wo4aqSg/rGcpcjtKYsOPJFzXoe+E+yMvZmRcCSZlpNc717t6vSWbgr6i/aFQn1VLsimXPZ
roj6HlXxzDe9xwnRuvHPTwibyPommb+eAmq6IdEA4IY4A/BCP1TDxIt1hEztCsvfMRGRbQMRWSwI
ihCR7ZeGiGw/HBHZnhcRuWwmvlREZDuLiGybiMi2iYgsmrIMEdl+NCJyBWzv/kNhe4v/zZ4GtvdJ
8ZiFx3kQ3LXuKfmhF3FpjlOQrpa1jeJqn7QplDJMoq56Jb/NIl/qsiRX9Ytsy9VcQdDeHh/m44U0
+tKwmmXY5PmwmktDJZmpwvNhNdu1sZq1GplYzbaO1Swc/nNv7tV4lG26pfGo2P/d7G2o//5vn+I/
v23OfzzJs3z852Ex/vPwt4P/PFwu/vPw+fGf3br4z/kZC/7h2Ab/ucF/Xjb+s52LdmRn0I7sArQj
OxftyC5GO7LT3cNctCN97zwH7ciugXZkN2hHvwG0I7tj2sRemvBwtCO7Y1qYQk5HO2r6UdOPmn70
+H6kG+SCUMMyRpuTo0ENa1DDGtSwJ0QNs+dBDSvfbN/J2SjV4rjKDnPOgbMHgIjZTw4iZi8QRMzO
hwKzc0HE7BogYvYDQcTsx4CI2RUgYka0tRhEzP5WQcTyu9bDQMRM5dTofia6WGFX/NYxxUr1z2dE
2QwPwBQTjaMfKLGrMcXsfEyx7AGER2KKmVcOHnJrYWGYYtmT+Q+5xLAITLE6Ejw/pthwaZhiw8dh
ig2XhCk2rMIUGy4QU6x5fj2P3P97Rvy3jcz9z36v39z/fJJnAfhvwwfjvw0fgf9mZ/Df7Hz8N/vX
iv9mPxj/zS7Cf7MXj//2yPXoEuHgbAUOzlbg4Ox54OBsFQ4un8KS4eDsPBw0XdtcpGUBnNWQgMGd
mS2ulpetvwRha/HNgsXZzwAWl8uzAYtrwOJKweJsDSzONsHi7JcMFmfXAouzXwpYnM0zVILF2U8F
Fmc3YHENWFwDFtc8y3y0RdySeFThv/W3U/y3jfUthv/W4L8/yZPFf7ML8N/sDP6bckCnLoKbW4Tg
ZhcjuOUgtu1rC05zyamuOFlQP4vnZn+jeG4PfUhcgwwVy+RR0f/Xt3om/uP6dr/f9P+neKyDv//9
p5P995cwY1v7G4ltrR06DswHZl8ch/795Yct/tfZ5V+PLi6Pz04dZ3eDpFwcHZ1eXeyfXqG14y76
Xwt+dt+w//w7b60feVOYXd6/IXOZN9wXWNbJsU25nZRkHvvDN1QItDYmCcktWZLwF7IQ5X8e3gfu
xB+R12Q0/Ry50/d/sayD83PnzP6fo4OrSzTYRd+3pm4Sz4Zxgv5A/E/nDwTssPN9C9Zq3ohE1VZJ
crvNr2g6ICGdnO/CNGk4gmmo23XTT84Z/aRRJfT+0A11mpBIaIKjOdjlVynIi0P1vbs2HH35QhW3
9gmt/QW0P7zd7d6S3/EuKUv+Aqtz/j0LSagI3nh8wLIowwGrjfW7P+HRbYhWdnf30MUsCETodBRO
ptCzI/T9uxXI9H2LCNJG9DeTAV7eWb+zvm/JurUHSHlzztqC+n40uvXvMDphWHyQ608/tRFM9kSG
w7PTo9+Dq11b7EOOdKMrN7rBiXL+bRJ6M9DDwpld7V+8P7q6pK2b6sSyLOgYRDP8e5tgFULLU2Wl
tiaV9V5eoonDWQSDHPGwIH4UTmjLZNX23G6geZqneZqneZqneZqneZqneX4Dz/8DM1e3GADwAAA=

------_=_NextPart_000_01C14591.34569AF0--